France SIRENE Company Scraper - SIREN/SIRET Lookup & Search avatar

France SIRENE Company Scraper - SIREN/SIRET Lookup & Search

Pricing

from $7.30 / 1,000 company returneds

Go to Apify Store
France SIRENE Company Scraper - SIREN/SIRET Lookup & Search

France SIRENE Company Scraper - SIREN/SIRET Lookup & Search

Search French companies by name, city, department, postcode, NAF/APE code, legal form, size or status, or look up SIREN and SIRET numbers in bulk (check digits verified first). One row per company with head office, VAT number, officers, revenue and matching establishments. No API key.

Pricing

from $7.30 / 1,000 company returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Search French companies by name, department, postcode, commune, region, NAF/APE activity code, legal form, size category, employee band, status or sole-trader status, or look up SIREN and SIRET numbers in bulk. No API key, no browser, no proxy.

This Actor reads the French government's public Recherche d'entreprises API (recherche-entreprises.api.gouv.fr, the search behind annuaire-entreprises.data.gouv.fr), which is built from INSEE's Sirene register and the national business register (RNE). It is not affiliated with INSEE, DINUM or the French administration.

Each result is one row per company (SIREN): company name, legal name, acronym, VAT number, active or closed, creation and closing date, legal form (INSEE code and its name), size category (PME / ETI / GE), employee band, NAF/APE code with its label and the NAF 2025 code, the head office (SIRET, address, postcode, city, commune code, department, region, coordinates, trade name, shop signs), number of establishments and open establishments, the establishments that matched your search, the officers (name and role), and the latest revenue and net income the source holds.

Typical uses: B2B lead lists by town, department and activity (bakeries in Lyon, construction companies in Ile-de-France, large companies in Hauts-de-Seine), KYC and supplier checks from a list of SIREN or SIRET numbers, VAT number lookup, and checking whether companies are still active.

What this source is, and what it is not

  • It is a search, not the whole Sirene database. Every search stops at 10,000 results (see below), and a bulk lookup is one request per number. A name search can also miss a company that is in the register: in postcode 76450, DAVID PIGNE (SIREN 488970997, a closed bakery, NAF 10.71C, shop sign "BOULANGERIE LES 3 MARCHES") is not among the results for boulangerie, which returns one company there (2026-09-11).
  • The name search looks at names, not at the activity. To get every bakery rather than every company called "boulangerie", search by NAF code 10.71C (and 10.71D for pastry shops) instead of by name.
  • Companies whose data is not public ("non-diffusibles") and companies refused registration are not in the source at all (stated in the source's own documentation). Neither the source nor this Actor returns them; a lookup of such a number comes back as not-found.
  • A company row lists only the establishments that matched your search, up to maxEstablishmentsPerCompany (10 by default, 100 at most, the source's limit), not every establishment of the company. matchingEstablishmentsListed is how many are listed, not how many match: ELIOR RESTAURATION FRANCE has 3,208 open establishments and 10 are listed by default. matchingEstablishmentsMayBeMore is true when the list reached the limit. establishmentCount and openEstablishmentCount give the company's totals; the source gives no total of matching establishments.

What the source gets wrong, and what this Actor does about it

Measured against the live API on 2026-09-11. Counts are from that day and change as the register is updated.

The source's behaviourWhat you get here
A name search also matches addresses, officers and elected officials: renault in postcode 76450 returned 9 companies, of which BR IMMO (an officer is named Renault) and COMMUNE DE THIOUVILLE (no Renault in its name or among its officers) are not Renault companiesCompany names only by default: a company is kept when every word of your query appears in its name, legal name, acronym, trade name or shop sign (checked against all 4,091 companies of postcode 76450: the same 7 companies). Choose everything to get what the source returns. When nothing is left, the row says how many were left out and why
Every search stops at 10,000 results: page × page size above 10,000 is refused with HTTP 400, and the reported total is capped at 10,000. Splitting by department alone misses every company whose head office is outside France, because department filters only match establishments in France (legal form 3120, foreign companies registered in France: the sections add up to 34,586 companies, a department-only split found 31,702; airbus finds 245 companies, 35 of them with a head office abroad)When more than 10,000 match and you ask for more, the search is split by department (and a department still over 10,000 by NAF section), then each NAF section is read on its own without a department, which reaches the companies based abroad. Companies already returned are skipped, so each company is charged once. At the end the section counts are added up and compared with the companies found; if some could not be reached, an incomplete row (free) says how many. Measured on Apify for legal form 3120 on 2026-09-11: 34,774 companies in 1,991 seconds (34,571 of the 34,586 the sections count, plus 203 companies with no section), and one incomplete row naming the 15 not reached. Two kinds of company can still be missed without a count: companies with neither a NAF section nor an establishment in France beyond the first 10,000 results, and, where a department had to be split by section, companies with no NAF section there; a row says when that can have happened
Location filters match any establishment: a search for bakeries in departments 75 and 92 returns BOULANGERIES PAUL, whose head office is in department 59The establishments inside your area are listed in matchingEstablishments (address, postcode, city, SIRET, active or closed), so you can see why the company is there
A lookup by SIREN returns no establishments: Renault SAS (780129987) has 224 establishments and the lookup lists none, even when asking for 100matchingEstablishments is null with matchingEstablishmentsListed: 0, and establishmentCount / openEstablishmentCount give the totals. Look up a SIRET to get that establishment
Paris, Lyon and Marseille are filed under their arrondissements: commune code 75056 (Paris) returns 0 bakeries, 75111 (Paris 11e) returns 5775056, 69123 and 13055 are sent as their arrondissement codes (75101-75120, 69381-69389, 13201-13216), and the search description says so
A commune code that does not exist (69999) returns 0 results, exactly like a commune without companiesThe empty-result row says that an unknown commune code (or postcode) gives the same empty answer
The reported total can be larger than what the pages return: postcode 76450 says 4,104 companies, the last page stops at 4,091Reading stops at the last page and the result is not reported as incomplete; the count reported by the source is in the log
Partly public companies and establishments come back with the text [NON-DIFFUSIBLE] in the address, postcode, coordinates, acronym and shop signsThose values are null, never the placeholder text, and headOfficeAddressWithheld / addressWithheld / partiallyWithheld say which records the source withheld. The city and department that the source does publish are kept
A mistyped SIREN or SIRET is simply "not found"Every number is checked against its Luhn check digit before it is sent (with INSEE's separate rule for La Poste's SIRETs, which do not satisfy Luhn), and a typo comes back as bad-input with the reason. A French VAT number (FR + key + SIREN) is accepted and its key is checked. If a spreadsheet dropped a leading zero, the row suggests the corrected number
The source publishes the birth month and year of officers who are natural personsOfficers are returned with name and role only; birth month, birth year and nationality are not returned
Rate limit: 7 requests per second per IP and 30 per second per network (ASN), "likely to be hit on public clouds" (source documentation). From Apify's network, three quick requests already got HTTP 429 with retry-after: 4One request at a time with a pause, retry-after honoured, up to 6 attempts with growing waits. If the source still does not answer, you get a failed or incomplete row saying so; nothing is guessed
Queries shorter than 3 characters, unknown department, NAF, legal form or employee band codes are refused with a French error messageObvious mistakes are caught before anything is sent, with the reason in English; anything the source still refuses comes back as bad-input with the source's own message

Input

Give SIREN/SIRET numbers for a bulk lookup, or any combination of the search fields. If both are given, the numbers are looked up and a row says the search fields were not used. If nothing at all is given, three example numbers (Renault SA 441639465, Societe Generale 552120222 and the head office of Renault SAS 78012998704037) are looked up so the Actor always returns something, and every row records what was looked up in its input column.

FieldDefaultWhat it does
ids-SIREN (9 digits) or SIRET (14 digits) numbers, up to 3,000 per run. New lines, commas and semicolons separate numbers; spaces and dots inside a number are fine (552 120 222). A French VAT number is read as its SIREN. Numbers beyond 3,000 are counted in one row
query-Words to search for (at least 3 characters). Case, accents and hyphens are ignored; whole words; every word must appear
searchInnamesnames: keep only companies whose own names contain every word. everything: also companies matched through an address, an officer or an elected official (as the source does)
departments-Department codes such as 75, 92, 69, 2A, 971 (a single digit is read with a leading zero). Several means any of them
postalCodes-5-digit postcodes such as 75011
communeCodes-5-character INSEE commune codes such as 92012 (not postcodes). Paris, Lyon and Marseille are expanded to their arrondissements
regions-2-digit INSEE region codes such as 11 (Ile-de-France) or 84 (Auvergne-Rhone-Alpes)
nafCodes-NAF rev. 2 codes such as 62.01Z or 10.71C (6201Z is read as 62.01Z)
sections-NAF section letters A to U
legalForms-INSEE legal category codes such as 5710 (SAS), 5499 (SARL), 5599 (SA), 1000 (sole trader), 9220 (association)
companyCategories-PME, ETI, GE
employeeBands-INSEE headcount bands: NN, 00, 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 (1,000-1,999), 51 (2,000-4,999), 52 (5,000-9,999), 53 (10,000+)
statusanyactive or closed companies
soleTradersanyonly or exclude sole traders (entreprises individuelles)
maxResults100Most companies a search returns, up to 50,000 (above 10,000 the search is split as described above)
maxEstablishmentsPerCompany10How many matching establishments to list per company, 1 to 100

Examples

Bulk lookup (SIREN, SIRET or VAT numbers, in any mix):

{ "ids": ["441639465", "552 120 222", "78012998704037", "FR63441639465"] }

Bakeries in Lyon (all arrondissements), active only:

{ "query": "boulangerie", "communeCodes": ["69123"], "status": "active", "maxResults": 500 }

Construction companies with 10 to 49 employees in Hauts-de-Seine:

{ "departments": ["92"], "sections": ["F"], "employeeBands": ["11", "12"], "maxResults": 1000 }

Software companies (NAF 62.01Z) in Paris that are SAS:

{ "departments": ["75"], "nafCodes": ["62.01Z"], "legalForms": ["5710"], "maxResults": 2000 }

Output

One row per company. Example (Renault SA, shortened):

{
"status": "ok",
"input": "441639465",
"lookupType": "siren",
"siren": "441639465",
"name": "RENAULT (RENAULT)",
"legalName": "RENAULT",
"vatNumber": "FR63441639465",
"isActive": true,
"createdOn": "2002-04-01",
"legalFormCode": "5510",
"legalForm": "SA nationale à conseil d'administration",
"companyCategory": "GE",
"nafCode": "64.20Z",
"nafLabel": "Activités des sociétés holding",
"revenueEur": 56232000000,
"netIncomeEur": 891000000,
"financialYear": 2024,
"headOfficeSiret": "44163946500091",
"headOfficeAddress": "122-122 122 B AVENUE DU GENERAL LECLERC 92100 BOULOGNE-BILLANCOURT",
"headOfficeCity": "BOULOGNE-BILLANCOURT",
"headOfficeDepartment": "92",
"establishmentCount": 9,
"openEstablishmentCount": 1,
"officerCount": 18,
"officers": [{ "type": "person", "name": "MICHELLE STRAKA BARON", "lastName": "BARON", "firstNames": "MICHELLE STRAKA", "role": "Administrateur", "siren": null }],
"annuaireUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/441639465"
}

All columns: siren, siret (the SIRET you looked up), lookupType (siren, siret or search), name, legalName, acronym, vatNumber, isActive, administrativeStatus (active / closed), createdOn, closedOn, legalFormCode, legalForm, companyCategory, companyCategoryYear, employeeBandCode, employeeBand, employeeBandYear, nafCode, nafLabel, naf2025Code, activitySection, activitySectionLabel, isSoleTrader, isAssociation, isSocialEconomy, collectiveAgreementCodes, revenueEur, netIncomeEur, financialYear, headOfficeSiret, headOfficeAddress, headOfficePostalCode, headOfficeCity, headOfficeCommuneCode, headOfficeDepartment, headOfficeRegion, headOfficeLatitude, headOfficeLongitude, headOfficeIsActive, headOfficeTradeName, headOfficeSigns, headOfficeIsEmployer, headOfficeAddressWithheld, partiallyWithheld, establishmentCount, openEstablishmentCount, matchingEstablishmentsListed (how many are listed, not how many match), matchingEstablishmentsMayBeMore (true when the list reached maxEstablishmentsPerCompany; null for SIREN/SIRET lookups), matchingEstablishments, officerCount, officers, sourceUpdatedAt, annuaireUrl, checkedAt, plus status, note, input and source.

Each entry of matchingEstablishments: siret, isHeadOffice, isActive, address, postalCode, city, communeCode, latitude, longitude, nafCode, tradeName, signs, createdOn, closedOn, employeeBandCode, addressWithheld. Each entry of officers: type (person or company), name, lastName, firstNames, role, siren (for a company acting as officer, such as a statutory auditor).

Labels (legalForm, nafLabel, employeeBand, activitySectionLabel) are INSEE's French labels, taken from the source's own open-source label tables. Values the source does not hold are null, never 0, false, an empty string or an empty list. Revenue and net income are in euros, for the latest year the source holds, and are missing for most small companies.

Rows with a status other than ok explain themselves in note and are never charged: bad-input (rejected before sending, or refused by the source), not-found (valid check digit, nothing in the source), no-results (the search matched nothing), failed (no answer after retries), incomplete (part of a search could not be read, or it reached the 10,000 limit and could not be split), duplicate-input (the same number given twice: looked up and charged once), not-looked-up (over 3,000 numbers, the charge limit or the time limit), filters-ignored (numbers and search fields given together).

Speed

Measured on Apify on 2026-09-11: a search returned 2,500 companies in 61 seconds (100 pages of 25); a bulk lookup of 300 SIREN numbers took 172 seconds (about 0.6 seconds each, one at a time), during which the source answered HTTP 429 seven times and every one of those numbers went through on retry. A full run of 3,000 numbers therefore takes about half an hour. A search for boulangerie asking for 10,100 companies went past the 10,000 limit by splitting by department and returned 10,100 different companies in 366 seconds (431 requests; 63 companies that matched only through an address or a person's name were left out and not charged).

Personal data

Officers are returned as the public register publishes them, with name and role only; their birth month, birth year and nationality are not returned. A sole trader's company name is the owner's own name, and the source publishes the business address of sole traders whose record is public; this Actor returns it as published. Records and addresses the source marks as not public are not returned by the source, and this Actor does not return them either.

Pricing

Pay per result: you are charged for each company row returned. Rows that only explain a rejected input, a number the source does not hold, an empty search or a failed lookup are free.

Source and licence

Data comes from the Recherche d'entreprises API run by the French interministerial digital directorate (DINUM), built from INSEE's Sirene register and the RNE, published as open data under the Licence Ouverte / Open Licence 2.0 (Etalab). The label tables come from the API's own open-source repository (MIT licence). This Actor is not affiliated with INSEE, DINUM or the French administration.

Support

Found a wrong value or a missing field? Open an issue in the Issues tab with the input you used and the SIREN or SIRET concerned.