France Company Registry Scraper (SIREN, Officers, Finances) avatar

France Company Registry Scraper (SIREN, Officers, Finances)

Pricing

from $11.54 / 1,000 results

Go to Apify Store
France Company Registry Scraper (SIREN, Officers, Finances)

France Company Registry Scraper (SIREN, Officers, Finances)

Extract French company records from the official Sirene and RNE registry. Get SIREN, SIRET, legal form, NAF code, officers (dirigeants), VAT number, turnover and net income for 30M+ businesses across France. Export to JSON, CSV or Excel.

Pricing

from $11.54 / 1,000 results

Rating

5.0

(2)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

19 days ago

Last modified

Share

France Company Registry Scraper (SIREN, Officers, Finances)

France Company Registry Scraper (SIREN, Officers, Finances)

Here is one real result, with every field the actor returns (the dirigeants and matchingEstablishments arrays are trimmed for display, real values):

{
"siren": "638502963",
"name": "BOULANGERIE NEUHAUSER",
"nomRaisonSociale": "BOULANGERIE NEUHAUSER",
"tradeName": null,
"enseignes": [],
"sigle": null,
"legalFormCode": "5599",
"legalForm": "SA a conseil d administration",
"activitePrincipale": "10.71A",
"activitePrincipaleNaf25": "10.71G",
"sectionActivite": "C",
"dateCreation": "1963-01-01",
"etatAdministratif": "A",
"etatAdministratifLabel": "Active",
"categorieEntreprise": "GE",
"categorieEntrepriseLabel": "Large enterprise",
"employeeRangeCode": "41",
"employeeRange": "500 to 999 employees",
"anneeEffectif": "2023",
"siretSiege": "63850296300082",
"numeroTva": "FR43638502963",
"address": {
"full": "18 AVENUE FOCH 57730 FOLSCHVILLER",
"street": "18 AVENUE FOCH",
"postalCode": "57730",
"city": "FOLSCHVILLER",
"departement": "57",
"region": "44",
"country": "France",
"latitude": "49.071304293",
"longitude": "6.6881211053"
},
"nombreEtablissements": 14,
"nombreEtablissementsOuverts": 12,
"dateFermeture": null,
"caractereEmployeur": null,
"conventionCollective": ["1747"],
"certifications": ["Publishes greenhouse-gas report"],
"isAssociation": false,
"isEntrepreneurIndividuel": false,
"dirigeants": [
{ "type": "person", "name": "JEROME GENEY", "role": null, "siren": null, "birthYear": "1973", "birthDate": "1973-06", "nationality": null },
{ "type": "person", "name": "GUY MASSONNEAU", "role": "Président du directoire", "siren": null, "birthYear": "1964", "birthDate": "1964-10", "nationality": null },
{ "type": "company", "name": "ERNST AND YOUNG AUDIT", "role": "Commissaire aux comptes titulaire", "siren": "344366315", "birthYear": null, "nationality": null }
],
"matchingEstablishments": [
{ "siret": "63850296300082", "estSiege": true, "address": "18 AVENUE FOCH 57730 FOLSCHVILLER", "postalCode": "57730", "city": "FOLSCHVILLER", "activitePrincipale": "10.71A", "etatAdministratifLabel": "Active", "latitude": "49.071304293", "longitude": "6.6881211053", "dateDebutActivite": "2018-06-01" }
],
"finances": { "year": 2024, "ca": 489214400, "resultatNet": -28343000 },
"dateMiseAJour": "2026-08-13T15:49:41",
"aiCompanySummary": "BOULANGERIE NEUHAUSER is a large bakery company based in Folschviller, France, established in 1963. It operates 14 establishments and employs between 500 to 999 people, focusing on the production of baked goods. The company is currently active but reported a net loss in its latest financial results.",
"aiRiskLevel": "medium",
"aiRiskFlags": ["financial losses", "negative net result"],
"aiRiskRationale": "The company has reported significant financial losses with a negative net result of €28,343,000, which raises concerns about its creditworthiness.",
"aiIndustry": "Bakery",
"aiSector": "Food Manufacturing",
"aiIndustryTags": ["bakery", "bread", "large enterprise", "greenhouse gas report"],
"observedAt": "2026-08-14T07:38:36.371Z",
"error": null
}

The most complete France company registry scraper available. It returns every field the official Sirene and RNE registry expose for each company, plus structured officers (dirigeants), all matching establishments, headline finances, an optional contact-email finder and three optional AI add-ons, and gives you name, NAF, department, status, size and headcount filters to target exactly the companies you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches the official French company registry (recherche-entreprises, backed by Sirene and RNE), applies the filters you pass as input, and writes one normalized record per company to the run's dataset. Each record carries the SIREN, head-office SIRET, legal form, NAF activity code, VAT number, INSEE size and headcount bands, structured officers under dirigeants, every matching establishment under matchingEstablishments, and headline finances (turnover and net income) where filed. Missing source values are returned as null.

Coverage is over 30 million French businesses. An optional contact-email finder (enrichContacts) attempts to add a public business email and contact name for results without one, and three optional AI add-ons write a KYB company profile (withAiCompanySummary), a KYB credit-risk assessment (withAiRiskFlags), and a normalized English industry classification (withAiIndustry). All add-ons are billed only on usable output and require a paid Apify plan.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 most relevant companies matching "boulangerie".

{
"q": "boulangerie",
"maxCompanies": 10
}

Provide at least a q (company name, trade name, officer name or SIREN) or one filter. Narrow with activitePrincipale (NAF code), departement, etatAdministratif, size and headcount filters.

Input reference

FieldTypeRequiredDefaultDescription
qstringnoboulangerieFree-text search across company name, trade name, officers and addresses, or a SIREN.
activitePrincipalestringno(empty)NAF / APE activity code, for example 10.71C (bread) or 62.01Z (software).
departementstringno(empty)French department code, for example 75, 13, 2A.
codePostalstringno(empty)Single 5-digit postal code, for example 75001.
etatAdministratifenumno(any)A (active) or C (ceased).
categorieEntrepriseenumno(any)INSEE size: PME (SME), ETI (mid-size), GE (large).
trancheEffectifenumno(any)INSEE employee headcount band code, for example 41 = 500 to 999.
natureJuridiquestringno(empty)INSEE legal form code, for example 5710 (SAS), 5499 (SARL), 6540 (SCI).
maxCompaniesintegerno10Maximum companies to collect. Free plans are capped at 10.
enrichContactsbooleannofalseContact-email finder for results without an email. Billed per attempt plus an extra charge only when an email is found; paid plans only.
enrichContactsMaxintegerno50Cap how many results the finder tries to enrich. Free accounts are capped at 3.
withAiCompanySummarybooleannofalseAI plain-English KYB company profile. Billed per enriched record; paid plans only.
withAiRiskFlagsbooleannofalseAI KYB credit-risk assessment with red-flag phrases and a risk level. Billed per enriched record; paid plans only.
withAiIndustrybooleannofalseAI normalized English industry label, sector and keyword tags. Billed per enriched record; paid plans only.

At least one of a search term or a filter is required. Filters combine with logical AND.

Output reference

One dataset item per company. Types: string, integer, boolean, string[], object, object[], or null when the source value is absent.

FieldTypeDescription
sirenstringNine-digit SIREN (unique per company).
namestringCompany name.
nomRaisonSocialestringRegistered corporate name.
siglestringAcronym, or null.
tradeNamestringTrade name, or null.
enseignesstring[]Commercial signs (enseignes).
legalFormstringReadable legal form.
legalFormCodestringINSEE legal form code.
activitePrincipalestringMain NAF / APE activity code.
activitePrincipaleNaf25stringMain activity in the NAF 2025 nomenclature.
sectionActivitestringNAF section letter.
dateCreationstringCompany creation date.
etatAdministratifstringStatus code A or C.
etatAdministratifLabelstringReadable status (Active, Ceased).
categorieEntreprisestringINSEE size code (PME, ETI, GE).
categorieEntrepriseLabelstringReadable size category.
employeeRangestringReadable employee headcount band.
employeeRangeCodestringINSEE headcount band code.
anneeEffectifstringYear the headcount band applies to.
siretSiegestringHead-office SIRET.
numeroTvastringIntra-community VAT number.
addressobjectHead-office address with street, postalCode, city, departement, region, country, latitude, longitude.
nombreEtablissementsintegerTotal number of establishments.
nombreEtablissementsOuvertsintegerNumber of open establishments.
dateFermeturestringClosure date, or null.
caractereEmployeurstringEmployer indicator, or null.
conventionCollectivestring[]Collective agreement codes.
certificationsstring[]Registered certifications and disclosures.
isAssociationbooleanWhether the entity is an association.
isEntrepreneurIndividuelbooleanWhether the entity is a sole trader.
dirigeantsobject[]Officers and auditors (type, name, role, siren, birthYear, birthDate, nationality).
matchingEstablishmentsobject[]Matching establishments with SIRET, address, activity, status and coordinates.
financesobjectHeadline finances (year, ca turnover, resultatNet net income), or null.
dateMiseAJourstringLast registry update timestamp.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.
enrichedEmailstringContact-email finder result (add-on), or null.
enrichedContactNamestringContact person name (add-on), or null.
enrichedJobTitlestringContact job title (add-on), or null.
enrichedEmailStatusstringEmail verification status (add-on).
enrichedSourcestringWhere the contact was found (add-on).
enrichedConfidencestringConfidence of the contact match (add-on).
aiCompanySummarystringAI KYB company profile (add-on).
aiRiskLevelstringAI KYB risk level low, medium or high (add-on).
aiRiskFlagsstring[]AI red-flag phrases (add-on).
aiRiskRationalestringAI one-sentence risk rationale (add-on).
aiIndustrystringAI normalized English industry label (add-on).
aiSectorstringAI sector label (add-on).
aiIndustryTagsstring[]AI industry keyword tags (add-on).

Example output record

Real record from a live run without add-ons (input {"q":"boulangerie","maxCompanies":3}):

{
"siren": "403052111",
"name": "BOULANGERIES PAUL",
"nomRaisonSociale": "BOULANGERIES PAUL",
"sigle": null,
"legalFormCode": "5710",
"legalForm": "SAS (societe par actions simplifiee)",
"activitePrincipale": "10.71A",
"activitePrincipaleNaf25": "10.71G",
"sectionActivite": "C",
"dateCreation": "1995-12-07",
"etatAdministratif": "A",
"etatAdministratifLabel": "Active",
"categorieEntreprise": "ETI",
"categorieEntrepriseLabel": "Mid-size enterprise",
"employeeRangeCode": "41",
"employeeRange": "500 to 999 employees",
"anneeEffectif": "2023",
"siretSiege": "40305211102616",
"numeroTva": "FR32403052111",
"address": {
"full": "BATIMENT D.E 344 AVENUE DE LA MARNE 59700 MARCQ-EN-BARŒUL",
"street": "344 AVENUE DE LA MARNE",
"postalCode": "59700",
"city": "MARCQ-EN-BARŒUL",
"departement": "59",
"region": "32",
"country": "France",
"latitude": "50.678029398",
"longitude": "3.1169136021"
},
"nombreEtablissements": 315,
"nombreEtablissementsOuverts": 141,
"dirigeants": [
{ "type": "person", "name": "FRANCIS HOLDER", "role": "Président de SAS", "siren": null, "birthYear": "1940", "birthDate": "1940-07", "nationality": null },
{ "type": "person", "name": "MAXIME HOLDER", "role": "Directeur Général", "siren": null, "birthYear": "1969", "birthDate": "1969-08", "nationality": null },
{ "type": "company", "name": "KPMG SA", "role": "Commissaire aux comptes titulaire", "siren": "775726417", "birthYear": null, "nationality": null }
],
"finances": { "year": 2023, "ca": 75869141, "resultatNet": -5022746 },
"dateMiseAJour": "2026-07-24T08:46:19",
"observedAt": "2026-07-25T06:50:27.587Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~france-company-search-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"q":"conseil","departement":"75","categorieEntreprise":"PME","maxCompanies":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~france-company-search-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"activitePrincipale":"62.01Z","etatAdministratif":"A","maxCompanies":100}'

Apify CLI:

apify call scrapers_lat/france-company-search-scraper \
--input '{"q":"403052111"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per company record returned (result event). See the pricing tab for the current per-result price.
  • Contact finder add-on. enrichContacts is billed per attempt, plus an extra charge only when an email is found, and requires a paid Apify plan (free accounts enrich at most 3 results).
  • AI add-ons. withAiCompanySummary, withAiRiskFlags and withAiIndustry are billed separately per successfully processed record and require a paid Apify plan. They are skipped for free users.
  • No charge on failure. If a run errors or matches nothing, the actor writes a single item with an error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 companies per run. Upgrade for higher maxCompanies.

FAQ and troubleshooting

A run returned 0 records. Why? The search or filter combination matched nothing in the registry. Loosen filters (for example drop the NAF code or widen the department), or check the company name or SIREN. Zero-result runs are not charged.

How do I pull one exact company? Search by its 9-digit SIREN in q. The registry returns the single matching company with its officers, establishments and finances.

Why are finances null on some companies? Only companies that have filed accounts expose turnover and net income. Sole traders, associations and non-filers return finances as null, never invented.

How does the contact finder work? When enrichContacts is on, the actor tries to find a public business email and contact person for results that lack one, and reports a confidence and source. It is billed per attempt plus a success charge, and requires a paid plan.

What do the AI fields do? withAiCompanySummary writes a KYB profile, withAiRiskFlags flags credit risk with a level, and withAiIndustry normalizes the activity into an English industry, sector and tags. All are optional, billed on usable output, and require a paid plan.

Is this an official government tool? No. This actor is independent and has no affiliation with INSEE, INPI or the French government. It reads only publicly available registry data. Use the results in accordance with the source's terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with INSEE, INPI or the French government. Accesses only publicly available registry data. Use the results in accordance with the source's terms.