Buscar empresas
Lista las empresas que coinciden con los filtros, primero las de mejor calidad salvo que pidas otro orden. Las filas gastan tu presupuesto diario de empresas, no tu cuota de revelaciones. domain, website y contact siguen en null hasta que hayas revelado la empresa.
GEThttps://findbytown.com/api/v1/businessesSin cuota
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| country | string | Código de país de dos letras, como FR. Consulta GET /countries. |
| zone | string | Slug de zona, como fr_idf. Consulta GET /zones. |
| city | string | Nombre de la ciudad en cualquier idioma: Cologne también encuentra Köln. |
| near | string | Búsqueda por radio como lon,lat,km, hasta 200 km. Solo coinciden las empresas con una ubicación real. |
| nearName | string | Nombre del lugar en near: las empresas sin ubicación exacta coinciden cuando su propia dirección lo menciona. |
| postcode | string | Inicio de un código postal: 75011, o solo 75 para todos. Hasta 4, separados por comas. |
| dept | string | Código de un departamento francés, como 69 para el Ródano. |
| poly | string | Polígono con vértices "lon lat" separados por punto y coma, de 3 a 60 vértices. |
| q | string | Palabras clave, hasta 6 palabras, buscadas en nombre, descripción, dirección y categorías. Un dominio solo coincide si se escribe completo. |
| category | string | Slug de categoría general. Consulta GET /categories. |
| trade | string | Clave de oficio, una familia de categorías relacionadas. Consulta GET /categories. |
| gcat | string | Una categoría exacta de la lista, sin distinguir mayúsculas. |
| provider | own_smtp | google | microsoft | yahoo | invalid | unknown | Familia del proveedor de correo de la empresa. |
| providerDetail | string | Nombre exacto del proveedor de correo, sin distinguir mayúsculas. |
| hasPhone | boolean | true: solo empresas con un teléfono registrado. |
| noPhone | boolean | true: solo empresas sin teléfono registrado. |
| hasContacts | boolean | true: solo empresas con contactos con nombre. |
| noContacts | boolean | true: solo empresas sin contactos con nombre. |
| hasOtherEmails | boolean | true: solo empresas con más de una dirección de email. |
| qmin | integer | Puntuación de calidad mínima, de 0 a 100. |
| qmax | integer | Puntuación de calidad máxima, de 0 a 100. |
| precision | string | Lista separada por comas de precisiones de ubicación: exact, city, region, country. |
| approx | boolean | false: solo empresas con una ubicación exacta. Valor predeterminado: true. |
| minRating | number | Valoración mínima, de 0 a 5. |
| minReviews | integer | Número mínimo de reseñas. |
| sizeClass | PME | ETI | GE | Clase de tamaño del registro. Los datos del registro solo se conocen para algunas empresas francesas. |
| headcount | string | Un tramo de plantilla del registro tal como está guardado, como 20-49. |
| minHeadcount | integer | Plantilla mínima del registro: una empresa cuenta desde el inicio de su tramo. |
| minRevenue | number | Facturación mínima del registro, en euros. |
| legalForm | string | Forma jurídica del registro, sin distinguir mayúsculas. |
| sort | quality | distance | rating | reviews | Orden de los resultados. distance necesita near. |
| bbox | string | Recuadro del mapa como minLng,minLat,maxLng,maxLat. |
| page | integer | Número de página, desde 1. La última página a la que puedes llegar está en maxPage. |
| perPage | integer | Filas por página. Un número mayor se interpreta como el máximo, y la respuesta indica cuál se aplicó. |
| locale | en | fr | es | Idioma de las etiquetas y los nombres de categoría: en, fr o es. Por defecto, el idioma de tu cuenta. |
Ejemplos
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)Respuesta
Ejemplo con valores ficticios:
{
"data": [
{
"id": 1001,
"name": "Example Plumbing",
"domain": null,
"website": null,
"revealed": false,
"zone": "fr_idf",
"country": "FR",
"precision": "exact",
"quality": 80,
"provider": "google",
"providerDetail": "Google Workspace",
"hasPhone": true,
"hasEmail": true,
"contactsCount": 1,
"otherEmailsCount": 0,
"city": "Exampleville",
"adminArea": "Example Region",
"postalCode": "00000",
"address": "1 Example Street",
"fullAddress": "1 Example Street, 00000 Exampleville",
"activity": "Plumber",
"category": "Plumber",
"categories": [
"Heating contractor"
],
"websiteTitle": null,
"description": "Plumbing and heating repairs.",
"mapsUrl": null,
"rating": 4.6,
"reviews": 25,
"distanceM": null,
"facts": null,
"contact": null
}
],
"page": 1,
"perPage": 1,
"total": 128,
"maxPage": 200,
"hasMore": true,
"capped": false
}Errores
| Código | Estado HTTP | Significado |
|---|---|---|
| validation_error | 400 | Falta un parámetro o su formato es incorrecto. details indica cuál. |
| unknown_parameter | 400 | Este endpoint no reconoce un parámetro de consulta, normalmente por un error de escritura. details indica cuál. |
| use_reveal_endpoint | 400 | Has enviado reveal= en una lectura. Las lecturas nunca gastan cuota: usa el endpoint de revelación. |
| missing_api_key | 401 | No hay cabecera Authorization, o está vacía. |
| invalid_api_key | 401 | La clave no existe o ha sido revocada. |
| plan_without_api | 403 | El plan actual de la cuenta no incluye la API. Se aplica desde el momento en que termina un plan. |
| suspended | 403 | La cuenta está suspendida. Sus claves vuelven a funcionar si se levanta la suspensión. |
| rate_limited | 429 | Demasiadas solicitudes este minuto. Espera los segundos que indica Retry-After. |
| budget_exhausted | 429 | Has alcanzado el presupuesto de hoy de empresas distintas. Las empresas ya vistas hoy siguen pasando. Retry-After indica cuándo se reinicia. |
| blocked | 429 | El acceso a los datos de empresas está temporalmente en pausa por uso automatizado, como recorrer ids. Retry-After indica el tiempo restante. Escribe a soporte si es un error. |
| internal_error | 500 | Algo ha fallado por nuestra parte. Indica requestId al escribir a soporte. |