API v1 · OpenAPI 3.1 · stable
Référence API
Interrogez les données des entreprises françaises (SIRENE/INSEE + RNE/INPI) depuis votre application : recherche, unités légales, établissements, dirigeants et comptes annuels. Une seule URL de base, authentification par paire de clés.
Vue d'ensemble
Une API REST sans état, JSON en entrée/sortie, versionnée. Toutes les routes sont préfixées par /v1 et renvoient l'enveloppe { success, data, timestamp }.
- URL de base
https://companyfrance.fr/api/v1 - Version
v1 · OpenAPI 3.1 - Format
application/json - Authentification
X-API-Key + X-API-Secret
Données issues de SIRENE/INSEE (open data) enrichies du RNE/INPI. Le contrat complet est disponible au format OpenAPI 3.1.
Authentification
Chaque requête doit inclure votre paire de clés API dans les en-têtes HTTP. La clé publique identifie votre compte ; la clé secrète l'authentifie. Ne partagez jamais votre clé secrète côté navigateur.
curl "https://companyfrance.fr/api/v1/me" \
-H "X-API-Key: pk_live_xxxxxxxxxxxx" \
-H "X-API-Secret: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"En-têtes requis
X-API-Key— clé publique, format pk_live_…X-API-Secret— clé secrète, format sk_live_… (à garder côté serveur)
Créez et révoquez vos clés depuis /dashboard/api/keys.
Format des erreurs
Toutes les erreurs renvoient un code HTTP 4xx ou 5xx et un corps JSON avec success: false, un champ error (message lisible) et un champ code (identifiant machine).
{
"success": false,
"error": "No legal unit found for this SIREN.",
"code": "NOT_FOUND",
"timestamp": "2026-06-22T10:00:00.000Z"
}MISSING_CREDENTIALSClés API absentes des en-têtes.INVALID_API_KEYClé publique ou clé secrète invalide.API_KEY_DISABLEDClé désactivée ou expirée.MISSING_FILTERAucun filtre fourni à la recherche (q, naf, codePostal…).INVALID_SIRENSIREN invalide : 9 chiffres attendus.NOT_FOUNDRessource introuvable.INTERNAL_ERRORErreur interne du serveur.
Pagination
Les endpoints de liste acceptent page (défaut 1) et perPage (défaut 20, max 100). La réponse inclut un objet pagination décrivant la page courante et la présence d'une page suivante.
"pagination": {
"page": 1,
"perPage": 20,
"total": 137,
"totalPages": 7,
"hasNext": true
}Quotas & limites
Les appels sont décomptés sur le quota mensuel de votre plan et limités par heure. Chaque réponse expose votre consommation via les en-têtes X-RateLimit-*.
- Quota mensuel du plan
X-RateLimit-Limit - Appels restants sur la période
X-RateLimit-Remaining - Horodatage (epoch) de réinitialisation
X-RateLimit-Reset
Dépassement
Rechercher des unités légales
/v1/searchRecherche en base sur les entreprises françaises. Fournissez au moins un filtre. Les résultats sont paginés et triés par dénomination.
Paramètres de requête
qstringoptionnelTexte libre : dénomination, nom du dirigeant ou préfixe de SIREN. Un q de 9 chiffres effectue une recherche exacte par SIREN.
nafstringoptionnelCode NAF/APE exact (ex. 29.10Z) ou préfixe de division (ex. 62).
categorieJuridiquestringoptionnelCode INSEE de catégorie juridique (ex. 5710).
etatstringoptionnelACÉtat administratif : A (active) ou C (cessée).
codePostalstringoptionnelCode postal exact (correspond à un établissement).
communestringoptionnelNom de commune (recherche partielle).
departementstringoptionnelDépartement sur 2 chiffres (préfixe de code postal).
pageintegeroptionneldéfaut1Numéro de page (à partir de 1).
perPageintegeroptionneldéfaut20Nombre de résultats par page (max 100).
Réponses
- 200Résultats paginés (items + pagination).
- 400Aucun filtre fourni.
- 401Clés API absentes ou invalides.
- 429Quota ou limite de débit dépassé.
curl "https://companyfrance.fr/api/v1/search?q=renault&departement=92&perPage=20" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"items": [
{
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"sigle": null,
"legalForm": { "code": "5710", "label": "SA à conseil d'administration" },
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"category": "GE",
"active": true,
"state": "A",
"dateCreation": "1955-01-01T00:00:00.000Z"
}
],
"pagination": { "page": 1, "perPage": 20, "total": 3, "totalPages": 1, "hasNext": false }
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Rechercher des sociétés par dirigeant
/v1/search/dirigeantsRecherche inversée : toutes les sociétés qu'une personne dirige ou a dirigées (dirigeants RNE + entrepreneurs individuels). Insensible à la casse et aux accents. Fournissez au moins nom ou prénom (2 caractères min).
Paramètres de requête
nomstringoptionnelNom de famille (ou tout terme du nom).
prenomstringoptionnelPrénom(s).
strictbooleanoptionneldéfautfalsetrue → correspondance verrouillée par champ (nom↔nom, prénom↔prénom) : moins d'homonymes.
pageintegeroptionneldéfaut1Numéro de page (à partir de 1).
perPageintegeroptionneldéfaut20Nombre de résultats par page (max 100).
Réponses
- 200Sociétés liées à la personne (items + pagination, totalMatched, capped).
- 400Aucun nom de dirigeant fourni.
- 401Clés API absentes ou invalides.
- 429Quota ou limite de débit dépassé.
curl "https://companyfrance.fr/api/v1/search/dirigeants?nom=Dupont&prenom=Jean" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"items": [
{
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"active": true,
"state": "A",
"dateCreation": "1955-01-01T00:00:00.000Z",
"dateRadiation": null,
"roles": ["Président du conseil d'administration"],
"matched": "Jean Dupont"
}
],
"pagination": { "page": 1, "perPage": 20, "total": 3, "totalPages": 1, "hasNext": false },
"totalMatched": 3,
"capped": false
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Rechercher des sociétés par adresse
/v1/search/adresseRecherche inversée : toutes les sociétés domiciliées à une adresse, regroupées par SIREN (siège en premier). Le code postal est obligatoire ; affinez avec la voie et la commune.
Paramètres de requête
codePostalstringrequisCode postal — obligatoire. 5 chiffres (ou préfixe de 4 chiffres min). C'est l'ancre indexée.
voiestringoptionnelTermes de voie (numéro / type / libellé), dans n'importe quel ordre.
communestringoptionnelNom de commune (affinage facultatif).
pageintegeroptionneldéfaut1Numéro de page (à partir de 1).
perPageintegeroptionneldéfaut20Nombre de résultats par page (max 100).
Réponses
- 200Sociétés à l'adresse (items + pagination, totalMatched, capped).
- 400Code postal manquant.
- 401Clés API absentes ou invalides.
- 429Quota ou limite de débit dépassé.
curl "https://companyfrance.fr/api/v1/search/adresse?codePostal=92100&voie=Quai+Le+Gallo" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"items": [
{
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"active": true,
"state": "A",
"dateCreation": "1955-01-01T00:00:00.000Z",
"address": "13 Quai Alphonse Le Gallo, 92100 Boulogne-Billancourt",
"street": "13 Quai Alphonse Le Gallo",
"postalCode": "92100",
"commune": "Boulogne-Billancourt",
"headOffice": true,
"establishmentsMatched": 1
}
],
"pagination": { "page": 1, "perPage": 20, "total": 12, "totalPages": 1, "hasNext": false },
"totalMatched": 12,
"capped": false
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Récupérer une unité légale
/v1/unite-legale/{siren}Fiche complète d'une entreprise : dénominations, forme juridique, activité, capital (Pro/Enterprise), effectif, n° de TVA et compteur d'établissements.
Paramètres de chemin
sirenstringrequisSIREN de l'unité légale — 9 chiffres.
Réponses
- 200Fiche de l'unité légale.
- 404Ressource introuvable.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"siren": "552032534",
"sirenFormatted": "552 032 534",
"name": "RENAULT",
"legalForm": { "code": "5710", "label": "SA à conseil d'administration" },
"activity": { "code": "29.10Z", "label": "Construction de véhicules automobiles" },
"active": true,
"state": "A",
"vatNumber": "FR41552032534",
"workforceRange": "53",
"capital": { "amount": 1126701902, "currency": "EUR", "variable": false },
"establishments": { "total": 12, "active": 9 }
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Lister les établissements d'une unité légale
/v1/unite-legale/{siren}/etablissementsÉtablissements (SIRET) rattachés à un SIREN, paginés. Filtrez sur l'état pour ne garder que les établissements actifs.
Paramètres de chemin
sirenstringrequisSIREN de l'unité légale — 9 chiffres.
Paramètres de requête
etatstringoptionnelAFÉtat de l'établissement : A (actif) ou F (fermé).
pageintegeroptionneldéfaut1Numéro de page (à partir de 1).
perPageintegeroptionneldéfaut20Nombre de résultats par page (max 100).
Réponses
- 200Établissements paginés.
- 404Ressource introuvable.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/etablissements?etat=A" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Lister les dirigeants d'une unité légale
/v1/unite-legale/{siren}/dirigeantsDirigeants (gérant, président…) issus du RNE. Pour un entrepreneur individuel, la personne physique est synthétisée depuis l'identité de l'unité légale.
Paramètres de chemin
sirenstringrequisSIREN de l'unité légale — 9 chiffres.
Réponses
- 200Liste des dirigeants (count + items).
- 404Ressource introuvable.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/dirigeants" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"siren": "552032534",
"count": 1,
"items": [
{
"type": "person",
"name": "Jean Dupont",
"nom": "Dupont",
"prenoms": "Jean",
"denomination": null,
"role": "Président du conseil d'administration",
"birthYear": 1968
}
]
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Comptes annuels d'une unité légale
/v1/unite-legale/{siren}/financesComptes annuels déposés (chiffre d'affaires, résultat net…) lorsqu'ils sont disponibles.
Paramètres de chemin
sirenstringrequisSIREN de l'unité légale — 9 chiffres.
Réponses
- 200Comptes annuels.
- 403Plan insuffisant — mise à niveau requise.
- 404Ressource introuvable.
Endpoint réservé aux plans Pro et Enterprise
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/finances" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"siren": "552032534",
"count": 1,
"items": [
{
"year": 2024,
"dateCloture": "2024-12-31",
"typeBilan": "C",
"totalBilan": 98765432000,
"capitauxPropres": 31200000000,
"resultatNet": 752000000,
"chiffreAffaires": 56601000000,
"currency": "EUR",
"confidential": false,
"dateDepot": "2025-05-14"
}
]
},
"timestamp": "2026-06-22T10:00:00.000Z"
}Récupérer un établissement
/v1/etablissement/{siret}Fiche d'un établissement par son SIRET : adresse, activité, enseigne, statut de siège et état administratif.
Paramètres de chemin
siretstringrequisSIRET de l'établissement — 14 chiffres.
Réponses
- 200Fiche de l'établissement.
- 404Ressource introuvable.
curl "https://companyfrance.fr/api/v1/etablissement/55203253400041" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Nomenclature NAF
/v1/nafListe des codes NAF/APE avec leurs libellés. Filtrez avec q pour une recherche par libellé ou par code.
Paramètres de requête
qstringoptionnelRecherche par libellé ou par code NAF.
Réponses
- 200Codes NAF.
curl "https://companyfrance.fr/api/v1/naf?q=automobile" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Résoudre un code NAF
/v1/naf/{code}Renvoie le libellé d'un code NAF/APE précis.
Paramètres de chemin
codestringrequisCode NAF/APE à résoudre (ex. 29.10Z).
Réponses
- 200Libellé du code.
- 404Ressource introuvable.
curl "https://companyfrance.fr/api/v1/naf/29.10Z" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Nomenclature des catégories juridiques
/v1/categories-juridiquesListe des codes de forme juridique (INSEE) avec leurs libellés. Filtrez avec q.
Paramètres de requête
qstringoptionnelRecherche par libellé ou par code.
Réponses
- 200Catégories juridiques.
curl "https://companyfrance.fr/api/v1/categories-juridiques?q=SARL" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Votre plan & consommation
/v1/meRenvoie le compte appelant, son plan et sa consommation courante. Cet appel est lui-même décompté du quota.
Réponses
- 200Plan + consommation.
- 400Clé API non rattachée à une entreprise.
curl "https://companyfrance.fr/api/v1/me" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."{
"success": true,
"data": {
"keyId": "key_01J…",
"company": { "id": "cmp_01J…" },
"plan": {
"code": "pro",
"name": "Pro",
"status": "active",
"trialEndsAt": null,
"currentPeriodEnd": "2027-06-22T00:00:00.000Z"
},
"usage": {
"used": 1284,
"limit": 50000,
"remaining": 48716,
"percentage": 3,
"resetAt": "2026-07-01T00:00:00.000Z",
"hourlyRateLimit": 1000
}
},
"timestamp": "2026-06-22T10:00:00.000Z"
}