製品APIを使用して構築

製品クレジット

製品 API では、1 回の検索で 5000 個の製品が返されるため、API クレジットではなく製品クレジットが使用されます。

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

導入

BuiltWithの製品APIを使用すると、JSONフィードでインターネット全体で販売されている製品を検索できます。製品APIはAPIクレジットではなく製品クレジットを使用するため、効率的なコスト削減が可能です。

一般的なアクセス方法は次のとおりです。
https://api.builtwith.com/productv1/api.json?KEY=00000000-0000-0000-0000-000000000000&QUERY=Adidas%20Yeezy

認証

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

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

製品クエリの例

JSON クエリ Celine Sunglasses
https://api.builtwith.com/productv1/api.json?KEY=00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses

JSON クエリ Celine Sunglasses, 1店舗限定
https://api.builtwith.com/productv1/api.json?KEY=00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=1

JSON クエリ Celine Sunglasses, 10店舗に制限し、5ページ目を取得
https://api.builtwith.com/productv1/api.json?KEY=00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=10&PAGE=5

ドメインクエリの例

販売されているすべての製品のJSONクエリ jbhifi.com.au
https://api.builtwith.com/productv1/api.json?KEY=00000000-0000-0000-0000-000000000000&QUERY=dom%3Ajbhifi.com.au

コード例

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

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/productv1/api.json" +
"?KEY=00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=10&PAGE=5"),
};
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/productv1/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'QUERY': 'Celine Sunglasses',
    'LIMIT': 10,
    'PAGE': 5
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/productv1/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'QUERY' => 'Celine Sunglasses',
    'LIMIT' => 10,
    'PAGE' => 5
);
$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/productv1/api.json?KEY=' +
'00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=10&PAGE=5';
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/productv1/api.json" +
 "?KEY=00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=10&PAGE=5";
        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/productv1/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'QUERY' => 'Celine Sunglasses',
    'LIMIT' => 10,
    'PAGE' => 5
})
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/productv1/api.json?KEY=" +
"00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=10&PAGE=5"
    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/productv1/api.json?KEY=00000000-0000-0000-0000-000000000000&QUERY=Celine%20Sunglasses&LIMIT=10&PAGE=5"
参照
GETリクエストパラメータ
名前必須
KEY00000000-0000-0000-0000-000000000000はい
QUERYceline%20sunglasses
dom:jbhifi.com.au
はい
LIMIT50
復活させる店舗数。
いいえ
デフォルトは 50 です。500 を超えることはできません。
PAGE3
戻る結果のページ。
いいえ
デフォルトは0(最初のページ)
レスポンスオブジェクト
形式: object->shops[products[]]
名前説明
queryceline sunglasses検索したもの。
is_moretruetrue or false - より多くのページを取得するには、PAGE リクエストを使用します。
page0現在のデータ ページ (0 は最初のページ)。
limit50ショップの現在のページ制限 (最大 500) を変更するには、LIMIT リクエストを使用します。
results50結果セット内の製品の量。
shop_count10結果セット内の店舗の数。
credits2000000保有しているクレジットの量。
used337925使用したクレジットの量。
remaining1662075残っているクレジットの量。
used_this_query50クエリに使用された製品クレジットの量。
next_page/productv1/api...次の結果ページへのパス。
shops[]以下に説明クエリに対するショップと製品の結果の配列。
shop そして products
名前説明
Domainjbhifi.com.au結果のドメインまたはサブドメイン
Products[]
  TitleBronzer Booster製品のタイトル。
  Urlbronze-bootser製品の相対 URL。
  Indexed2024-09-15T00:00:00製品が最後に検出された日付。
  FirstIndexed2023-09-15T00:00:00製品が最初に検出された日付。
  Price122.33ショップのデフォルト通貨での商品の価格。
特別ドメイン

ドメイン検索の際に使用する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 および関連サービスに重複した機能を提供したりできないことです。