API de relations BuiltWith

Utilisation du crédit API

Vous devez se connecter ou s'inscrire pour utiliser l'API BuiltWith. Après vous être connecté, votre clé API actuelle sera affichée ici.

Introduction

Obtenez des résultats XML, JSON, CSV et TSV sur les relations entre les sites web, indiquant quels sites sont liés, par quoi et depuis combien de temps.

Par défaut, les pages renvoient jusqu'à 1 000 enregistrements de correspondance ; ce nombre est également maximal. La consultation de toutes les pages d'un domaine coûte 1 crédit par clé API/domaine, pour l'ensemble des pages tant que le cache local est actif. Chaque requête renouvelle la fenêtre de cache de 10 minutes. L'expiration du cache, son expulsion, un redémarrage du serveur ou une requête adressée à un autre serveur peuvent entraîner une nouvelle facturation.

La méthode d'accès générale est la suivante -
https://api.builtwith.com/rv5/api.[xml|json|csv|tsv]?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=[DOMAIN]&PAGE=1

🤖 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 relationships API for the domain hotelscombined.com
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
Commencez par PAGE=1. Chaque réponse contient jusqu'à 500 résultats. Indiquez PAGE pour next_page lorsque more_results est vrai. Chaque requête de page utilise un crédit API. Les identifiants peuvent s'étendre sur plusieurs pages ; fusionnez-les par type et valeur, et effectuez les correspondances par domaine. Conservez les champs LOOKUP et IP inchangés. Les résultats sont triés par identifiant puis par domaine ; les modifications de données en temps réel peuvent entraîner un décalage de page. Un identifiant sans correspondance est comptabilisé comme un seul résultat. Une page au-delà des résultats disponibles renvoie des identifiants vides. La valeur de PAGE doit être comprise entre 1 et 2147483647 ; les valeurs OFFSET et SKIP ne sont pas acceptées. Les fichiers CSV et TSV incluent des lignes d'identifiant de source en plus des correspondances, suivies d'un pied de page avec MAX, TOTAL, PAGE, PAGE SUIVANTE et PLUS DE RÉSULTATS.
Obtenir un exemple de domaine

JSON Obtenir un domaine unique
https://api.builtwith.com/rv5/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com&PAGE=1

XML Obtenir un domaine unique
https://api.builtwith.com/rv5/api.xml?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=hotelscombined.com&PAGE=1

CSV Obtenir un domaine unique
https://api.builtwith.com/rv5/api.csv?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com&PAGE=1

TSV Obtenir un domaine unique
https://api.builtwith.com/rv5/api.Tsv?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com&PAGE=1

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
LOOKUPcnn.com
news.ycombinator.com
Les domaines et sous-domaines fonctionnent avec l'API Relationship (pas les pages internes)
Veuillez fournir un seul domaine par requête.
Oui
PAGE1
Le numéro de page, commençant à 1 (par défaut). Utilisez la valeur renvoyée. next_page comme PAGE pour la requête suivante pendant que more_results C'est vrai.
Non
IPyes
Chargez les données IP du site Web, cela augmente considérablement la quantité de résultats.
Non
API Méta
NomExempleDescription
results24Le nombre total de correspondances domaine/identifiant, un identifiant sans correspondance étant comptabilisé comme un seul résultat.
page1Le numéro de page demandé.
max_per_page1000Le nombre par défaut et le nombre maximal d'enregistrements de correspondance par page sont de 1 000. Les identifiants peuvent s'étendre sur plusieurs pages.
next_page2Le nombre à fournir comme PAGE lorsque more_results est vrai ; 0 lorsque terminé.
more_resultstrueCela sera vrai s’il y a plus de résultats.
Réponses
Format: Relationships[Relationship->Identifiers[Identifer]]
Relation
Les résultats sont la réponse de niveau supérieur qui identifie la recherche.
NomExempleDescription
Domainhotelscombined.comLe domaine qui a été recherché.
IdentifiersIdentifiant expliqué ci-dessous.Expliqué ci-dessous.
Identifiant
Les identifiants sont les codes uniques qui se trouvent sur le domaine et sur d'autres domaines qui le possèdent également.
NomExempleDescription
Typegoogle-analyticsLe type d'identifiant Voir tous les types
Value454517La valeur de l'identifiant - généralement le code de l'identifiant comme une adresse IP ou un identifiant de compte.
First1368860400000La date à laquelle nous avons détecté cet identifiant pour la première fois à l'époque ms.
Last1398860400000La date à laquelle nous avons détecté cet identifiant pour la dernière fois à l'époque ms.
MatchesMatch expliqué ci-dessous.Expliquez ci-dessous.
Correspondre
Les correspondances sont d’autres domaines qui ont cet identifiant.
NomExempleDescription
Domaincom-hotel.comLe nom de domaine du match.
First1398860400000La date à laquelle nous avons détecté cela pour la première fois sur le domaine correspondant à l'époque ms.
Last1418860400000La date à laquelle nous avons détecté cela pour la dernière fois sur le domaine correspondant dans l'époque ms.
OverlaptrueSi ce domaine a utilisé l'identifiant en même temps que le domaine de recherche.
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

Exemples de code

Voici des exemples d'implémentation dans différents langages de programmation pour effectuer des requêtes API. Commencez par PAGE=1, puis transmettez next_page comme PAGE tant que more_results est vrai :

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/rv5/api.json" +
                        "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&PAGE=1"),
};
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/rv5/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'LOOKUP': 'wayfair.com',
    'PAGE': 1
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/rv5/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com',
    'PAGE' => 1
);
$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/rv5/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&PAGE=1';
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/rv5/api.json" +
                    "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&PAGE=1";
        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/rv5/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com',
    'PAGE' => 1
})
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/rv5/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&PAGE=1"
    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/rv5/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com&PAGE=1"
Domaines spéciaux

Nous tenons à jour trois listes qui vous seront utiles lors de vos recherches de domaines : Domaines à ignorer, TLD à ignorer et Liste des suffixes BuiltWith.

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.

Ignorer les TLD
Cette liste répertorie les domaines de premier niveau et les suffixes que BuiltWith ignore lors de l'indexation des sites web.

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
Ignorer les TLD (XML, JSON or TXT)
https://api.builtwith.com/ignoretldsv1/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.