French Company Lookup by SIRET, 42M+ businesses via API
The SIRENE database
France maintains one of the most comprehensive business registries in the world: SIRENE (Système Informatique pour le Répertoire des Entreprises et de leurs Établissements). It contains 42.5 million establishments, every registered business in France, from solo freelancers to multinational corporations.
Every French business has two identifiers:
- SIREN (9 digits): identifies the legal entity (the company itself)
- SIRET (14 digits): identifies a specific establishment (SIREN + 5-digit NIC code). A company with 3 offices has 3 different SIRETs but one SIREN.
Lookup by SIRET
The simplest query, give a SIRET, get everything about that establishment:
import httpx
response = httpx.get(
"https://frenchbusinessapi.com/sirene/siret/35600000000048",
headers={"X-API-Key": "your_api_key"}
)
data = response.json()
print(data["denomination"]) # "LA POSTE"
print(data["adresse"]) # Full address
print(data["code_naf"]) # "53.10Z" (postal activities)
print(data["effectif"]) # Workforce range
The response includes: legal name, trade name, full address with GPS coordinates, NAF/APE code, workforce range, legal form, creation date, and active/inactive status.
Lookup by SIREN
Search by SIREN to get the company and all its establishments:
response = httpx.get(
"https://frenchbusinessapi.com/sirene/siren/356000000",
headers={"X-API-Key": "your_api_key"}
)
data = response.json()
print(f"{data['denomination']}, {data['nombre_etablissements']} establishments")
Search by name
Don't have a SIRET? Search by company name:
response = httpx.get(
"https://frenchbusinessapi.com/sirene/search",
params={"q": "Google France", "limit": 5},
headers={"X-API-Key": "your_api_key"}
)
for company in response.json()["results"]:
print(f"{company['siret']}, {company['denomination']}, {company['ville']}")
The search is fuzzy, it handles typos, partial names, and common abbreviations. Results are ranked by relevance.
Search by location
Find businesses near a GPS point:
response = httpx.get(
"https://frenchbusinessapi.com/sirene/geo",
params={"lat": 48.8566, "lon": 2.3522, "radius": 500, "limit": 10},
headers={"X-API-Key": "your_api_key"}
)
Returns businesses within 500 meters of the coordinates, sorted by distance. Useful for store locators, local business directories, or market analysis.
Use cases
KYC and onboarding
When a French business signs up for your platform, validate their SIRET:
siret = user_input.strip()
response = httpx.get(
f"https://frenchbusinessapi.com/sirene/siret/{siret}",
headers={"X-API-Key": "your_api_key"}
)
if response.status_code == 200:
data = response.json()
if data["actif"]:
# Auto-fill company name, address, legal form
pass
else:
# Warn: this establishment is closed
pass
Invoice enrichment
Before generating an invoice, look up the buyer's SIRET to auto-fill their company details. This pairs well with VAT validation for complete B2B verification.
Market research
Analyze businesses by NAF code, location, or workforce size:
# Find all bakeries (NAF 10.71C) in Lyon
response = httpx.get(
"https://frenchbusinessapi.com/sirene/search",
params={"naf": "10.71C", "commune": "69123", "limit": 100},
headers={"X-API-Key": "your_api_key"}
)
Fraud detection
Cross-reference a SIRET provided by a customer with the SIRENE database. If the SIRET doesn't exist, is inactive, or belongs to a completely different company, that's a red flag.
Data freshness
The SIRENE data in the API is refreshed monthly from the official INSEE dump (data.gouv.fr). This covers new registrations, closures, address changes, and name changes. The refresh happens automatically on the 2nd of each month.
For real-time needs (same-day registration verification), the API INSEE offers a live endpoint, but for 99% of use cases, the monthly refresh is sufficient.
Common fields in the response
- denomination: legal company name
- sigle: acronym/abbreviation if any
- adresse_ligne1/2: street address
- code_postal, ville: postal code and city
- latitude, longitude: GPS coordinates
- code_naf: NAF/APE activity code
- libelle_naf: human-readable activity description
- tranche_effectifs: workforce range (e.g., "10 to 19 employees")
- categorie_juridique: legal form code
- date_creation: establishment creation date
- actif: boolean, whether the establishment is currently active
Next steps
- Get your free API key, 100 requests/day
- API documentation
- Related: Validate EU VAT, Validate IBANs, Business days calculator
Ready to build for Europe?
One API for company lookup, VAT validation, IBAN verification, SEPA payments, and more.
Get your API key