Rechercher des entreprises
Liste les entreprises correspondant aux filtres, les meilleures en qualité d’abord, sauf si vous demandez un autre ordre. Les lignes consomment votre budget quotidien d’entreprises, pas votre quota de révélations. domain, website et contact restent à null tant que vous n’avez pas révélé l’entreprise.
GEThttps://findbytown.com/api/v1/businessesSans quota
Paramètres
| Nom | Type | Description |
|---|---|---|
| country | string | Code pays à deux lettres, comme FR. Voir GET /countries. |
| zone | string | Slug de zone, comme fr_idf. Voir GET /zones. |
| city | string | Nom de ville dans n’importe quelle langue : Cologne trouve aussi Köln. |
| near | string | Recherche par rayon sous la forme lon,lat,km, jusqu’à 200 km. Seules les entreprises avec une position réelle correspondent. |
| nearName | string | Nom du lieu indiqué dans near : les entreprises sans position exacte correspondent quand leur propre adresse le mentionne. |
| postcode | string | Début d’un code postal : 75011, ou 75 pour tous. Jusqu’à 4, séparés par des virgules. |
| dept | string | Code d’un département français, comme 69 pour le Rhône. |
| poly | string | Polygone sous forme de sommets "lon lat" séparés par des points-virgules, de 3 à 60 sommets. |
| q | string | Mots-clés, jusqu’à 6 mots, recherchés dans le nom, la description, l’adresse et les catégories. Un domaine ne correspond que s’il est saisi en entier. |
| category | string | Slug de catégorie générale. Voir GET /categories. |
| trade | string | Clé de métier, une famille de catégories proches. Voir GET /categories. |
| gcat | string | Une catégorie exacte de la liste, sans tenir compte de la casse. |
| provider | own_smtp | google | microsoft | yahoo | invalid | unknown | Famille de messagerie de l’entreprise. |
| providerDetail | string | Nom exact de la messagerie, sans tenir compte de la casse. |
| hasPhone | boolean | true : uniquement les entreprises avec un numéro de téléphone enregistré. |
| noPhone | boolean | true : uniquement les entreprises sans numéro de téléphone enregistré. |
| hasContacts | boolean | true : uniquement les entreprises avec des contacts nommés. |
| noContacts | boolean | true : uniquement les entreprises sans contacts nommés. |
| hasOtherEmails | boolean | true : uniquement les entreprises avec plus d’une adresse email. |
| qmin | integer | Score qualité minimal, de 0 à 100. |
| qmax | integer | Score qualité maximal, de 0 à 100. |
| precision | string | Liste de précisions de position séparées par des virgules : exact, city, region, country. |
| approx | boolean | false : uniquement les entreprises avec une position exacte. Valeur par défaut : true. |
| minRating | number | Note minimale, de 0 à 5. |
| minReviews | integer | Nombre minimal d’avis. |
| sizeClass | PME | ETI | GE | Catégorie de taille au registre. Les données du registre ne sont connues que pour certaines entreprises françaises. |
| headcount | string | Une tranche d’effectif du registre telle qu’enregistrée, comme 20-49. |
| minHeadcount | integer | Effectif minimal au registre : une entreprise compte à partir du bas de sa tranche. |
| minRevenue | number | Chiffre d’affaires minimal au registre, en euros. |
| legalForm | string | Forme juridique au registre, sans tenir compte de la casse. |
| sort | quality | distance | rating | reviews | Ordre des résultats. distance nécessite near. |
| bbox | string | Cadre de carte sous la forme minLng,minLat,maxLng,maxLat. |
| page | integer | Numéro de page, à partir de 1. La dernière page accessible figure dans maxPage. |
| perPage | integer | Lignes par page. Un nombre plus élevé est lu comme le maximum, et la réponse indique la valeur appliquée. |
| locale | en | fr | es | Langue des libellés et des noms de catégories : en, fr ou es. Par défaut, la langue de votre compte. |
Exemples
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)Réponse
Exemple avec des valeurs fictives :
{
"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
}Erreurs
| Code | Statut HTTP | Signification |
|---|---|---|
| validation_error | 400 | Un paramètre est manquant ou mal formé. details indique lequel. |
| unknown_parameter | 400 | Un paramètre de requête n’est pas connu de cet endpoint, en général à cause d’une faute de frappe. details indique lequel. |
| use_reveal_endpoint | 400 | Vous avez envoyé reveal= sur une lecture. Les lectures ne consomment jamais de quota : utilisez l’endpoint de révélation. |
| missing_api_key | 401 | En-tête Authorization absent ou vide. |
| invalid_api_key | 401 | La clé n’existe pas ou a été révoquée. |
| plan_without_api | 403 | L’offre actuelle du compte n’inclut pas l’API. S’applique dès la fin d’une offre. |
| suspended | 403 | Le compte est suspendu. Ses clés refonctionnent si la suspension est levée. |
| rate_limited | 429 | Trop de requêtes cette minute. Attendez le nombre de secondes indiqué dans Retry-After. |
| budget_exhausted | 429 | Vous avez atteint le budget quotidien d’entreprises distinctes. Les entreprises déjà vues aujourd’hui passent toujours. Retry-After indique quand il se réinitialise. |
| blocked | 429 | L’accès aux données d’entreprises est temporairement suspendu en raison d’un usage automatisé, comme le parcours des identifiants. Retry-After indique le temps restant. Écrivez au support s’il s’agit d’une erreur. |
| internal_error | 500 | Une erreur s’est produite de notre côté. Indiquez requestId en écrivant au support. |