France SIRENE Company Registry Scraper avatar

France SIRENE Company Registry Scraper

Pricing

Pay per event

Go to Apify Store
France SIRENE Company Registry Scraper

France SIRENE Company Registry Scraper

Export French registered-company records from the official SIRENE/recherche-entreprises open-data API — SIREN, legal name, NAF/APE code, legal form, workforce range, status, head-office address — filtered by name, NAF code, department, commune or workforce range, as JSON, CSV or Excel.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Share


🎯 What this scrapes

France's recherche-entreprises API is the state's own keyless, public SIRENE company registry — no auth, no API key — but its JSON nests head-office address, workforce range, VAT numbers and officer data several levels deep inside each SIREN entity. This Actor flattens every matching company into one clean, English-labelled row, keeps running through malformed entries and genuine zero-match searches, and prices at $4.20 per 1,000 results at scale.

🔥 What we handle for you

  • 🧊 Flattens SIRENE's nested JSON — head-office address, workforce range, VAT and size-category data flattened into one clean, English-labelled row per company.
  • 🧱 Honest zero-match handling — a narrow filter combination that matches nothing still finishes SUCCEEDED with a clear status message, never billed as a failed run.
  • 🩹 Per-row fault isolation — one malformed registry entry is logged and skipped; it never crashes the rest of the page.
  • 🔁 Retries transient 429/5xx responses with exponential backoff instead of failing the whole run.
  • 🎯 Typed, validated dataset rows — Pydantic-checked, stable SIREN identifiers, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Build a French B2B prospect list filtered by NAF industry code, department or commune.
  • Run a KYC/AML supplier or counterparty check against France's authoritative SIRENE registry.
  • Screen a partner list for ceased companies before contracting.
  • Support market-entry research by pulling every registered company in a department, commune or industry line.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
nameQuerystringno'—'Match companies whose name, SIREN or SIRET contains this text.
nafCodestringno'—'French NAF/APE industry code, format NN.NNL, e.g. 56.10C. Leave empty for all industries.
departmentCodestringno'—'INSEE department code, e.g. 13, 75, 2A. Leave empty to search all of France.
communeCodestringno'—'INSEE commune code, e.g. 13027. Leave empty to skip this filter.
workforceRangestringno'—'INSEE workforce-range code, e.g. 22. Leave empty to skip this filter.
administrativeStatusstringno'A'A = active, C = ceased. Defaults to active companies only.
maxResultsintegerno100Stop after this many companies. Each company is one billed result row.
proxyConfigurationobjectno{'useApifyProxy': False}This is a public French government API and does not need a proxy.

Example input

{
"administrativeStatus": "A",
"maxResults": 3,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
sirenstringFrench SIREN (9-digit company identifier).
siret_headquartersstringSIRET of the head-office establishment.
company_namestringFull display name (nom_complet).
legal_namestringRegistered legal name (nom_raison_sociale).
acronymstringCompany acronym/sigle, when registered.
legal_form_codestringINSEE legal-form numeric code (nature_juridique).
company_size_categorystringINSEE size category: GE/ETI/PME/TPE.
company_size_labelstringDecoded company size category.
naf_codestringNAF/APE activity code, e.g. 56.10C.
naf_section_codestringSingle-letter NACE Rev.2 section, e.g. I.
naf_section_labelstringDecoded NACE Rev.2 section name.
workforce_range_codestringINSEE workforce-range code.
workforce_range_yearstringReference year for the workforce range.
administrative_statusstringA (active) or C (ceased).
is_activebooleanTrue when administrative_status == 'A'.
creation_datestringCompany creation date (YYYY-MM-DD).
closure_datestringCessation date (YYYY-MM-DD), if ceased.
last_updatedstringRegistry last-update timestamp.
street_addressstringHead-office street address.
postal_codestringHead-office postal code.
citystringHead-office commune name.
department_codestringHead-office INSEE department code.
establishment_countintegerTotal establishments for this SIREN.
open_establishment_countintegerCurrently-open establishment count.
vat_numberstringFirst registered VAT number, when available.
urlstringPublic annuaire-entreprises.data.gouv.fr lookup URL.

Example output

{
"siren": "552100554",
"siret_headquarters": "55210055400015",
"company_name": "TOTALENERGIES SE",
"legal_name": "TOTALENERGIES SE",
"acronym": null,
"legal_form_code": "5710",
"company_size_category": "GE",
"company_size_label": "Grande entreprise (large enterprise)",
"naf_code": "70.10Z",
"naf_section_code": "M",
"naf_section_label": "Professional, scientific and technical activities",
"workforce_range_code": "53",
"workforce_range_year": "2023",
"administrative_status": "A",
"is_active": true,
"creation_date": "1924-03-28",
"closure_date": null,
"last_updated": "2026-08-20T04:12:00",
"street_address": "2 PLACE JEAN MILLIER",
"postal_code": "92400",
"city": "COURBEVOIE",
"department_code": "92",
"establishment_count": 412,
"open_establishment_count": 287,
"vat_number": "FR69542051180",
"url": "https://annuaire-entreprises.data.gouv.fr/entreprise/552100554"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.2One-off warm-up charge per run
result$0.004Per dataset item

Example: 1 000 results at the rates above ≈ $4.20. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

  • Returns current registry data only — no financials, shareholders, beneficial owners or historical name/address change logs.
  • Company size category and NACE section labels are decoded from bounded, standard INSEE/NACE Rev.2 tables — not a full free-text industry description.
  • The url field links to the public annuaire-entreprises.data.gouv.fr lookup page, which renders client-side and cannot be verified per-SIREN without a browser.

❓ FAQ

Do I need an API key?

No. The SIRENE recherche-entreprises API is open French government data and needs no credentials — leave the proxy setting off too.

What happens if my filters match nothing?

The run finishes successfully with zero rows and a status message naming the filters you searched — you're never billed for a failed run just because a search was narrow.

Can I pull every company in an industry or department?

Yes — set a NAF code, department or commune and raise Maximum companies (up to 1,000 per run); the Actor pages until the registry runs out or your cap is reached.

Why do I need at least one filter?

The underlying API itself refuses a completely unfiltered search. Administrative status defaults to Active, which already satisfies this — you only need to add another filter if you clear that field too.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.