France SIRENE Company Search: SIREN, SIRET, NAF Lookup avatar

France SIRENE Company Search: SIREN, SIRET, NAF Lookup

Pricing

from $1.00 / 1,000 company founds

Go to Apify Store
France SIRENE Company Search: SIREN, SIRET, NAF Lookup

France SIRENE Company Search: SIREN, SIRET, NAF Lookup

Look up French companies by SIREN or SIRET, or search by name, NAF/APE code, postcode, department and size, from the official Sirene register (INSEE). Legal name, status, address, NAF, employee band, VAT, revenue. No API key. No sole traders or directors.

Pricing

from $1.00 / 1,000 company founds

Rating

0.0

(0)

Developer

Itay Ozer

Itay Ozer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Look up French companies by SIREN or SIRET, or build company lists by name, NAF/APE activity code, postcode, department and employee count. Each company comes back as one clean JSON row: legal name, status, establishment address, NAF code and label, legal form, employee band, creation date, VAT number and latest published revenue.

The data comes from the French government's open company register API (API Recherche d'entreprises, run by DINUM on top of INSEE Sirene and the RNE). It is free official open data under the Licence Ouverte 2.0: no API key, no scraping of Pappers or Societe.com, no captchas, no proxies.

What you get

For every company:

  • Identity: SIREN, SIRET of the establishment in the row, head office SIRET, legal name, acronym
  • Status: active or closed, closing date, creation date, last update in the register
  • Activity: NAF rev. 2 (APE) code with its French label, NAF section, and the new NAF 2025 code INSEE publishes ahead of the 2027 switch
  • Legal form: INSEE legal category code and label (SAS, SARL, SA, SCI, association...)
  • Size: INSEE category (PME, ETI, GE), employee band in plain words (for example 20-49) and its year, number of establishments
  • Address: full address of the establishment, postcode, city, INSEE commune code, department, region, latitude and longitude
  • Money: intra-EU VAT number, latest published revenue and net income with the year
  • Flags: register labels such as association, ESS, RGE, Qualiopi, bio, FINESS, and whether the company opted out of commercial prospecting (GDPR art. 21), so you can respect it in your outreach
  • A link to the company page on annuaire-entreprises.data.gouv.fr

Input

FieldExampleNotes
queries["552032534", "85520088700039", "michelin"]9 digits = SIREN lookup, 14 digits = SIRET lookup, anything else = name search. Spaces and dots are fine. Up to 5,000 per run
nafCodes["62.01Z", "6202A"]Main activity of the company
postcodes["75011", "69003"]Companies with an establishment there. The row then shows that local establishment
departments["69", "2A", "974"]Same, by department
minEmployees10Keeps employee bands that can reach this many salaried staff
activeOnlytrueDefault true. Leaves closed companies out of searches
maxResultsPerSearch1001 to 10,000 per name search or filter-only search

Filters apply to name searches and to a filter-only search (leave queries empty). SIREN and SIRET lookups ignore them and always return the company with its status.

Every software company with an office in Lyon 3e:

{
"nafCodes": ["62.01Z"],
"postcodes": ["69003"],
"maxResultsPerSearch": 1000
}

Check a supplier list:

{
"queries": ["552032534", "855 200 887 00039", "356000000"]
}

Output example

{
"input": "85520088700039",
"matchType": "siret",
"result": "found",
"note": null,
"siren": "855200887",
"siret": "85520088700039",
"isHeadOffice": true,
"headOfficeSiret": "85520088700039",
"name": "COMPAGNIE GENERALE DES ETABLISSEMENTS MICHELIN",
"acronym": "CGEM",
"legalFormCode": "5308",
"legalForm": "Société en commandite par actions",
"status": "active",
"closedOn": null,
"creationDate": "1955-01-01",
"nafCode": "77.40Z",
"nafLabel": "Location-bail de propriété intellectuelle et de produits similaires, à l’exception des œuvres soumises à ,copyright",
"nafSection": "N",
"naf2025Code": "77.40G",
"companyCategory": "GE",
"employeeBandCode": "02",
"employeeBand": "3-5",
"employeeBandYear": 2024,
"establishmentCount": 2,
"openEstablishmentCount": 1,
"establishmentStatus": "active",
"establishmentNafCode": "77.40Z",
"tradeName": null,
"address": "23 PLACE DES CARMES DECHAUX 63000 CLERMONT-FERRAND",
"postcode": "63000",
"city": "CLERMONT-FERRAND",
"communeCode": "63113",
"department": "63",
"region": "84",
"latitude": 45.783412445,
"longitude": 3.0932797959,
"vatNumber": "FR09855200887",
"revenueEur": 25992000000,
"netIncomeEur": 1664000000,
"financialYear": 2025,
"labels": [],
"optedOutOfProspecting": true,
"lastUpdated": "2026-10-31T10:48:07",
"annuaireUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/855200887",
"source": "Annuaire des Entreprises API (INSEE Sirene, RNE), Licence Ouverte 2.0",
"checkedAt": "2026-10-31T18:49:43.168Z"
}

Fields the register does not have are null, never guessed. The result field tells you what happened to each query:

resultMeaningCharged
foundCompany returnedyes
not_foundSIREN/SIRET not in the public register, or a search with no matchno
invalidWrong length or check digit, or a name under 3 charactersno
excludedA sole trader or other natural person (see below)no
errorThe register did not answer after retriesno

Pricing

EventPriceWhen
Company found$0.001Every found row in your dataset
Actor start$0.00005Once per run

1,000 companies cost $1.00. Not-found, invalid, excluded and failed queries are free. A company that two of your searches both match is charged once.

The actor reads your run's maximum charge before it calls the register and stops when it is reached, so a run never costs more than the limit you set.

Limits

  • Speed: the register API allows 7 requests per second per IP and 30 per cloud network. To stay a good citizen the actor makes at most 3 requests per second and waits when asked to (HTTP 429). A SIREN or SIRET lookup is one request; a search returns 25 companies per request. Measured: 1,000 search results in about 2.5 minutes, 400 lookups in about 3 minutes.
  • 10,000 results per search is a hard limit of the register API. For bigger lists, split by department or NAF code.
  • Not included: companies that asked INSEE not to be public (non-diffusible), and establishments' predecessors and successors. When a company asked INSEE to hide its street address (partial diffusion), address, latitude and longitude are null, the postcode too when the register hides it, and the city stays.
  • Freshness: the register API is fed by INSEE Sirene and the RNE. lastUpdated shows when the register last updated each company.
  • Name search is fuzzy, like the official directory: "danone" also finds "SCI DANON". Add a NAF code or postcode to narrow it.

FAQ

Is there personal data in the results? No directors, no shareholders, no birth dates, no elected officials: the actor never even downloads them. Sole traders (entrepreneurs individuels) and groups of natural persons are left out completely, because their company name is the owner's name and their address is often a home. A SIREN lookup for one returns a free excluded row with no name or address. Company names and registered addresses of legal entities are public register data. If you use the results for marketing, check optedOutOfProspecting and your own GDPR duties.

Where does the data come from? From API Recherche d'entreprises (recherche-entreprises.api.gouv.fr), the free public API behind annuaire-entreprises.data.gouv.fr, fed by INSEE Sirene and the national business register (RNE). Reuse is allowed under the Licence Ouverte 2.0, including commercial reuse, with the source and update date cited; each row carries both. This actor is independent and not endorsed by INSEE, DINUM or the French government.

Why did I get fewer companies than maxResultsPerSearch? The search had fewer matches, some matches were sole traders (left out), or your run's maximum charge covered fewer companies.

Can I schedule it or call it from an AI agent? Yes. It runs with limited permissions, so it cannot touch your other Apify data, and it works from schedules, the API, integrations and MCP clients. Rows are flat, so they export cleanly to CSV and Excel.

A field is wrong or missing. What do I do? Open an issue on the Issues tab with your run link and the SIREN.