API REST Reachable

Les mêmes outils que le serveur MCP, en HTTP : même entrée, même réponse, même prix. Pour n8n, vos scripts et vos SDK.

Démarrage

URL de base : https://api.withreachable.com. Chaque requête porte une clé API dans l'en-tête Authorization: Bearer <clé>. Créez vos clés depuis votre compte.

Toute réponse suit la même enveloppe : success, data, cost et request_id ; une erreur renvoie success: false, un code machine stable dans error et un message lisible. Chaque donnée porte sa source et sa date de mise à jour.

Le paramètre max_cost plafonne le coût d'une requête : au-delà, rien n'est servi ni facturé. L'en-tête Idempotency-Key évite un double débit quand une requête est rejouée.

Spécification OpenAPI 3 complète : https://api.withreachable.com/v1/openapi.json.

Données

Facturées à l'usage, 0,05 € l'entreprise. estimate et count sont gratuits.

Compter des entreprises (gratuit)

POST/v1/companies/count· count

Corps JSON

NomTypeDescription
naf_codesarray de stringAPE en NAF rév. 2, code exact ou préfixe.
naf_codes_2025array de stringAPE en NAF 2025, code exact ou préfixe.
department_codesarray de stringDépartement du siège.
commune_codesarray de stringCommune du siège, code INSEE (ex. 06088 = Nice ; Paris, Lyon, Marseille : arrondissements 75101…), pas le code postal (06000).
legal_form_codesarray de stringCatégorie juridique INSEE, code exact ou préfixe (ex. 57 = SAS).
headcount_bandsarray de stringTranche d'effectifs INSEE (NN, 00, 01, 02…). Exclut les entreprises en diffusion partielle.
statusarray de "active" | "ceased"État administratif. Défaut : tous.
createdobjectDate de création.
created.fromstring (date)Date de début incluse, AAAA-MM-JJ.
created.tostring (date)Date de fin incluse, AAAA-MM-JJ.
signalsobjectEntreprises ayant au moins un signal de ces types sur la période.
signals.typesrequisarray de string
signals.occurredobject

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 402 Solde insuffisant
  • 403 Plafond du jour de la clé atteint
  • 404 Introuvable
  • 409 Idempotency-Key déjà utilisée pour un autre appel
  • 422 Coût supérieur à max_cost
  • 429 Limite de débit atteinte
curl -X POST "https://api.withreachable.com/v1/companies/count" \
  -H "Authorization: Bearer $REACHABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Chercher des entreprises par filtres ou par nom

POST/v1/companies/search· search_companies

Corps JSON

NomTypeDescription
qstringNom, sigle ou enseigne (tolérant aux fautes, actives d'abord), ou SIREN / SIRET exact. Combinable seulement avec department_codes et status (une valeur chacun).
naf_codesarray de stringAPE en NAF rév. 2, code exact ou préfixe.
naf_codes_2025array de stringAPE en NAF 2025, code exact ou préfixe.
department_codesarray de stringDépartement du siège.
commune_codesarray de stringCommune du siège, code INSEE (ex. 06088 = Nice ; Paris, Lyon, Marseille : arrondissements 75101…), pas le code postal (06000).
legal_form_codesarray de stringCatégorie juridique INSEE, code exact ou préfixe (ex. 57 = SAS).
headcount_bandsarray de stringTranche d'effectifs INSEE (NN, 00, 01, 02…). Exclut les entreprises en diffusion partielle.
statusarray de "active" | "ceased"État administratif. Défaut : tous.
createdobjectDate de création.
created.fromstring (date)Date de début incluse, AAAA-MM-JJ.
created.tostring (date)Date de fin incluse, AAAA-MM-JJ.
signalsobjectEntreprises ayant au moins un signal de ces types sur la période.
signals.typesrequisarray de string
signals.occurredobject
limitinteger
cursorstringCurseur opaque renvoyé par page_info.next_cursor.
max_costnumber ou stringPlafond de coût de la requête, en euros (ex. 0.05). Coût estimé supérieur : rien n'est servi ni facturé.

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 402 Solde insuffisant
  • 403 Plafond du jour de la clé atteint
  • 404 Introuvable
  • 409 Idempotency-Key déjà utilisée pour un autre appel
  • 422 Coût supérieur à max_cost
  • 429 Limite de débit atteinte
curl -X POST "https://api.withreachable.com/v1/companies/search" \
  -H "Authorization: Bearer $REACHABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Fiche d'une entreprise

GET/v1/companies/{siren}· get_company

Paramètres

NomTypeDescription
blocksstring · queryBlocs séparés par des virgules (public, labels). Défaut : public.
max_coststring · queryPlafond de coût en euros (ex. 0.01).
sirenrequisstring · chemin

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 402 Solde insuffisant
  • 403 Plafond du jour de la clé atteint
  • 404 Introuvable
  • 409 Idempotency-Key déjà utilisée pour un autre appel
  • 422 Coût supérieur à max_cost
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/companies/552081317" \
  -H "Authorization: Bearer $REACHABLE_API_KEY"

Signaux d'entreprises

POST/v1/signals/search· get_signals

Corps JSON

NomTypeDescription
sirensarray de stringLimiter à ces entreprises.
typesarray de stringTypes de signaux (ex. contract.awarded).
occurredobjectDate de l'événement.
occurred.fromstring (date)Date de début incluse, AAAA-MM-JJ.
occurred.tostring (date)Date de fin incluse, AAAA-MM-JJ.
detectedobjectDate d'entrée dans la base (pour un flux incrémental).
detected.fromstring (date)Date de début incluse, AAAA-MM-JJ.
detected.tostring (date)Date de fin incluse, AAAA-MM-JJ.
department_codesarray de stringDépartement du siège.
sort"occurred_on_desc" | "detected_at_asc"
limitinteger
cursorstringCurseur opaque renvoyé par page_info.next_cursor.
max_costnumber ou stringPlafond de coût de la requête, en euros (ex. 0.05). Coût estimé supérieur : rien n'est servi ni facturé.

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 402 Solde insuffisant
  • 403 Plafond du jour de la clé atteint
  • 404 Introuvable
  • 409 Idempotency-Key déjà utilisée pour un autre appel
  • 422 Coût supérieur à max_cost
  • 429 Limite de débit atteinte
curl -X POST "https://api.withreachable.com/v1/signals/search" \
  -H "Authorization: Bearer $REACHABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Estimer le coût d'un appel (gratuit)

POST/v1/estimate· estimate

Corps JSON

NomTypeDescription
toolrequis"search_companies" | "get_company" | "get_signals"Outil à estimer.
paramsrequisobjectParamètres de l'outil, tels qu'ils seraient envoyés (validés par son schéma).

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 402 Solde insuffisant
  • 403 Plafond du jour de la clé atteint
  • 404 Introuvable
  • 409 Idempotency-Key déjà utilisée pour un autre appel
  • 422 Coût supérieur à max_cost
  • 429 Limite de débit atteinte
curl -X POST "https://api.withreachable.com/v1/estimate" \
  -H "Authorization: Bearer $REACHABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Portefeuille

Recharge et recharge automatique du solde prépayé.

Créer une session de recharge Stripe Checkout

POST/v1/billing/checkout· create_checkout

Corps JSON

NomTypeDescription
amountrequisstring ou numberMontant en euros HT, au centime près (ex. "20" ou "20.00").

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 429 Limite de débit atteinte
curl -X POST "https://api.withreachable.com/v1/billing/checkout" \
  -H "Authorization: Bearer $REACHABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Régler la recharge automatique

PUT/v1/billing/auto-recharge· set_auto_recharge

Corps JSON

NomTypeDescription
enabledrequisboolean
thresholdstring ou numberSeuil : recharge quand le solde passe dessous (euros).
amountstring ou numberMontant HT de chaque recharge automatique (euros).

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 401 Clé API absente, inconnue ou révoquée
  • 429 Limite de débit atteinte
curl -X PUT "https://api.withreachable.com/v1/billing/auto-recharge" \
  -H "Authorization: Bearer $REACHABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Routes publiques gratuites

Sans clé API, limitées par adresse IP. Elles alimentent les outils gratuits du site.

Ville ou code postal → code commune INSEE (gratuit, sans compte)

GET/v1/public/communes· public_communes

Paramètres

NomTypeDescription
qrequisstring · query

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/communes"

Secteur en clair → code NAF rév. 2 (gratuit, sans compte)

GET/v1/public/naf-codes· public_naf_codes

Paramètres

NomTypeDescription
qrequisstring · query

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/naf-codes"

Fiche résumée et numéro de TVA vérifié auprès de VIES (gratuit, sans compte)

GET/v1/public/companies/{siren}· public_company

Paramètres

NomTypeDescription
sirenrequisstring · chemin

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/companies/552081317"

Historique d'un label RGE, Qualiopi ou Bio (gratuit, sans compte)

GET/v1/public/companies/{siren}/labels/{type}· public_label_history

Paramètres

NomTypeDescription
sirenrequisstring · chemin
typerequis"rge" | "qualiopi" | "bio" · chemin

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/companies/552081317/labels/<type>"

Validité d'un SIRET, établissement actif ou fermé (gratuit, sans compte)

GET/v1/public/establishments/{siret}· public_siret_check

Paramètres

NomTypeDescription
siretrequisstring · chemin

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/establishments/55208131766522"

Entreprises créées par commune ou département et secteur (gratuit, sans compte)

GET/v1/public/companies/new· public_new_companies

Paramètres

NomTypeDescription
department_codestring · query
commune_codestring · query
naf_codestring · query
created_fromrequisstring (date) · queryCréées à partir de cette date (AAAA-MM-JJ).

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/companies/new"

Procédures collectives, ventes de fonds, marchés publics (gratuit, sans compte)

GET/v1/public/signals· public_signals

Paramètres

NomTypeDescription
typerequis"insolvency.opened" | "company.sold" | "contract.awarded" · query
department_codestring · query
commune_codestring · query
naf_codestring · querySecteur de l'entreprise (APE en NAF rév. 2, code ou préfixe).
sirenstring · query
buyer_siretstring · queryAcheteur public (contract.awarded seulement).
occurred_fromstring (date) · query

Réponses

  • 200 Succès
  • 400 Paramètres invalides
  • 404 Introuvable
  • 429 Limite de débit atteinte
curl -X GET "https://api.withreachable.com/v1/public/signals"

Donnez à vos agents la donnée entreprise qu'ils méritent.

Serveur MCP et API sur toutes les entreprises françaises. Vous ne payez que ce que vos agents consomment.