SwarmIncToolsAPIsFree LLM APIsSupport

REST API · JSON · through RapidAPI

French Company Search (Recherche d'entreprises, Sirene) API

Search France's official company register by NAF activity code, département, headcount band and status, and get typed legal-entity records with head-office address, coordinates and company size.

Read from the official source when you call (recherche-entreprises.api.gouv.fr); no personal data. GET /v1/fr-company-search answers {"product", "count", "items", "fetched_at"}.

Source: API Recherche d'entreprises (data.gouv.fr, from INSEE's SIRENE and the RNE), under Licence Ouverte / Open Licence 2.0 (Etalab). Every answer carries this attribution in its sources field.

Get a key on RapidAPI  plans and pricing are on the listing; one key covers every endpoint.

Parameters

ParameterTypeWhat it doesExample
activite_principalestringMain activity code (NAF rev. 2) of the company, e.g. 62.01Z (computer programming), 56.10A (restaurants), 47.11D (supermarkets)."62.01Z"
departementstringDépartement code of the head office, e.g. 75 Paris, 69 Rhône, 2A Corse-du-Sud. Leave empty for all of France."75"
tranche_effectif_salariestringINSEE headcount band: 00 (0), 01 (1-2), 02 (3-5), 03 (6-9), 11 (10-19), 12 (20-49), 21 (50-99), 22 (100-199), 31 (200-249), 32 (250-499), 41 (500-999), 42 (1000-1999), 51 (2000-4999), 52 (5000-9999), 53 (10000+). Leave empty for any."11"
etat_administratifstringA = active companies, C = ceased companies. One of: A, C."A"
limitintegerAt most this many results (1–1000, default 100).20

What each result holds

FieldType
sirenid
siret_head_officeid
nametext
legal_nametext
naf_codeid
legal_form_codeid
addresstext
postcodeid
citytext
departementid
latlat
lonlon
creation_datedate
headcount_bandid
company_categorytext
establishments_totalinteger
establishments_openinteger
statusid

Call it

With curl:

curl -G "https://french-company-search-api-sirene-siren-siret-naf.p.rapidapi.com/v1/fr-company-search" \
  --data-urlencode activite_principale=62.01Z \
  --data-urlencode departement=75 \
  --data-urlencode tranche_effectif_salarie=11 \
  --data-urlencode etat_administratif=A \
  --data-urlencode limit=20 \
  -H "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: french-company-search-api-sirene-siren-siret-naf.p.rapidapi.com"

With Python (pip install requests):

import os, requests

r = requests.get(
    "https://french-company-search-api-sirene-siren-siret-naf.p.rapidapi.com/v1/fr-company-search",
    params={'activite_principale': '62.01Z',
 'departement': '75',
 'tranche_effectif_salarie': '11',
 'etat_administratif': 'A',
 'limit': 20},
    headers={"X-RapidAPI-Key": os.environ["RAPIDAPI_KEY"], "X-RapidAPI-Host": "french-company-search-api-sirene-siren-siret-naf.p.rapidapi.com"},
    timeout=120,
)
for item in r.json()["items"]:
    print(item)

For code and AI agents that pick tools at run time, GET /v1/products lists every endpoint with its parameters and fields.

Questions

How fresh is it? Each call reads the official source then; an identical query within 15 minutes is answered from a cache.

What if the source is down? The answer says so: a 502, or "partial": true when only some of its requests failed.