French Company Data: SIREN/SIRET Search & Lookup (Official API) avatar

French Company Data: SIREN/SIRET Search & Lookup (Official API)

Pricing

from $1.80 / 1,000 company saveds

Go to Apify Store
French Company Data: SIREN/SIRET Search & Lookup (Official API)

French Company Data: SIREN/SIRET Search & Lookup (Official API)

Official French company data (SIRENE) from the government API: look up SIREN/SIRET or search by name, NAF code, département, postcode, size, legal form, revenue. Clean output with NAF labels, HQ address, headcount, revenue & net income. No API key. Sole traders excluded by default.

Pricing

from $1.80 / 1,000 company saveds

Rating

0.0

(0)

Developer

Kevin

Kevin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Categories

Share

Get French company data from the official government API (API Recherche d'entreprises, built on the INSEE Sirene register). You can look up companies by SIREN or SIRET, search them by name, or list every company that matches your filters: NAF/APE code, département, postal code, commune, size category, headcount band, legal form, revenue range, labels and creation date.

Each result is a clean, flat row with readable labels. Codes come with their names (for example 10.71C → Boulangerie et boulangerie-pâtisserie and 22 → 100 à 199 salariés). Each row also has the head office address and GPS coordinates, the latest revenue and net income, VAT numbers, labels (RGE, Qualiopi, ESS…), and the number of establishments.

  • No API key, no scraping, no proxies. The data comes from the same API that powers annuaire-entreprises.data.gouv.fr.
  • Privacy by default. Sole traders (entrepreneurs individuels) are excluded and directors are off unless you turn them on. Every row shows whether the company has opted out of commercial prospecting.
  • Fast: each API request returns 25 companies, so a 1,000-company list takes under a minute.
  • $1.80 per 1,000 companies, with every field included.

Not affiliated with or endorsed by INSEE, DINUM or data.gouv.fr.

How to use

  1. Click Start. The prefilled input looks up Airbus (SIREN 383474814) and lists bakeries (NAF 10.71C) in Paris (département 75), capped at 100 companies.
  2. Replace it with your own SIREN/SIRET list, search terms or filters. You can combine them.
  3. Run the actor. Then export the dataset as CSV, Excel or JSON, or pull it into your CRM or spreadsheet through the Apify API.

Example 1: SIREN / SIRET lookup (KYB, CRM enrichment, invoice checks). Spaces and Annuaire URLs are fine:

{
"sirenOrSiret": ["383 474 814", "35600000000048", "https://annuaire-entreprises.data.gouv.fr/entreprise/poilane-324445030"]
}

Example 2: lead list from filters. This lists software companies (SAS/SASU) in Lyon and Villeurbanne with 10–49 employees, created since 2015, head office in the area, biggest first:

{
"nafCodes": ["62.01Z"],
"postalCodes": ["69001", "69002", "69003", "69006", "69007", "69100"],
"locationHeadOfficeOnly": true,
"headcountBands": ["11", "12"],
"legalFormCodes": ["5710", "5720"],
"createdFrom": "2015-01-01",
"sortBySize": true,
"maxResults": 2000
}

Example 3: name search with establishments and directors. This finds RGE-certified installers named "solaire" in Gironde, with their establishments (SIRET) and directors (names and roles only):

{
"searchQueries": ["solaire"],
"departements": ["33"],
"onlyWithLabels": ["est_rge"],
"includeEstablishments": true,
"includeDirectors": true,
"maxResults": 300
}

Official API vs. scraping-based actors

This actorPappers / website scrapersBare API wrappers
SourceOfficial government API (Sirene + RNE)Third-party website HTMLOfficial API
Breaks when a website changesNoOftenNo
Filters: NAF, département, postal code, headcount, legal form, revenue, labels✅ allVariesFew or none
Creation-date range, head-office-only location✅Varies❌
Labels for NAF, legal form, headcount✅Partly❌ raw codes
Revenue + net income with year✅✅Raw nested JSON
Sole traders excluded / opt-out flag✅ by default❌❌
Price per 1,000 companies$1.80$3.50–$10~$1

What data do you get?

One dataset item per company (SIREN):

  • Identity: SIREN, name, registered name, acronym, legal form (code and label), status (active or ceased), creation and closure dates, last update.
  • Activity: NAF/APE code and label, NAF section, NAF 2025 code.
  • Size: headcount band (code, label and year), INSEE category (PME / ETI / GE), employer flag, number of establishments (total and open).
  • Head office (siège): SIRET, one-line address, postal code, city, commune code, département, region, country, latitude and longitude.
  • Finances (when published): latest revenue (chiffre d'affaires) and net income (résultat net) with their year, plus the full history the API returns.
  • Other: intra-EU VAT numbers, labels and certifications (RGE, Qualiopi, Bio, ESS, société à mission, EPV, SIAE, organisme de formation, Egapro…), collective agreements (IDCC), sole-trader flag, commercial-prospecting opt-out flag, and a link to the company page on annuaire-entreprises.data.gouv.fr.
  • Optional: establishments (SIRET, address, activity, headcount, status, coordinates) and directors (names and roles; companies acting as directors or auditors include their SIREN).
  • Provenance: matchedBy, retrievedAt, source and licence on every row.

The run summary (key-value store record OUTPUT) lists the lookups found, not found or excluded, the total matches for each search, and the number of API requests.

Input

FieldWhat it does
sirenOrSiretSIREN (9 digits) or SIRET (14 digits) numbers to look up
searchQueriesFree-text search on name, address or a director's name; each query is combined with the filters
nafCodes, nafSectionsMain activity of the company (NAF rev. 2)
departements, postalCodes, communeCodesLocation of any establishment; add locationHeadOfficeOnly to keep only companies whose head office is there
companyStatusactive (default), ceased or any; applies to searches
companyCategories, headcountBands, legalFormCodesSize and legal form
minRevenue, maxRevenueLatest published revenue in EUR
onlyWithLabelsRGE, Qualiopi, Bio, ESS, … (all selected labels required)
createdFrom, createdToCreation-date range (applied to the results of your search/filters)
sortBySizeBiggest companies first instead of relevance
excludeSoleTradersDefault on
excludeProspectingOptOutsSkip companies opposed to commercial prospecting (default off; the flag is always output)
includeEstablishments, maxEstablishmentsPerCompanyAdd matching establishments (up to 100 per company)
includeDirectorsAdd directors (names and roles); default off
maxResultsTotal companies to save (default 100)
maxRequestsPerSecondDefault 4 (the API allows 7 per IP)

Output example

{
"siren": "324445030",
"companyName": "POILANE",
"status": "active",
"legalFormCode": "5710",
"legalForm": "SAS, société par actions simplifiée",
"nafCode": "10.71C",
"nafLabel": "Boulangerie et boulangerie-pâtisserie",
"creationDate": "1982-04-01",
"headcountBand": "22",
"headcountBandLabel": "100 à 199 salariés",
"companyCategory": "PME",
"hqSiret": "32444503000012",
"hqAddress": "8 RUE DU CHERCHE-MIDI 75006 PARIS",
"hqPostalCode": "75006",
"hqCity": "PARIS",
"hqDepartement": "75",
"hqLatitude": 48.851284924,
"hqLongitude": 2.3289797068,
"establishmentCount": 6,
"openEstablishmentCount": 6,
"vatNumbers": ["FR48324445030"],
"revenue": 10532253,
"netIncome": -2158104,
"financialYear": 2023,
"labels": ["Alim'Confiance", "Egapro"],
"isSoleTrader": false,
"optedOutOfCommercialProspecting": false,
"annuaireUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/324445030",
"containsPersonalData": false,
"retrievedAt": "2026-10-31T14:34:16+00:00",
"licence": "Source: Insee, base Sirene des entreprises et de leurs etablissements, and other public sources via the API Recherche d'entreprises (DINUM / annuaire-entreprises.data.gouv.fr). Licence Ouverte / Open Licence version 2.0."
}

(Shortened. See the dataset schema for all fields.)

Pricing

Pay per result: $1.80 per 1,000 companies saved ($0.0018 per company). Establishments, directors, finances and labels are included at no extra cost. Companies dropped by your filters are never charged. Set Maximum cost per run in Apify and the actor stops cleanly when it reaches that amount. The summary then shows stoppedByChargeLimit: true.

Use cases

  • B2B lead lists: for example, every active bakery, plumber or software firm in a département, filtered by size and revenue.
  • KYB / supplier checks: confirm that a SIREN/SIRET exists and is active, and get its legal form, address and VAT number.
  • CRM enrichment: add NAF, headcount, revenue and GPS coordinates to your company records.
  • Market research: count and map companies by activity, size and area.

Licence and attribution

The data is open data under the Licence Ouverte / Open Licence version 2.0 (Etalab), which allows commercial reuse provided you credit the source and show the date of last update.

  • Sirene register, data.gouv.fr dataset page (link): "Producteur : Institut national de la statistique et des études économiques (Insee) — Licence : Licence Ouverte / Open Licence version 2.0".
  • Company data used by the Annuaire des Entreprises, the data behind this API (link): "Producteur : data.gouv.fr — Licence : Licence Ouverte / Open Licence version 2.0".
  • Licence text: https://www.etalab.gouv.fr/licence-ouverte-open-licence/

Every item includes a licence attribution statement, lastUpdated and retrievedAt. Keep them when you republish the data. The API itself is documented at https://recherche-entreprises.api.gouv.fr/docs/.

Personal data and GDPR

Company data about legal entities is not personal data. However, sole traders are natural persons: their name is the company name and their address is often their home. Directors' names are personal data too. This actor therefore:

  • excludes sole traders by default (excludeSoleTraders). When you turn it off, their rows have containsPersonalData: true;
  • outputs directors only when you enable includeDirectors, and then names and roles only. The month and year of birth that the API publishes are never output;
  • outputs optedOutOfCommercialProspecting for every company. A true value means the company has objected to reuse of its data for commercial prospecting (Code de commerce art. R.123-320 / GDPR art. 21). Respect it, or set excludeProspectingOptOuts;
  • never returns companies that are non-diffusibles: the API does not publish them.

If you process personal data, you are the controller of your copy: you need a lawful basis, must inform the people concerned, and must honour objections. Do not use this actor to build consumer contact lists.

FAQ

Do I need an API key or an account at INSEE? No. The API is open, and the actor handles its rate limits for you.

Is it the full Sirene database? It covers every public company that the government directory shows: active and ceased, including associations and public bodies. Companies that have asked not to be published (non-diffusibles) are not included. For bulk exports of millions of rows, use the Sirene stock files on data.gouv.fr.

Why do I get at most 10,000 companies per search? The API caps each search at 10,000 results. Split large lists by département, NAF code or headcount band (for example, one run per département).

Why do some companies have a head office outside my département? The API's location filters match any establishment of a company. Turn on locationHeadOfficeOnly to keep only companies whose head office is in the area.

How does the creation-date filter work? The API has no date parameter, so the actor checks creationDate on each result of your search or filters. Combine the date filter with an activity or location filter. It cannot be the only filter.

Why is revenue 0 or empty? Revenue appears only when the company has published its accounts. Many small companies file confidential accounts, which the source reports as 0 or leaves out.

Can I get every establishment of a large company? includeEstablishments returns the establishments that matched your search or filters, up to 100 per company. For a plain SIREN lookup the API returns no matching establishments, so the actor lists the head office. establishmentCount always shows the total.

How fresh is the data? Every run queries the live API, which DINUM refreshes regularly from INSEE Sirene, the RNE and the other sources. lastUpdated shows when each company record last changed.

Can I get emails or phone numbers? No. The register does not publish them, and this actor does not guess or scrape them.

Changelog

  • 1.0 (2026-10): first release.