Obtener una empresa
La ficha completa de una empresa. Los datos de contacto aparecen enmascarados, y domain y website son null hasta que la reveles. Esta lectura nunca gasta cuota. Gasta una empresa de tu presupuesto diario, salvo que ya la hayas revelado.
GEThttps://findbytown.com/api/v1/businesses/{id}Sin cuota
Parámetros de ruta
| Nombre | Tipo | Descripción |
|---|---|---|
| id(obligatorio) | integer | Id de la empresa, un entero. |
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| 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/1001" \
-H "Authorization: Bearer fbt_EXAMPLE_not_a_real_key_0000"const res = await fetch("https://findbytown.com/api/v1/businesses/1001", {
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/1001",
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,
"domain": null,
"name": "Example Plumbing",
"website": null,
"zone": "fr_idf",
"zoneLabels": {
"en": "Example Region",
"fr": "Région Exemple",
"es": "Región Ejemplo"
},
"country": "FR",
"precision": "exact",
"address": "1 Example Street",
"city": "Exampleville",
"quality": 80,
"provider": "google",
"providerDetail": "Google Workspace",
"hasPhone": true,
"contactsCount": 1,
"otherEmailsCount": 0,
"description": "Plumbing and heating repairs.",
"logoUrl": null,
"social": {},
"openingHours": null,
"activity": "Plumber",
"categories": [
"Heating contractor"
],
"websiteTitle": null,
"postalCode": "00000",
"adminArea": "Example Region",
"fullAddress": "1 Example Street, 00000 Exampleville",
"mapsUrl": null,
"rating": 4.6,
"reviews": 25,
"facts": null,
"extraPhonesCount": 0,
"primaryEmailMasked": "c•••@•••",
"phoneMasked": "+33 1 •• •• •• 00",
"revealed": false,
"contact": null
}
}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. |
| bad_id | 400 | El id de la empresa no es un entero positivo. |
| 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. |
| not_found | 404 | Esa empresa no existe, o se retiró a petición de su propietario. |
| 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. |