API de recherche par mots clés intégrées

Introduction

Point de terminaison API permettant de rechercher des sites web contenant des mots-clés spécifiques.

La méthode d'accès générale est la suivante -
https://api.builtwith.com/kws1/api.[json|csv]?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=[KEYWORD]

🤖 Invite de l'agent IA
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 keyword search API to find websites using the keyword perfume
Authentification

Vous devez fournir votre clé API à chaque recherche. Nos points de terminaison sont exclusivement HTTPS, ce qui assure le chiffrement des clés. N'exposez jamais votre clé API.

Votre clé API est
00000000-0000-0000-0000-000000000000

Vous pouvez fournir votre clé en tant que paramètre de chaîne de requête ou en tant qu'en-tête HTTP :

  • chaîne de requête: ?KEY=00000000-0000-0000-0000-000000000000
  • En-tête HTTP: Authorization: API 00000000-0000-0000-0000-000000000000
Exemples de recherche par mots clés

JSON Recherche par mot-clé
https://api.builtwith.com/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume

JSON Recherche avec limite
https://api.builtwith.com/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume&LIMIT=50

JSON Page suivante utilisant un décalage
https://api.builtwith.com/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume&OFFSET=[last domain from previous result]

CSV Recherche par mot-clé
https://api.builtwith.com/kws1/api.csv?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume

Exemples de code

Voici des exemples d’implémentation dans différents langages de programmation pour effectuer des requêtes API :

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/kws1/api.json" +
                        "?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume"),
};
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/kws1/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'KEYWORD': 'perfume'
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/kws1/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'KEYWORD' => 'perfume'
);
$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/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume';
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/kws1/api.json" +
                    "?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume";
        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/kws1/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'KEYWORD' => 'perfume'
})
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/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume"
    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/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume"
Référence
Paramètres
Les paramètres GET suivants peuvent être fournis pour les recherches
NomExemplesRequis
KEY00000000-0000-0000-0000-000000000000
Ceci est votre clé, utilisez-la pour les recherches.
Oui
KEYWORDperfume
wordpress
Doit comporter au moins 4 lettres, uniquement des caractères alphabétiques, et ne pas être un mot vide courant.
Oui
LIMIT100
Nombre de résultats à retourner. Minimum 16, maximum 1000. Par défaut : 100.
Non
OFFSETzoho.com
Le dernier domaine renvoyé par la page précédente. Utilisé pour la pagination par ensemble de clés.
Non
Réponses
Format: Keyword, Domains[], NextOffset
NomExempleDescription
KeywordperfumeLe mot-clé recherché.
Domains["example.com","store.com"]Tableau de noms de domaine contenant le mot-clé.
NextOffsetzoho.comUtilisez cette valeur comme OFFSET pour récupérer la page suivante. Renvoie « END » lorsqu'il n'y a plus de résultats.
Bibliothèques d'API
Node.js NPM

https://www.npmjs.com/package/builtwith-api
NPM paquet par Zach Caceres - https://github.com/zcaceres/builtwith-api

Microsoft .NET Nuget

https://www.nuget.org/packages/BuiltWith/
C# paquet par BuiltWith Pty Ltd - https://github.com/builtwith/BuiltWith-C-Client-API

Exemples de code

https://github.com/builtwith/code-examples
Exemples de tous les points de terminaison de l'API dans plusieurs langues

Domaines spéciaux

Nous tenons à votre disposition deux listes utiles pour la recherche de domaines : les listes « Ignorer » et les listes « Construire avec un suffixe ».

Liste d'ignorés
TVoici notre liste interne de domaines que nous n'indexons pas. Ils sont soit bloqués, soit contiennent trop de technologies trompeuses, soit trop de sous-domaines avec du contenu généré par les utilisateurs.

BuiltWith Liste des suffixes
Ceci est basé sur le Liste publique des suffixes mais comprend de nombreuses entrées supplémentaires pour les entreprises avec des sous-domaines qui doivent être considérés comme des domaines de premier niveau. Cette liste nous offre une meilleure visibilité pour les sites Web internes, par exemple, elle amène northernbeaches.nsw.gov.au au niveau supérieur par rapport à nsw.gov.au.

Ignorer les domaines (XML, JSON or TXT)
https://api.builtwith.com/ignoresv1/api.json
Domaines de suffixe (XML, JSON or TXT)
https://api.builtwith.com/suffixv1/api.json
Codes d'erreur

Notez que les messages d'erreur dans ce format ne peuvent pas être garantis, votre implémentation doit également considérer les codes de réponse non 200 comme des erreurs. La propriété Lookup sera nulle (json) ou non fournie (xml) si l'erreur est liée au serveur. Afficher tous les codes d'erreur potentiels bien formés.

Conditions d'utilisation

Notre conditions générales couvrir l'utilisation de toutes nos API.

En général, vous pouvez utiliser l'API pour améliorer votre produit de nombreuses façons. La seule limitation est que vous ne pouvez pas revendre les données en l'état ni fournir des fonctionnalités dupliquées à builtwith.com et ses services associés.