French Companies Search: SIRENE, SIREN, SIRET and NAF Data
Pricing
$5.00 / 1,000 companies
French Companies Search: SIRENE, SIREN, SIRET and NAF Data
Returns French companies from the official INSEE Sirene register: SIREN, head office SIRET, name, legal form, NAF code and label, creation date, employee range, address and status. Search by name, SIREN, NAF code, department, postal code and size. No API key, open licence.
Pricing
$5.00 / 1,000 companies
Rating
0.0
(0)
Developer
Viktor Wiberg
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
French companies from the official INSEE Sirene register, one row per company. Each row has the SIREN number, the SIRET of the head office, the registered name, legal form, main activity (NAF code, also called APE code, with its official label), company category (PME, ETI, GE), creation date, employee size band, number of establishments, head office address with postal code, city, department and coordinates, active or closed status, and a link to the company on the government's Annuaire des Entreprises.
Use it to build lists of French companies by sector and region, to check or enrich a list of SIREN numbers, or to follow new companies in a sector every week.
What is covered
All companies, associations and public bodies that the French state publishes in the API Recherche d'entreprises, the open search API behind annuaire-entreprises.data.gouv.fr. The data comes from the INSEE Sirene register and is updated daily by the API.
- Search by name or address words, by SIREN or SIRET, by NAF code, department, postal code, employee range and active status.
- Searches without text return the largest companies first (by number of establishments).
- The actor never returns people. Sole proprietors (entreprises individuelles) and partnerships between natural persons are left out, and so are records that are not fully public in Sirene. Directors and other persons in the source are never requested.
Example from a real run
The input and the first two rows of a run on the Apify platform on 3 October 2026 (run IhQnEXhzQty1ARKGO, 10 rows in total).
Input:
{"nafCodes": ["10.71C"],"departments": ["69"],"maxResults": 10}
Output (excerpt):
[{"siren": "817759558","siret": "81775955800023","name": "FULGUROPAIN","acronym": null,"tradeName": null,"legalForm": "SAS, société par actions simplifiée","legalFormCode": "5710","nafCode": "10.71C","nafLabel": "Boulangerie et boulangerie-pâtisserie","naf2025Code": "10.71H","companyCategory": "PME","creationDate": "2016-02-01","closureDate": null,"employeeRange": "20-49 employees","employeeRangeCode": "12","employeeRangeYear": "2024","establishmentCount": 8,"openEstablishmentCount": 6,"address": "51 RUE DELEUVRE 69004 LYON","postalCode": "69004","city": "LYON","department": "69","departmentName": "Rhône","region": "84","latitude": 45.780077309,"longitude": 4.825272062,"status": "active","lastUpdated": "2026-10-03","url": "https://annuaire-entreprises.data.gouv.fr/entreprise/817759558","source": "API Recherche d'entreprises (recherche-entreprises.api.gouv.fr), DINUM, with data from the INSEE Sirene register","license": "Licence Ouverte / Open Licence 2.0 (Etalab). Source: INSEE Sirene via API Recherche d'entreprises, DINUM."},{"siren": "377490289","siret": "37749028900057","name": "LAMBERT TRADITION","legalForm": "Société à responsabilité limitée (sans autre indication)","legalFormCode": "5499","nafCode": "10.71C","nafLabel": "Boulangerie et boulangerie-pâtisserie","companyCategory": "PME","creationDate": "1990-03-20","employeeRange": "50-99 employees","address": "33 RUE AMBROISE PARE 69740 GENAS","city": "GENAS","department": "69","status": "active","url": "https://annuaire-entreprises.data.gouv.fr/entreprise/377490289"}]
The second row is shortened here; every row has all fields. The other 8 rows were bakery companies in Lyon, Arnas, Genay and Givors with 0 to 99 employees, created between 1991 and 2020. In the same search, 9 companies were skipped because only a branch, not the head office, was in the Rhône (see headOfficeInArea).
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | none | Name, brand or address words, for example "boulangerie lyon" or "Danone". |
sirenNumbers | array | none | SIREN (9 digits) or SIRET (14 digits) numbers to look up, up to 1 000 per run. When set, query and the other filters are ignored except activeOnly. |
nafCodes | array | all | NAF rev. 2 codes, for example 62.01Z (computer programming), 10.71C (bakeries), 56.10A (restaurants), 68.20B (property rental). 6201Z works too. |
departments | array | all | Department codes, for example 75, 69, 13, 2A, 971. |
postalCodes | array | all | Five digit postal codes, for example 69002. |
employeeRange | array | all | INSEE size bands: NN none, 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+. |
activeOnly | boolean | true | Only active companies. Set to false to include closed ones. |
headOfficeInArea | boolean | true | With departments or postal codes, only companies whose head office is there. false also returns companies that only have a branch there. |
maxResults | integer | 50 | Maximum number of companies per run, 1 to 10 000. |
onlyNew | boolean | false | Only companies that earlier runs with the same input did not deliver. See "Monitoring and scheduling". |
A run with empty input returns the 50 largest active companies in France (La Poste, EDF, Elior, Ville de Paris, Société Générale and so on) in about 6 seconds.
Output
| Field | Description |
|---|---|
siren | 9 digit company number (SIREN) |
siret | 14 digit number of the head office establishment (SIRET) |
name | Registered name (dénomination) |
acronym, tradeName | Acronym (sigle) and trade name of the head office, when registered |
legalForm, legalFormCode | INSEE legal form label in French and its 4 digit code, for example SAS, société par actions simplifiée and 5710 |
nafCode, nafLabel | Main activity as NAF rev. 2 code and the official French label |
naf2025Code | The same activity in the new NAF 2025 classification |
companyCategory | PME (small and medium), ETI (intermediate) or GE (large), as computed by INSEE |
creationDate, closureDate | YYYY-MM-DD |
employeeRange, employeeRangeCode, employeeRangeYear | Employee size band, its INSEE code and the year it refers to |
establishmentCount, openEstablishmentCount | Number of establishments, all and open |
address, postalCode, city | Head office address |
department, departmentName, region | Department code and name, INSEE region code of the head office |
latitude, longitude | Head office coordinates, when INSEE has geocoded it |
status | active or closed |
lastUpdated | Date the API last updated the record |
url | The company on annuaire-entreprises.data.gouv.fr |
source, license | Attribution for the data |
Monitoring and scheduling
Set onlyNew to true to follow a segment over time, for example new software companies in Paris. The actor remembers which companies it has delivered for the same input, in a named key-value store in your Apify account (nightwave-state-france-company-register, one record per input). Each run returns and charges only companies that earlier runs did not deliver. The first run returns everything in the selection. A run without news finishes successfully with 0 rows.
onlyNew and maxResults are not part of the remembered input, so you can change them without starting over. Changing any other field starts a fresh state. With onlyNew the actor reads the whole search window (up to 10 000 hits) to find the new companies, so keep the search narrow: one or a few NAF codes and departments.
Example: every morning at 07:00, new active computer programming and consulting companies with their head office in Paris. In Apify Console, open Schedules, create a schedule with the cron expression 0 7 * * * and add this actor with the input below.
{"nafCodes": ["62.01Z", "62.02A"],"departments": ["75"],"onlyNew": true,"maxResults": 500}
The same schedule through the Apify API:
curl -X POST "https://api.apify.com/v2/schedules?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"name": "daily-france-companies", "cronExpression": "0 7 * * *", "timezone": "Europe/Paris", "isEnabled": true, "isExclusive": true,"actions": [{"type": "RUN_ACTOR", "actorId": "nightwave-owner~france-company-register","runInput": {"contentType": "application/json; charset=utf-8", "body": "<the input above as a JSON string>"}}]}'
For a weekly list instead, use the cron expression 0 7 * * 1 (every Monday at 07:00), for example with the name weekly-france-companies. The input stays the same.
A second run straight after the first, with onlyNew and the same input, returns 0 rows and is not charged.
Connect a webhook or an integration (Google Sheets, HubSpot, Slack, e-mail) in Apify Console if you want the new rows sent somewhere when the run finishes.
Limitations
- At most 10 000 companies per search. That is a limit of the API. For larger extracts, split the search by department or NAF code and run it once per part.
- Departments and postal codes match establishments. The API returns a company when any of its establishments is in the area. With
headOfficeInArea(the default) the actor keeps only companies whose head office is there; those skipped are not charged. - No people. Sole proprietors, partnerships between natural persons and records that are not fully public in Sirene are never returned, and directors are never requested. The search text is meant for company names and addresses.
- Labels are in French.
legalFormandnafLabelare the official INSEE labels. The codes next to them are stable and easy to translate. - Polite use. At most 3 requests per second (the API allows 7), a declared User-Agent, and retries that wait as long as the API asks (
Retry-After) on rate limits and server errors. A response in an unexpected format stops the run with a clear message. - The data is the public register, not a credit report. Check the official record before you rely on it in a contract.
Use cases
- B2B prospect lists by sector, size and region, for example bakeries with 10-49 employees in the Rhône, without scraping company directory websites.
- KYC and supplier checks: confirm that a SIREN exists, is active and has the expected name, activity and address.
- CRM enrichment: add legal form, NAF code, size band and head office to a list of SIREN or SIRET numbers.
- Market sizing: count active companies per NAF code and department.
- Daily or weekly alerts on new companies in a sector and department with
onlyNew.
FAQ
How fresh is the data? Live. Each run asks the API Recherche d'entreprises, which is updated daily from Sirene and the national company registry.
What does 1 000 rows cost?
5 USD (0.005 USD per company, event company), plus Apify platform usage. A test run that returned 1 000 rows used 0.006 USD of platform usage.
Can I use the data commercially?
Yes. The data is published under the Licence Ouverte / Open Licence 2.0, which allows commercial reuse when you name the source and the date of the last update. Every row carries the source in source and license, the date in lastUpdated and a link to the official record in url. See "Data source and license".
Why is a company missing?
It may be a sole proprietor, a record that is not public in Sirene, closed (with activeOnly), or outside the 10 000 hit window of the search. Look it up by SIREN to check.
Data source and license
The data comes from the API Recherche d'entreprises (GET https://recherche-entreprises.api.gouv.fr/search), run by DINUM (Direction interministérielle du numérique) for the French government and listed on api.gouv.fr. It is open without an API key. Its sources are the INSEE Sirene register (Base Sirene des entreprises et de leurs établissements) and other public registers.
The license, read on 3 October 2026:
- Both the Sirene base (INSEE) and the dataset "Données des entreprises utilisées dans l'Annuaire des Entreprises" (data.gouv.fr) are published under the Licence Ouverte / Open Licence 2.0 (Etalab).
- The licence lets you "l'exploiter à titre commercial, par exemple en la combinant avec d'autres informations, ou en l'incluant dans son propre produit ou application" (use it commercially, for example by combining it with other information or including it in your own product or application), on condition that you "mentionner la paternité de l'« Information » : sa source (au moins le nom du « Concédant ») et la date de dernière mise à jour" (name the source, at least the licensor, and the date of the last update).
- The attribution does not suggest any endorsement by the French state, and this actor is not endorsed by INSEE or DINUM.
Usage terms of the API, from its documentation: at most 7 requests per second per IP address and 30 per second per network; over the limit the API answers HTTP 429 with a Retry-After header. Non-diffusible companies are not available in the API.
The code lists used for the labels come from INSEE: NAF rev. 2 sub-classes, legal forms (catégories juridiques) and departments.
Pricing
Pay per result: 0.005 USD per company returned (event company), which is 5 USD per 1 000 companies. Apify bills platform usage on top as usual; a 1 000 row run used 0.006 USD. Companies skipped by onlyNew or headOfficeInArea are not charged. maxResults caps how many rows a run returns, so you always know the highest possible cost.
Contact
Built and maintained by Nightwave AB. Questions, bugs and feature requests: kontakt@nightwave.se
På svenska
Actorn hämtar franska företag ur INSEE:s officiella register Sirene via det öppna API:t Recherche d'entreprises, en rad per företag: SIREN, huvudkontorets SIRET, namn, bolagsform, huvudverksamhet (NAF-kod och officiell benämning), storleksklass, antal anställda (intervall), registreringsdatum, huvudkontorets adress, departement, koordinater, status och länk till Annuaire des Entreprises.
- Källa: API Recherche d'entreprises (recherche-entreprises.api.gouv.fr), som drivs av den franska statens digitaliseringsmyndighet DINUM. Ingen API-nyckel behövs.
- Licens: Licence Ouverte / Open Licence 2.0. Kommersiell vidareanvändning är tillåten om källan och datum för senaste uppdatering anges. Fälten
source,license,lastUpdatedochurlfinns på varje rad (läst 3 oktober 2026). - Filter: söktext, SIREN- eller SIRET-nummer, NAF-kod, departement, postnummer, antal anställda och aktiva företag. Med departement eller postnummer tas som standard bara företag med huvudkontoret i området.
- Inga personer: enskilda firmor, bolag mellan fysiska personer och poster som inte är helt offentliga i Sirene lämnas ute, och företrädare hämtas aldrig.
- Högst 10 000 träffar per sökning (API:ts gräns). Dela upp större uttag per departement eller NAF-kod.
- Med
onlyNew: truelevereras bara företag som tidigare körningar med samma input inte har levererat (se "Monitoring and scheduling"). - Pris: 0,005 USD per företag (5 USD per 1 000) plus Apifys plattformsanvändning.
- Kontakt: kontakt@nightwave.se