APIクレジットの使用

必要がある ログイン または サインアップ BuiltWith APIを使用する. ログインすると、実際の API キーがここに表示されます。

導入

BuiltWith Trust APIは、ウェブサイトのドメインの概要を提供し、その信頼性を判断できるようにします。ドメインの信頼性を判断するために、技術投資、時間、他のサイトとの関係性、現在の反応、キーワード、非公開の手法といった属性を使用します。

一般的なアクセス方法は次のとおりです:
https://api.builtwith.com/trustv2/api.[xml|json]?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=[DOMAIN]

この対応は、単一の説明可能な Assessment.TrustLevel (信頼できる、中立、注意、検証推奨、制限付きコンテンツ、高リスク、未検証)を平易な英語で表示 Assessment.Reasons その背後には、さらに ContentSafety ギャンブル、アダルトコンテンツ、詐欺の疑いのあるコンテンツ、ライブプレースホルダー(ロレムイプサム)コンテンツを検出するブロック。そのため、人間やAIエージェントが理解するために、生の数値やブール値から解読する必要は一切ありません。

🤖 AIエージェントプロンプト
Reference https://api.builtwith.com/llms.txt and
https://raw.githubusercontent.com/builtwith/builtwith-ai-sdk/refs/heads/main/README.md
Add builtwith AI api to my app as a client. Make a call to the trust API for the domain hotelscombined.com
認証

各検索でAPIキーをご提供いただく必要があります。エンドポイントはHTTPSのみで、キーの暗号化が行われます。 API キーを決して公開しないでください。

APIキーは
00000000-0000-0000-0000-000000000000

キーはクエリ文字列パラメータまたは HTTP ヘッダーとして指定できます。

  • クエリ文字列: ?KEY=00000000-0000-0000-0000-000000000000
  • HTTPヘッダー: Authorization: API 00000000-0000-0000-0000-000000000000
ドメイン取得例

XML ドメインを取得
https://api.builtwith.com/trustv2/api.xml?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=hotelscombined.com

JSON ドメインを取得
https://api.builtwith.com/trustv2/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com

JSON 追加のライブ検索を取得
https://api.builtwith.com/trustv2/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com&LIVE=yes

ベストプラクティス

新規登録ドメインのリストを提供する場合は、常に &LIVE=true 当社のデータベースは、記録のないドメインに対して常に「未検証」を返します。大規模なリストを処理する場合は、 &LIVE=true Assessment.TrustLevel が「Unverified」または「VerificationRecommended」として返された場合のみ実行します。これにより、スループットを高く維持できます。

コード例

API リクエストを行うためのさまざまなプログラミング言語での実装例を次に示します。

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/trustv2/api.json" +
   "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&LIVE=yes"),
};
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/trustv2/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'LOOKUP': 'wayfair.com',
    'LIVE': 'yes'
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/trustv2/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com',
    'LIVE' => 'yes'
);
$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/trustv2/api.json?KEY='+
  '00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&LIVE=yes';
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/trustv2/api.json" +
"?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&LIVE=yes";
        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/trustv2/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com',
    'LIVE' => 'yes'
})
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/trustv2/api.json?"+
"KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&LIVE=yes"
    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/trustv2/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&LIVE=yes"
参照
GETリクエストパラメータ
名前必須
KEY00000000-0000-0000-0000-000000000000
これはキーです。検索に使用してください。
はい
LOOKUPcnn.com
hotelscombined.com
Trust API はサブドメインと内部ページをサポートしますが、Trust API の LIVE ルックアップ機能のみを使用します。
はい
LIVEyes
対象のウェブサイトをリアルタイムで検索します。これにより応答速度は低下しますが、LiveVerification にデータが入力され、「VerificationRecommended」または「Unverified」のいずれかの信頼レベルが返されるようになります。スループットを高く保つため、この処理は、非ライブ応答が上記2つの信頼レベルのいずれかである場合にのみ呼び出すことを検討してください。
いいえ
レスポンスオブジェクト
Result - 結果は、ルックアップから返されるルートオブジェクトです。すべてのフィールドは自己説明的です。名前は意味を正確に示し、ブール値は「はい/いいえ」の質問(「~である」、「~を持っている」など)のように読みやすく、TrustLevel列挙型とContentSafetyフラグは数値コードではなく読みやすい文字列/ブール値として返されるため、このページを参照しなくても応答を理解して対応できます。
名前説明
Domainhotelscombined.com検索されたドメイン/サブドメイン/URL。
AssessmentAssessment explained belowドメインに対する総合的な信頼性評価を、分かりやすい言葉で説明し、その理由も併せてお伝えします。
ContentSafetyContentSafety explained belowギャンブル、アダルト コンテンツ、詐欺の疑い、およびライブ プレースホルダー (lorem ipsum) コンテンツ フラグ。
BusinessProfileBusinessProfile explained below当データベースがこのドメインの技術履歴について把握している情報。
LiveVerificationLiveVerification explained belowリクエストに含まれる場合にのみ存在します &LIVE=yes. 現在サイトをチェックした結果です。
Assessment
Assessment - 結論:単一のTrustLevel、その根拠、そして一行の要約。まず最初に読むべき項目はここです。ContentSafety/BusinessProfile/LiveVerificationは、TrustLevelの構築に使用された生のシグナルであり、詳細を確認したり、独自のポリシーを適用したりできるように、レスポンスに保持されています。
名前説明
TrustLevelTrustedTrusted - 確立された技術実績および/または相当な投資実績 ― 実際に継続している事業。
Neutral - 不審な点は何も見つからなかったが、強い肯定的な兆候もなかった。
Caution - 駐車中、プレースホルダーコンテンツを表示中、またはその他、詳しく調べる価値のある兆候。
VerificationRecommended - アフィリエイトリンクは記録されていますが、ライブチェックはまだ実行されていません - 再度お電話ください &LIVE=yes.
RestrictedContent - ギャンブルまたは成人向けコンテンツに関する技術が検出されました。
HighRisk - 既知の詐欺行為に関連している。
Unverified - このドメインのレコードはまだありません - 再度呼び出してください &LIVE=yes リアルタイムチェックのため。
Summaryhotelscombined.com is assessed as Trusted: Domain has an established technology history spanning over a year.TrustLevelを1文で簡潔に説明した、すぐに表示できる説明文。UIやAIエージェントの応答に直接表示するのに役立ちます。
Reasons["Domain has an established technology history spanning over a year."]TrustLevelの決定を左右した具体的なシグナルを、分かりやすい言葉で説明します。
ContentSafety
ContentSafety - ドメイン上でこれまで検出されたすべてのテクノロジーに対してチェックを行いましたが、例外が1つあります。PlaceholderContentは、サイトの現在稼働中のスタックに含まれるテクノロジーのみを報告するため、その後実際のビジネスとなったドメインが、古いプレースホルダーコンテンツのために永久にフラグ付けされることはありません。
名前説明
Gamblingfalseそのドメインがギャンブル関連の技術を実行している場合は、確かに当てはまります。
AdultContentfalseそのドメインが成人向けコンテンツに分類される技術を実行している場合は、確かに当てはまります。
SuspectedScamfalseそのドメインが、我々が既知の詐欺行為として特定した技術を使用している場合は、確かに当てはまります。
PlaceholderContentfalseプレースホルダー/ロレムイプサムコンテンツがドメインの現在稼働中のテクノロジースタックの一部である場合に限り、真となります(古い、過去の検出結果ではない場合)。
BusinessProfile
BusinessProfile - このドメインの技術履歴に関するデータベースの情報。IsIndexedがfalseの場合、このブロック内の他のすべてのフィールドはデフォルト値のままとなり、無視されます。
名前説明
IsIndexedtrueこのドメインが当社のデータベースに登録されている場合はtrue、登録されていない場合はfalseとします。falseの場合は、信頼できないドメインではなく、未検証のドメインとして扱います。
DomainAgeDays1642この分野における最初の技術記録から経過した日数。
LastCrawledDaysAgo3このドメインで最後に技術的な変更が検出されてから何日経過しましたか。
PremiumTechnologyCount5現在サイト上で検出されているプレミアム(信頼性の高い有料)技術の数。
HasActiveTechnologyStacktrueドメインに現在アクティブに追跡されている技術が(過去の技術だけでなく)存在する場合に真となります。
IsParkedDomainfalseドメインがパークページ技術を使用している場合、または何らかの理由でパークされているように見える場合は、このようになります。
IsEcommerceSitetrueサイトがeコマース技術(カート、チェックアウトなど)を導入している場合は、この条件を満たします。
HasPaymentProcessingtrueサイトが決済プロバイダーまたは決済処理業者を運営している場合は、このようになります。
HasAffiliateLinksfalseそのサイトがアフィリエイトプログラム広告技術を採用している場合は、確かに当てはまります。
IsEstablishedBusinesstrueドメイン登録期間が1年を過ぎると、これは「これは新しく立ち上げられたものではなく、継続的に事業を行っているように見える」という指標となる。
EstimatedMonthlySpendUSD80当該分野における月平均の技術支出額(米ドル)の推定値。
LiveVerification
LiveVerification - リクエストに含まれる場合にのみ存在します &LIVE=yes. インデックス化された履歴に頼るのではなく、ドメインの現在のライブコンテンツを確認した結果です。
名前説明
LookupSucceededtrueライブルックアップ自体が失敗した場合(LookupErrorを参照)、False になります。False の場合、このブロック内の残りのフィールドは無視されます。
LookupErrorThe remote name could not be resolvedLookupSucceededがfalseの場合、Webサイトに直接アクセスしようとした際に発生したエラーです。
IsParkedDomainfalseライブサイトがパークページ技術を使用している場合、または何らかの理由でパークページのように見える場合は、このようになります。
IsEcommerceSitetrue稼働中のサイトがeコマース技術を採用している場合は、これは当てはまります。
HasPaymentProcessingtrueライブサイトが決済プロバイダーまたは決済処理業者を利用している場合は、この限りではありません。
HasAffiliateLinkstrueライブサイトがアフィリエイト広告技術を導入している場合は、確かにその通りです。
EstimatedMonthlySpendUSD0現在このページに掲載されている情報に基づいた、月々の技術関連費用の概算です。
APIライブラリ
Node.js NPM

https://www.npmjs.com/package/builtwith-api
NPM パッケージby Zach Caceres - https://github.com/zcaceres/builtwith-api

Microsoft .NET Nuget

https://www.nuget.org/packages/BuiltWith/
C# パッケージby BuiltWith Pty Ltd - https://github.com/builtwith/BuiltWith-C-Client-API

コード例

https://github.com/builtwith/code-examples
複数の言語でのすべての API エンドポイントの例

特別ドメイン

ドメイン検索の際に使用する2つのリストを用意しています。無視リストとBuiltWithサフィックスリストです。

無視リスト
Tこれは、インデックスに登録しないドメインの社内リストです。これらのドメインはブロックされているか、誤解を招く技術が多すぎるか、ユーザー生成コンテンツを含むサブドメインが多すぎるため、インデックスに登録しません。

BuiltWith サフィックスリスト
これは、 パブリックサフィックスリスト ただし、トップレベルドメインと見なされるサブドメインを持つ企業の追加エントリが多数含まれています。 このリストにより、内部 Web サイトの可視性が向上します。たとえば、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 および関連サービスに重複した機能を提供したりできないことです。