French Company Data API: SIREN, SIRET, Entreprises avatar

French Company Data API: SIREN, SIRET, Entreprises

Pricing

from $5.44 / 1,000 company delivereds

Go to Apify Store
French Company Data API: SIREN, SIRET, Entreprises

French Company Data API: SIREN, SIRET, Entreprises

French company data (entreprises) from the official register: SIREN, SIRET, address, NAF, headcount, creation date, establishments, managers, revenue, VAT. Search by name, NAF, department. No API key, no login. MCP-ready for AI agents. Pay per result. Errors are free. $6.40 per 1,000 companies

Pricing

from $5.44 / 1,000 company delivereds

Rating

0.0

(0)

Developer

ABM

ABM

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

$6.40 per 1,000 companies. You pay only for companies actually delivered. Invalid or unknown SIREN numbers, duplicates, empty searches and API errors are free.

This actor searches and enriches French companies (entreprises françaises) from the official French government register (INSEE Sirene + RNE, via the public recherche-entreprises.api.gouv.fr service). Look companies up by SIREN or SIRET, or search them by name, NAF/APE code, department, postal code, city, region, headcount range, legal form, size category, revenue and creation date.

Each company comes back as one clean JSON object with: legal name, trade names, SIREN, head-office SIRET, status, address with GPS, NAF code, headcount range, creation and closure dates, VAT number, number of establishments, matching establishments (SIRET), public managers (dirigeants) and auditors, published revenue and net income, collective agreements, labels (ESS, RGE, Qualiopi, Bio...) and a ready-to-use text summary for LLMs.

  • No API key, no login, no captcha: official open data (Licence Ouverte 2.0)
  • Stable: a government JSON API, not a fragile HTML scraper
  • onlyNew mode for scheduled monitoring of new registrations
  • MCP-ready for Claude, Cursor, ChatGPT and AI agents
  • Pay per result, no monthly rental

How much does it cost?

One company event = $0.0064. There is no start fee and no monthly fee.

Companies deliveredPrice
100$0.64
1,000$6.40
10,000$64.00

Example: all active bakeries (NAF 10.71C) in Haute-Garonne is roughly 1,000 companies, so about $6.40. Companies that are not found are never charged. You can set a maximum charge per run in Apify, and the actor stops cleanly when that limit is reached.

Input

You can combine direct lookups (identifiers) and one search (text and/or filters) in the same run.

{
"identifiers": ["552032534", "356 000 000 00048"],
"query": "boulangerie",
"communeCodes": ["31555"],
"nafCodes": ["10.71C"],
"status": "active",
"createdAfter": "2024-01-01",
"maxResults": 100,
"maxEstablishments": 10,
"onlyNew": false
}
FieldWhat it does
identifiersSIREN (9 digits) or SIRET (14 digits). Spaces and dots are accepted.
queryFull-text search in names, trade names, addresses and managers.
nafCodesNAF/APE codes, e.g. 10.71C, 62.01Z, 4120A.
departments, postalCodes, communeCodes, regionsGeography. These match companies that have at least one establishment in the area.
headcountRangesINSEE bands: 00, 01 (1-2), 02 (3-5), 03 (6-9), 11 (10-19), 12 (20-49), 21 (50-99), and so on.
companyCategoriesPME, ETI, GE.
legalFormCodesINSEE legal category, e.g. 5710 SAS, 5499 SARL, 5720 SASU, 9220 association.
createdAfter, createdBefore, createdWithinDaysFilter on the company's creation date.
minRevenue, maxRevenueFilter on published revenue (EUR).
statusactive (default), ceased or all.
maxResultsCap on companies returned by the search (up to 10,000).
onlyNewSkip companies already delivered by previous runs of the same search.

Output

One dataset item per company. Example (abridged):

{
"siren": "356000000",
"siret": "35600000000048",
"name": "LA POSTE",
"legalName": "LA POSTE",
"status": "active",
"legalFormCode": "5510",
"nafCode": "53.10Z",
"nafSection": "H",
"companyCategory": "GE",
"headcountRangeCode": "53",
"headcountRange": "10,000+ employees",
"headcountYear": 2023,
"isEmployer": true,
"creationDate": "1991-01-01",
"vatNumber": "FR39356000000",
"address": "9 RUE DU COLONEL PIERRE AVIA 75015 PARIS",
"postalCode": "75015",
"city": "PARIS",
"department": "75",
"region": "11",
"latitude": 48.83,
"longitude": 2.27,
"headquarters": { "siret": "35600000000048", "isHeadquarters": true, "status": "active", "address": "9 RUE DU COLONEL PIERRE AVIA 75015 PARIS" },
"establishmentCount": 20000,
"openEstablishmentCount": 12000,
"matchingEstablishments": [{ "siret": "35600000000048", "postalCode": "75015", "city": "PARIS", "nafCode": "53.10Z" }],
"requestedEstablishment": { "siret": "35600000000048", "isHeadquarters": true },
"managers": [
{ "type": "person", "name": "Jane DOE", "role": "Président-directeur général", "birthYear": 1960, "birthMonth": "1960-05" },
{ "type": "company", "name": "AUDIT FIRM SA", "siren": "775726417", "role": "Commissaire aux comptes titulaire" }
],
"finances": [{ "year": 2024, "revenue": 25000000000, "netIncome": 500000000 }],
"latestFinancialYear": 2024,
"latestRevenue": 25000000000,
"latestNetIncome": 500000000,
"collectiveAgreements": ["3255"],
"flags": { "estEss": false, "estRge": false, "estQualiopi": false, "estAssociation": false },
"annuaireUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/356000000",
"matchedBy": "siret",
"input": "356 000 000 00048",
"scrapedAt": "2026-10-17T08:00:00+00:00",
"summaryText": "LA POSTE (SIREN 356000000) is an active French company created on 1991-01-01. Main activity (NAF/APE): 53.10Z. Head office: ..."
}

The figures above are illustrative. Fields the register does not publish are null. Download the results as JSON, CSV, Excel or XML from the dataset, or use the Overview table view.

Use cases

1. Daily lead list of newly created businesses (sales and lead generation)

An accountant in Toulouse wants every new bakery, restaurant or construction business in their department each morning, to offer bookkeeping before a competitor does. They schedule the actor daily:

{ "departments": ["31"], "nafCodes": ["10.71C", "56.10A", "43.22A"], "createdWithinDays": 7, "onlyNew": true, "maxResults": 500 }
[{ "siren": "9xxxxxxxx", "name": "BOULANGERIE DU CANAL", "nafCode": "10.71C", "creationDate": "2026-10-14", "address": "12 RUE ... 31000 TOULOUSE", "managers": [{ "name": "...", "role": "Gérant" }] }]

About 20 to 60 new companies a week, so roughly $0.13 to $0.38. An n8n or Make flow appends them to Google Sheets or the CRM, and the sales assistant calls them the same day.

2. CRM enrichment and KYC from a SIREN list (finance and compliance)

A B2B SaaS has 5,000 customers with only a SIREN in its billing tool. Finance needs the legal name, VAT number, status (active or ceased), head-office address and managers to fix invoices and flag closed companies:

{ "identifiers": ["552032534", "542051180", "380129866"] }
[{ "siren": "552032534", "name": "DANONE", "status": "active", "vatNumber": "FR...", "address": "...", "managers": ["..."] }]

5,000 companies cost $32. Rows with status: "ceased" are sent to the collections team, and the VAT numbers are written back into the invoicing tool.

3. Market sizing by area (consultants and franchise developers)

A franchise developer compares how many bakeries with 3 to 49 employees exist in Haute-Garonne, Gironde and Rhône, and what revenue they publish:

{ "nafCodes": ["10.71C"], "departments": ["31", "33", "69"], "headcountRanges": ["02", "03", "11", "12"], "maxResults": 3000 }
[{ "siren": "...", "name": "...", "department": "33", "headcountRange": "6-9 employees", "latestRevenue": 812000, "latitude": 44.84, "longitude": -0.58 }]

Up to 3,000 companies cost at most $19.20. The analyst builds a pivot table of counts and median revenue by department and maps the GPS points to find under-served towns.

4. Context for an AI agent

An AI sales agent receives a prospect's company name. It calls the actor through MCP with { "query": "Michelin", "maxResults": 1 } and uses summaryText to write a personalised email. Each call costs less than one cent.

Call it from the API

Python

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("<USERNAME>/french-companies").call(run_input={
"query": "boulangerie",
"communeCodes": ["31555"],
"maxResults": 50,
})
for company in client.dataset(run["defaultDatasetId"]).iterate_items():
print(company["siren"], company["name"], company["address"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<APIFY_TOKEN>' });
const run = await client.actor('<USERNAME>/french-companies').call({
identifiers: ['552032534', '35600000000048'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((c) => `${c.siren} ${c.name} ${c.vatNumber}`));

One HTTP call (synchronous, returns the items):

curl -X POST "https://api.apify.com/v2/acts/<USERNAME>~french-companies/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"identifiers": ["552032534"]}'

Automation (Make, n8n, Zapier, Google Sheets)

Example n8n workflow for monitoring new registrations:

  1. Schedule Trigger every day at 7:00.
  2. Apify node, operation Run actor and get dataset, actor french-companies, input { "departments": ["31"], "nafCodes": ["62.01Z"], "createdWithinDays": 3, "onlyNew": true }.
  3. Google Sheets node, Append row: map siren, name, creationDate, address, annuaireUrl.
  4. Optional Slack node: "{{ $json.name }} was just created in {{ $json.city }}".

In Make or Zapier, use the Apify app: "Run an actor", then "Get dataset items", then Google Sheets or HubSpot. You can also attach an Apify Schedule and a webhook directly to the actor.

Use with AI agents (MCP)

The actor is available through the Apify MCP server, so Claude, Cursor, ChatGPT and other agents can call it as a tool:

{ "mcpServers": { "apify": { "url": "https://mcp.apify.com/?actors=<USERNAME>/french-companies" } } }

Ask, for example: "Find active software companies (NAF 62.01Z) created this year in Lyon and give me their managers." Each result includes summaryText, a plain-text paragraph you can pass directly to an LLM or store as a RAG chunk.

FAQ

Where does the data come from? From the official French government API "Recherche d'entreprises" (DINUM), built on INSEE Sirene, the RNE (national business register) and other public datasets. It is open data, refreshed daily.

Do I need an API key or an account on a French website? No.

What is the difference between SIREN and SIRET? SIREN (9 digits) identifies the company. SIRET (14 digits) identifies one establishment: the SIREN plus 5 digits. Both work as input. With a SIRET, the matched establishment is returned in requestedEstablishment.

Why does a company located in Paris show up when I filter on Toulouse? Geographic filters match companies that have at least one establishment in the area. Check matchingEstablishments to see the local SIRETs.

Are revenue figures always available? No. Only companies that publish their accounts have them; many small companies opt for confidentiality. Missing values are null.

How does onlyNew work? The actor remembers the SIRENs it has delivered for a given search, in a named key-value store (french-companies-state). The next run of the same search returns only companies not delivered before. Use stateKey to name the memory yourself.

Can I get emails or phone numbers? No. The official register does not publish them.

Is it GDPR compliant? The data is public open data published by the French State. Some sole proprietors have opted out of publication ("non diffusible"), and the API returns them in redacted form. Managers' data is limited to what the register publishes (name, role, birth month and year).

Limits

  • The API serves at most 10,000 results per search. For larger exports, split the search by department or NAF code.
  • The creation-date filter is applied after the search, because the API has no date filter. A broad search with a narrow date range can take a minute or two, but you only pay for the companies delivered.
  • The actor respects the API rate limit (about 5 requests per second, 25 companies per request), which is about 7,000 companies per minute.
  • A text search ranks results by relevance, so it is not an exhaustive filter. Use NAF codes and geography for complete lists.
  • Activity codes are returned as codes (NAF rev. 2 and NAF 2025), not as labels.