Использование API-кредита

Вам нужно авторизоваться или зарегистрироваться использовать BuiltWith API. После входа в систему здесь будет отображен ваш актуальный ключ API.

Введение

API BuiltWith Trust предоставляет вам обзор домена веб-сайта, позволяя оценить степень его надёжности. Для определения надёжности домена мы используем такие характеристики, как затраты на технологии, время, связи с другими сайтами, текущий отклик, ключевые слова и нераскрытые методы.

Общий метод доступа следующий::
https://api.builtwith.com/trustv1/api.[xml|json]?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=[DOMAIN]

Аутентификация

Вам необходимо указывать свой ключ API при каждом поиске. Наши конечные точки работают только по протоколу HTTPS, обеспечивая шифрование ключей. Никогда не раскрывайте свой ключ API.

Ваш ключ API
00000000-0000-0000-0000-000000000000

Получить пример домена

XML Получить домен
https://api.builtwith.com/trustv1/api.xml?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=hotelscombined.com

JSON Получить домен
https://api.builtwith.com/trustv1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com

JSON Получите дополнительный поиск в реальном времени
https://api.builtwith.com/trustv1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com&LIVE=yes

Лучшие практики

Если вы предоставляете список недавно зарегистрированных доменов, всегда используйте &LIVE=true oOption, поскольку наша база данных всегда возвращает значение suspect. Если вы работаете с большим списком, укажите &LIVE=true только если статус возвращается как «needLive» (2 в json) - это увеличит пропускную способность.

Примеры кода

Вот примеры реализации на разных языках программирования для выполнения API-запросов:

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/trustv1/api.json" +
   "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com.com&LIVE=yes&WORDS=gold,diamonds"),
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
import requests
url = "https://api.builtwith.com/trustv1/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'LOOKUP': 'wayfair.com.com',
    'LIVE': 'yes',
    'WORDS': 'gold,diamonds'
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/trustv1/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com.com',
    'LIVE' => 'yes',
    'WORDS' => 'gold,diamonds'
);
$url_with_params = $url . '?' . http_build_query($params);
$response = file_get_contents($url_with_params);
$data = json_decode($response, true);
print_r($data);
?>
const https = require('https');
const url = 'https://api.builtwith.com/trustv1/api.json?KEY='+
  '00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com.com&LIVE=yes&WORDS=gold,diamonds';
https.get(url, (res) => {
    let data = '';
    res.on('data', (chunk) => {
        data += chunk;
    });
    res.on('end', () => {
        console.log(JSON.parse(data));
    });
}).on('error', (err) => {
    console.log('Error: ' + err.message);
});
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class BuiltWithAPI {
    public static void main(String[] args) throws Exception {
        String url = "https://api.builtwith.com/trustv1/api.json" +
"?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com.com&LIVE=yes&WORDS=gold,diamonds";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("GET");
        BufferedReader in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        System.out.println(response.toString());
    }
}
require 'net/http'
require 'uri'
require 'json'
uri = URI('https://api.builtwith.com/trustv1/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com.com',
    'LIVE' => 'yes',
    'WORDS' => 'gold,diamonds'
})
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
puts data
package main
import (
    "fmt"
    "io/ioutil"
    "net/http"
)
func main() {
    url := "https://api.builtwith.com/trustv1/api.json?"+
"KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com.com&LIVE=yes&WORDS=gold,diamonds"
    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(body))
}
curl -X GET
"https://api.builtwith.com/trustv1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com.com&LIVE=yes&WORDS=gold,diamonds"
Ссылка
Параметры запроса GET
ИмяПримерыНеобходимый
KEY00000000-0000-0000-0000-000000000000
Это ваш ключ, используйте его для поиска.
Да
LOOKUPcnn.com
hotelscombined.com
Trust API поддерживает поддомены и внутренние страницы, но только с использованием функции LIVE-поиска Trust API.
Да
LIVEyes
Выполняет поиск по интересующему веб-сайту в режиме реального времени. Это замедляет ответ. Результат со статусом «needLive» требует опции LIVE для определения того, является ли веб-сайт подозрительным или нет. Поиск в режиме реального времени замедляет ответ API. Рекомендуется вызвать эту опцию, если статус ответа на запрос, не относящийся к LIVE, — «needLive».
Нет
Объект ответа
Result - Результат — корневой объект, возвращаемый в результате поиска.
ИмяПримерОписание
Domainhotelscombined.comДомен/поддомен/URL, по которому выполнялся поиск.
Statusokподозрительный (1 в json) — веб-сайт подозревается из-за одного из найденных нами атрибутов
ok (0 в json) — мы считаем, что с этим сайтом все в порядке
needLive (2 в json) — снова найдите этот сайт с помощью &LIVE=yes параметр для более подробного ответа.
LiveRecordLiveRecord explained belowРезультат живого поиска по домену.
DBRecordDBRecord поясняется ниже.Результат из нашей базы данных.
DBRecord
DBRecord - Здесь содержатся результаты поиска в нашей базе данных для домена.
ИмяПримерОписание
EarliestRecord1436584145время в секундах для самой ранней записи о технологии для домена - сначала проверяется, что DBIndexed имеет значение true.
LatestUpdate1543584145epoch секунд время с тех пор, как мы обновили технологию - сначала проверили DBIndexed как true.
PremiumTechs5Количество премиальной техники, которую мы нашли на сайте.
LiveTechsfalsetrue, если на сайте отслеживаются какие-либо действующие в настоящее время технологии.
AffiliateLinksfalseЕсть ли на сайте в настоящее время какие-либо рекламные системы партнерской программы.
PaymentOptionstrueЕсли на сайте есть платежный провайдер или упоминается платежная система.
EcommercetrueЕсли на сайте есть технология электронной коммерции или ссылки «корзина/купить».
ParkedfalseЕсли на сайте используются какие-либо припаркованные технические средства или упоминается припаркованная техника.
Spend80Средние ежемесячные расходы по всему домену.
EstablishedtrueЕсли веб-сайт старше 1 года по данным нашей технологической индексации.
DBIndexedtrueЕсли данный сайт есть в нашей базе данных - если false, сайт является подозрительным.
LiveRecord
LiveRecord - Здесь содержатся результаты выполнения живого поиска по домену.
ИмяПримерОписание
LookupErrorThe remote name could not be resolvedЛюбая ошибка при попытке поиска на сайте.
WebsiteErrorWebsite Lookup FailedАналогично LookupError, за исключением того, что может быть пустой ответ HTML.
Spend0Средние ежемесячные расходы на найденные веб-технологии.
ParkedfalseЕсли на сайте используются какие-либо припаркованные технические средства или упоминается припаркованная техника.
AffiliateLinkstrueЕсли на сайте есть партнерская реклама.
PaymentOptionstrueЕсли на сайте есть платежный провайдер или упоминается платежная система.
EcommercetrueЕсли на сайте есть технология электронной коммерции или ссылки «корзина/купить».
API-библиотеки
Специальные домены

Мы ведём два списка, которые пригодятся вам при поиске доменов: списки игнорирования и списки BuiltWith Suffix.

Список игнорирования
TЭто наш внутренний список доменов, которые мы не индексируем. Они либо заблокированы, либо содержат слишком много вводящих в заблуждение технологий, либо слишком много поддоменов с пользовательским контентом.

BuiltWith Список суффиксов
Это основано на Список публичных суффиксов но включает множество дополнительных записей для компаний с поддоменами, которые следует считать доменами верхнего уровня. Этот список обеспечивает лучшую видимость внутренних веб-сайтов, например, он выводит northernbeaches.nsw.gov.au на верхний уровень по сравнению с nsw.gov.au.

Игнорировать домены (XML, JSON or TXT)
https://api.builtwith.com/ignoresv1/api.json
Суффиксные домены (XML, JSON or TXT)
https://api.builtwith.com/suffixv1/api.json
Коды ошибок

Обратите внимание, что отправка сообщений об ошибках в этом формате не может быть гарантирована, ваша реализация должна также рассматривать коды ответа, отличные от 200, как ошибки. Свойство Lookup будет иметь значение null (json) или не будет предоставлено (xml), если ошибка связана с сервером. Просмотреть все возможные правильно сформированные коды ошибок.

Условия эксплуатации

Наш стандартные условия распространяется на использование всех наших API.

В целом, вы можете использовать API для улучшения своего продукта различными способами. Единственное ограничение — вы не можете перепродавать данные в их исходном виде или предоставлять дублирующий функционал builtwith.com и связанным с ним сервисам.