API de búsqueda de palabras clave construido con BuiltWith

Introducción

Punto final de la API que permite buscar sitios web que contengan palabras clave específicas.

El método de acceso general es el siguiente -
https://api.builtwith.com/kws1/api.[json|csv]?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=[KEYWORD]

🤖 Mensaje del agente de 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
Autenticación

Debe proporcionar su clave API en cada búsqueda. Nuestros puntos finales son solo HTTPS, lo que proporciona cifrado de clave. Nunca exponga su clave API.

Su clave API es
00000000-0000-0000-0000-000000000000

Puede proporcionar su clave como un parámetro de cadena de consulta o como un encabezado HTTP:

  • Cadena de consulta: ?KEY=00000000-0000-0000-0000-000000000000
  • encabezado HTTP: Authorization: API 00000000-0000-0000-0000-000000000000
Ejemplos de búsqueda por palabras clave

JSON Buscar por palabra clave
https://api.builtwith.com/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume

JSON Búsqueda con límite
https://api.builtwith.com/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume&LIMIT=50

JSON Página siguiente usando desplazamiento
https://api.builtwith.com/kws1/api.json?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume&OFFSET=[last domain from previous result]

CSV Buscar por palabra clave
https://api.builtwith.com/kws1/api.csv?KEY=00000000-0000-0000-0000-000000000000&KEYWORD=perfume

Ejemplos de código

A continuación se muestran ejemplos de implementación en diferentes lenguajes de programación para realizar solicitudes de 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"
Referencia
Parámetros
Se pueden suministrar los siguientes parámetros GET para búsquedas
NombreEjemplosRequerido
KEY00000000-0000-0000-0000-000000000000
Esta es tu clave, úsala para realizar búsquedas.
KEYWORDperfume
wordpress
Debe tener al menos 4 letras, solo caracteres alfabéticos y no ser una palabra común que se quede sin palabras.
LIMIT100
Número de resultados a devolver. Mínimo 16, máximo 1000. El valor predeterminado es 100.
No
OFFSETzoho.com
El último dominio devuelto desde la página anterior. Se utiliza para la paginación de conjuntos de claves.
No
Respuestas
Formato: Keyword, Domains[], NextOffset
NombreEjemploDescripción
KeywordperfumeLa palabra clave que se buscó.
Domains["example.com","store.com"]Conjunto de nombres de dominio que contienen la palabra clave.
NextOffsetzoho.comPasa este valor como OFFSET para recuperar la página siguiente. Devuelve "END" cuando no hay más resultados.
Bibliotecas API
Node.js NPM

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

Microsoft .NET Nuget

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

Ejemplos de código

https://github.com/builtwith/code-examples
Ejemplos de todos los puntos finales de API en varios idiomas

Dominios especiales

Mantenemos dos listas útiles para la búsqueda de dominios: listas de ignorados y listas de sufijos incorporados.

Lista de ignorados
TEsta es nuestra lista interna de dominios que no indexamos. Están bloqueados, contienen demasiadas tecnologías engañosas o demasiados subdominios con contenido generado por el usuario.

BuiltWith Lista de sufijos
Esto se basa en la Lista de sufijos públicos pero incluye muchas entradas adicionales para empresas con subdominios que deberían considerarse dominios de nivel superior. Esta lista nos proporciona una mejor visibilidad para los sitios web internos, por ejemplo, lleva a northernbeaches.nsw.gov.au al nivel superior sobre nsw.gov.au.

Ignorar dominios (XML, JSON or TXT)
https://api.builtwith.com/ignoresv1/api.json
Dominios de sufijo (XML, JSON or TXT)
https://api.builtwith.com/suffixv1/api.json
Códigos de error

Tenga en cuenta que no se pueden garantizar los mensajes de error en este formato; su implementación también debe considerar los códigos de respuesta distintos de 200 como errores. La propiedad Lookup será nula (json) o no se proporcionará (xml) si el error está relacionado con el servidor. Ver todos los posibles códigos de error bien formados.

Condiciones de uso

Nuestro términos estándar cubrir el uso de todas nuestras API.

En general, puede usar la API para mejorar su producto de diversas maneras. La única limitación es que no puede revender los datos tal cual ni proporcionar funcionalidad duplicada a builtwith.com y sus servicios asociados.