Inicio rápido
Tu primera llamada a la API en menos de cinco minutos: crea una clave, pruébala, busca y luego revela.
1. Crea una clave
Abre Claves API en tu cuenta y crea una clave. Solo se muestra una vez, así que cópiala enseguida. Si tu plan no incluye la API, la página te indica qué planes la incluyen.
2. Prueba la clave
Esta llamada no gasta nada y te indica tu plan y tus límites. Sustituye la clave de ejemplo por la tuya.
curl "https://findbytown.com/api/v1/quota" \
-H "Authorization: Bearer fbt_EXAMPLE_not_a_real_key_0000"const res = await fetch("https://findbytown.com/api/v1/quota", {
headers: { Authorization: "Bearer fbt_EXAMPLE_not_a_real_key_0000" },
});
const body = await res.json();
if (!res.ok) throw new Error(body.error);
console.log(body);import requests
res = requests.get(
"https://findbytown.com/api/v1/quota",
headers={"Authorization": "Bearer fbt_EXAMPLE_not_a_real_key_0000"},
)
body = res.json()
if not res.ok:
raise RuntimeError(body["error"])
print(body)3. Busca
Encuentra fontaneros en Francia. Usa /countries, /zones y /categories para conocer los valores que aceptan los filtros.
curl "https://findbytown.com/api/v1/businesses?country=FR&trade=plumber&perPage=1" \
-H "Authorization: Bearer fbt_EXAMPLE_not_a_real_key_0000"const res = await fetch("https://findbytown.com/api/v1/businesses?country=FR&trade=plumber&perPage=1", {
headers: { Authorization: "Bearer fbt_EXAMPLE_not_a_real_key_0000" },
});
const body = await res.json();
if (!res.ok) throw new Error(body.error);
console.log(body);import requests
res = requests.get(
"https://findbytown.com/api/v1/businesses?country=FR&trade=plumber&perPage=1",
headers={"Authorization": "Bearer fbt_EXAMPLE_not_a_real_key_0000"},
)
body = res.json()
if not res.ok:
raise RuntimeError(body["error"])
print(body)Las filas llegan con domain, website y contact en null. Esto gasta tu presupuesto diario de empresas y nada de cuota de revelaciones.
4. Revela una empresa
Esta llamada gasta una revelación de tu cuota mensual. Si tienes dudas, consulta antes el coste con GET /businesses/{id}/reveal.
curl -X POST "https://findbytown.com/api/v1/businesses/1001/reveal" \
-H "Authorization: Bearer fbt_EXAMPLE_not_a_real_key_0000"const res = await fetch("https://findbytown.com/api/v1/businesses/1001/reveal", {
method: "POST",
headers: { Authorization: "Bearer fbt_EXAMPLE_not_a_real_key_0000" },
});
const body = await res.json();
if (!res.ok) throw new Error(body.error);
console.log(body);import requests
res = requests.post(
"https://findbytown.com/api/v1/businesses/1001/reveal",
headers={"Authorization": "Bearer fbt_EXAMPLE_not_a_real_key_0000"},
)
body = res.json()
if not res.ok:
raise RuntimeError(body["error"])
print(body)La respuesta contiene los contactos y "charged": true. Si la repites, obtienes los mismos datos con "charged": false: en el mismo periodo no se gasta nada más.
Siguientes pasos
- Gestiona los errores por su código
errorestable. - Respeta los límites con las cabeceras de respuesta.
- Usa la misma clave desde un cliente MCP.