API v1 · OpenAPI 3.1 · stabiel
API-referentie
Bevraag Franse bedrijfsgegevens (SIRENE/INSEE + RNE/INPI) vanuit uw applicatie: zoeken, rechtspersonen, vestigingen, bestuurders en jaarrekeningen. Eén basis-URL, authenticatie met een sleutelpaar.
Overzicht
Een stateless REST-API, JSON in/uit, geversioneerd. Elke route heeft het prefix /v1 en geeft de envelop { success, data, timestamp } terug.
- Basis-URL
https://companyfrance.fr/api/v1 - Versie
v1 · OpenAPI 3.1 - Formaat
application/json - Authenticatie
X-API-Key + X-API-Secret
Gegevens uit SIRENE/INSEE (open data) verrijkt met RNE/INPI. Het volledige contract is beschikbaar als OpenAPI 3.1.
Authenticatie
Elke aanvraag moet uw API-sleutelpaar in de HTTP-headers bevatten. De openbare sleutel identificeert uw account; de geheime sleutel authenticeert het. Stel uw geheime sleutel nooit bloot in de browser.
curl "https://companyfrance.fr/api/v1/me" \
-H "X-API-Key: pk_live_xxxxxxxxxxxx" \
-H "X-API-Secret: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx"Vereiste headers
X-API-Key— openbare sleutel, formaat pk_live_…X-API-Secret— geheime sleutel, formaat sk_live_… (server-side bewaren)
Maak en trek uw sleutels in via /dashboard/api/keys.
Foutformaat
Elke fout geeft een 4xx- of 5xx-HTTP-status terug en een JSON-body met success: false, een error-veld (leesbaar) en een code-veld (machine-identificatie).
{
"success": false,
"error": "No legal unit found for this SIREN.",
"code": "NOT_FOUND",
"timestamp": "2026-06-22T10:00:00.000Z"
}MISSING_CREDENTIALSAPI-sleutels ontbreken in de headers.INVALID_API_KEYOngeldige openbare of geheime sleutel.API_KEY_DISABLEDSleutel uitgeschakeld of verlopen.MISSING_FILTERGeen zoekfilter opgegeven (q, naf, codePostal…).INVALID_SIRENOngeldige SIREN: 9 cijfers verwacht.NOT_FOUNDBron niet gevonden.INTERNAL_ERRORInterne serverfout.
Paginering
Lijst-endpoints accepteren page (standaard 1) en perPage (standaard 20, max 100). Het antwoord bevat een pagination-object dat de huidige pagina beschrijft en of er een volgende pagina is.
"pagination": {
"page": 1,
"perPage": 20,
"total": 137,
"totalPages": 7,
"hasNext": true
}Quota & limieten
Aanroepen tellen mee voor het maandquotum van uw abonnement en zijn per uur beperkt. Elk antwoord toont uw verbruik via X-RateLimit-*-headers.
- Maandquotum van het abonnement
X-RateLimit-Limit - Resterende aanroepen in de periode
X-RateLimit-Remaining - Reset-tijdstempel (epoch)
X-RateLimit-Reset
Overschrijding
Rechtspersonen zoeken
/v1/searchZoeken in de database van Franse bedrijven. Geef minstens één filter op. Resultaten zijn gepagineerd en gesorteerd op naam.
Queryparameters
qstringoptioneelVrije tekst: naam, bestuurdersnaam of SIREN-prefix. Een q van 9 cijfers voert een exacte SIREN-opzoeking uit.
nafstringoptioneelExacte NAF/APE-code (bijv. 29.10Z) of divisieprefix (bijv. 62).
categorieJuridiquestringoptioneelINSEE-rechtsvormcode (bijv. 5710).
etatstringoptioneelACAdministratieve status: A (actief) of C (gestopt).
codePostalstringoptioneelExacte postcode (komt overeen met een vestiging).
communestringoptioneelGemeentenaam (gedeeltelijke overeenkomst).
departementstringoptioneelDepartement van 2 cijfers (postcodeprefix).
pageintegeroptioneelstandaard1Paginanummer (vanaf 1).
perPageintegeroptioneelstandaard20Resultaten per pagina (max 100).
Antwoorden
- 200Gepagineerde resultaten (items + pagination).
- 400Geen filter opgegeven.
- 401API-sleutels ontbreken of zijn ongeldig.
- 429Quotum of snelheidslimiet overschreden.
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"
}Bedrijven zoeken op bestuurder
/v1/search/dirigeantsOmgekeerde zoekopdracht: alle bedrijven die een persoon bestuurt of heeft bestuurd (RNE-bestuurders + eenmanszaken). Niet hoofdletter- en accentgevoelig. Geef ten minste nom of prenom op (min. 2 tekens).
Queryparameters
nomstringoptioneelAchternaam (of een naamterm).
prenomstringoptioneelVoornaam/voornamen.
strictbooleanoptioneelstandaardfalsetrue → veldgebonden matching (nom↔nom, prénom↔prénom): minder naamgenoten.
pageintegeroptioneelstandaard1Paginanummer (vanaf 1).
perPageintegeroptioneelstandaard20Resultaten per pagina (max 100).
Antwoorden
- 200Bedrijven gekoppeld aan de persoon (items + pagination, totalMatched, capped).
- 400Geen bestuurdersnaam opgegeven.
- 401API-sleutels ontbreken of zijn ongeldig.
- 429Quotum of snelheidslimiet overschreden.
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"
}Bedrijven zoeken op adres
/v1/search/adresseOmgekeerde zoekopdracht: alle bedrijven gevestigd op een adres, gegroepeerd per SIREN (hoofdkantoor eerst). De postcode is verplicht; verfijn met straat en gemeente.
Queryparameters
codePostalstringvereistPostcode — verplicht. 5 cijfers (of een prefix van min. 4 cijfers). Dit is het geïndexeerde anker.
voiestringoptioneelStraattermen (nummer / type / naam), in willekeurige volgorde.
communestringoptioneelGemeentenaam (optionele verfijning).
pageintegeroptioneelstandaard1Paginanummer (vanaf 1).
perPageintegeroptioneelstandaard20Resultaten per pagina (max 100).
Antwoorden
- 200Bedrijven op het adres (items + pagination, totalMatched, capped).
- 400Postcode ontbreekt.
- 401API-sleutels ontbreken of zijn ongeldig.
- 429Quotum of snelheidslimiet overschreden.
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"
}Een rechtspersoon ophalen
/v1/unite-legale/{siren}Volledig bedrijfsdossier: namen, rechtsvorm, activiteit, kapitaal (Pro/Enterprise), personeel, btw-nummer en aantal vestigingen.
Padparameters
sirenstringvereistSIREN van de rechtspersoon — 9 cijfers.
Antwoorden
- 200Dossier van de rechtspersoon.
- 404Bron niet gevonden.
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"
}Vestigingen van een rechtspersoon opsommen
/v1/unite-legale/{siren}/etablissementsVestigingen (SIRET) gekoppeld aan een SIREN, gepagineerd. Filter op status om alleen actieve vestigingen te behouden.
Padparameters
sirenstringvereistSIREN van de rechtspersoon — 9 cijfers.
Queryparameters
etatstringoptioneelAFVestigingsstatus: A (actief) of F (gesloten).
pageintegeroptioneelstandaard1Paginanummer (vanaf 1).
perPageintegeroptioneelstandaard20Resultaten per pagina (max 100).
Antwoorden
- 200Gepagineerde vestigingen.
- 404Bron niet gevonden.
curl "https://companyfrance.fr/api/v1/unite-legale/552032534/etablissements?etat=A" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Bestuurders van een rechtspersoon opsommen
/v1/unite-legale/{siren}/dirigeantsBestuurders (zaakvoerder, voorzitter…) uit het RNE. Voor een eenmanszaak wordt de natuurlijke persoon afgeleid uit de identiteit van de rechtspersoon.
Padparameters
sirenstringvereistSIREN van de rechtspersoon — 9 cijfers.
Antwoorden
- 200Lijst van bestuurders (count + items).
- 404Bron niet gevonden.
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"
}Jaarrekeningen van een rechtspersoon
/v1/unite-legale/{siren}/financesNeergelegde jaarrekeningen (omzet, nettoresultaat…) indien beschikbaar.
Padparameters
sirenstringvereistSIREN van de rechtspersoon — 9 cijfers.
Antwoorden
- 200Jaarrekeningen.
- 403Ontoereikend abonnement — upgrade vereist.
- 404Bron niet gevonden.
Endpoint voorbehouden voor Pro- en Enterprise-abonnementen
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"
}Een vestiging ophalen
/v1/etablissement/{siret}Vestigingsdossier op SIRET: adres, activiteit, handelsnaam, hoofdkantoor-vlag en administratieve status.
Padparameters
siretstringvereistSIRET van de vestiging — 14 cijfers.
Antwoorden
- 200Dossier van de vestiging.
- 404Bron niet gevonden.
curl "https://companyfrance.fr/api/v1/etablissement/55203253400041" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."NAF-nomenclatuur
/v1/nafLijst van NAF/APE-codes met hun labels. Filter met q om te zoeken op label of code.
Queryparameters
qstringoptioneelZoeken op label of NAF-code.
Antwoorden
- 200NAF-codes.
curl "https://companyfrance.fr/api/v1/naf?q=automobile" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Een NAF-code oplossen
/v1/naf/{code}Geeft het label van een specifieke NAF/APE-code terug.
Padparameters
codestringvereistOp te lossen NAF/APE-code (bijv. 29.10Z).
Antwoorden
- 200Codelabel.
- 404Bron niet gevonden.
curl "https://companyfrance.fr/api/v1/naf/29.10Z" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Nomenclatuur van rechtsvormen
/v1/categories-juridiquesLijst van rechtsvormcodes (INSEE) met hun labels. Filter met q.
Queryparameters
qstringoptioneelZoeken op label of code.
Antwoorden
- 200Rechtsvormen.
curl "https://companyfrance.fr/api/v1/categories-juridiques?q=SARL" \
-H "X-API-Key: pk_live_..." \
-H "X-API-Secret: sk_live_..."Uw abonnement & verbruik
/v1/meGeeft het aanroepende account, zijn abonnement en huidig verbruik terug. Deze aanroep telt zelf mee voor het quotum.
Antwoorden
- 200Abonnement + verbruik.
- 400API-sleutel niet gekoppeld aan een bedrijf.
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"
}