Revelar una empresa
Gasta una revelación de tu cuota mensual y devuelve la ficha con domain, website y contacts. Volver a revelar la misma empresa en el mismo periodo es gratis, y charged lo indica.
POSThttps://findbytown.com/api/v1/businesses/{id}/revealGasta cuota
Parámetros de ruta
| Nombre | Tipo | Descripción |
|---|---|---|
| id(obligatorio) | integer | Id de la empresa, un entero. |
Cuerpo JSON (opcional)
| 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 -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)Respuesta
Ejemplo con valores ficticios:
{
"data": {
"id": 1001,
"domain": "plumbing.example",
"name": "Example Plumbing",
"website": "https://plumbing.example/",
"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": true,
"contact": {
"email": "contact@plumbing.example",
"otherEmails": [],
"phone": "+33100000000",
"extraPhones": [],
"contacts": [
{
"fullName": "Alex Example",
"title": "Manager",
"email": "alex@plumbing.example"
}
]
}
},
"charged": true,
"quota": {
"used": 13,
"allowance": 10000,
"remaining": 9987,
"resetAt": "2030-01-01T00:00:00.000Z"
}
}Errores
| Código | Estado HTTP | Significado |
|---|---|---|
| validation_error | 400 | Falta un parámetro o su formato es incorrecto. details indica cuál. |
| 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. |
| quota_exhausted | 402 | No quedan revelaciones en este periodo. details contiene la fecha de reinicio. La lectura sigue disponible. |
| 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. |
| email_invalid | 409 | El email de esta empresa está marcado como no válido, así que no se puede revelar. No se ha gastado nada. |
| rate_limited | 429 | Demasiadas solicitudes este minuto. Espera los segundos que indica Retry-After. |
| 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. |
| reveals_unavailable | 503 | Las revelaciones no están disponibles por un momento y no se ha gastado nada. Inténtalo de nuevo en breve. |