France SIRENE Company Scraper avatar

France SIRENE Company Scraper

Pricing

Pay per event

Go to Apify Store
France SIRENE Company Scraper

France SIRENE Company Scraper

Extract French company registry leads from the official SIRENE API with SIREN, SIRET, addresses, activity codes, status, and establishment counts.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

Extract French company registry data from the official SIRENE search API. This Apify Actor turns company names, activities, SIREN numbers, SIRET numbers, departments, regions, postal codes, and NAF/APE activity codes into clean dataset records for lead generation, KYC, CRM enrichment, and market mapping.

It does not scrape Pappers web pages. It uses the public French government company search endpoint so runs stay fast, low-cost, and browser-free.

What does France SIRENE Company Scraper do?

France SIRENE Company Scraper searches the official French company register and exports normalized company records.

You can use it to:

  • πŸ‡«πŸ‡· Find active French businesses by keyword or activity.
  • 🧾 Enrich known SIREN and SIRET identifiers.
  • πŸ“ Build local lead lists by department, region, city, or postal code.
  • 🏒 Collect headquarters addresses and establishment counts.
  • 🧩 Prepare official registry data for CRM, KYC, vendor onboarding, or compliance workflows.

Who is it for?

This actor is useful for teams that repeatedly need official French company data:

  • Sales teams building French B2B prospect lists.
  • RevOps teams cleaning CRM records with SIREN/SIRET identifiers.
  • KYC and compliance teams validating vendor identity and status.
  • Market researchers mapping French companies by activity code and region.
  • Data teams that need API-friendly registry exports without writing custom pagination code.

Why use this actor?

The official API is public, but production workflows still need pagination, retry handling, de-duplication, schema-stable output, and Apify integrations.

This actor adds:

  • A simple Apify input form.
  • Typed dataset records.
  • Bounded pagination and max item controls.
  • Optional nested executives and establishments.
  • PPE pricing tied to records saved.
  • API, schedule, webhook, and MCP compatibility through Apify.

Data source

The actor queries:

https://recherche-entreprises.api.gouv.fr/search

This is the French government company search API. The output reflects fields returned by that source at run time.

What data can you extract?

FieldDescription
sirenFrench company SIREN identifier
siretHeadquarters or matched establishment SIRET
companyNameLegal company name
fullNameFull display name returned by the API
tradeNameCommercial/trade name when available
legalFormCodeLegal form code
companyCategoryCompany category such as PME when available
employeeSizeCodeEmployee size band code
activityCodeNAF/APE activity code
statusAdministrative status
isActiveBoolean active flag derived from status
headquartersAddressHeadquarters address
headquartersCityHeadquarters city
headquartersDepartmentDepartment code
headquartersRegionRegion code
latitude, longitudeCoordinates when returned by the source
openEstablishmentsNumber of open establishments
totalEstablishmentsTotal establishment count
executivesOptional executives/officers array
matchingEstablishmentsOptional matched establishments array

How much does it cost to scrape French SIRENE company data?

The actor uses pay-per-event pricing:

  • A $0.005 start fee is charged once per run.
  • The BRONZE per-company price is $0.000032031.
  • Volume tiers reduce the per-company price down to $0.00001 on DIAMOND.

You can control spend with maxItems. A 1,000-company BRONZE run is roughly $0.037 before any platform-side limits or tier differences.

Input options

The most important inputs are:

  • query β€” company name, activity, keyword, SIREN, or SIRET.
  • identifiers β€” optional SIREN/SIRET list for enrichment.
  • maxItems β€” maximum companies to save.
  • activeOnly β€” request active records by default.
  • activityCode β€” optional NAF/APE filter such as 56.10A.
  • department β€” optional department code such as 75.
  • region β€” optional region code such as 11.
  • cityCode β€” optional INSEE commune code.
  • postalCode β€” optional postal code.
  • includeExecutives β€” include directors/officers when available.
  • includeMatchingEstablishments β€” include matched establishment details.

Example input: Paris restaurant leads

{
"query": "restaurant paris",
"department": "75",
"activeOnly": true,
"maxItems": 100,
"resultsPerPage": 25
}

Example input: enrich SIREN identifiers

{
"query": "830998175",
"identifiers": ["830998175", "552100554"],
"activeOnly": true,
"maxItems": 10,
"includeMatchingEstablishments": true
}

Example output

{
"siren": "830998175",
"siret": "83099817500012",
"companyName": "SARL RESTAURANT LES PEUPLIERS",
"tradeName": "RESTAURANT LES PEUPLIERS",
"activityCode": "56.10A",
"status": "A",
"isActive": true,
"headquartersCity": "SELTZ",
"headquartersPostalCode": "67470",
"headquartersDepartment": "67",
"openEstablishments": 1,
"sourceUrl": "https://recherche-entreprises.api.gouv.fr/search?...",
"scrapedAt": "2026-06-29T00:00:00.000Z"
}

How to run it on Apify

  1. Open the actor on Apify.
  2. Enter a company/activity query or SIREN/SIRET identifiers.
  3. Add optional location or activity filters.
  4. Set maxItems to your desired export size.
  5. Run the actor.
  6. Download the dataset as JSON, CSV, Excel, XML, or RSS.

Tips for better results

  • Use French business terms for activity searches.
  • Combine query with department or region for local lead lists.
  • Use identifiers when enriching existing CRM records.
  • Keep includeExecutives disabled unless you need officer data.
  • Use includeMatchingEstablishments when you care about SIRET-level matching.

Integrations

Common integration patterns include:

  • CRM enrichment: send SIREN/SIRET lists from HubSpot, Salesforce, or Airtable and load the dataset back.
  • Vendor onboarding: validate legal name, status, and headquarters before approval.
  • Lead generation: schedule regional searches and export new official registry records.
  • Data warehouse loading: run via API and ingest JSONL/CSV into BigQuery, Snowflake, or Postgres.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/france-sirene-company-scraper').call({
query: 'restaurant paris',
department: '75',
maxItems: 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/france-sirene-company-scraper').call(run_input={
'query': 'conseil informatique',
'region': '11',
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[0])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~france-sirene-company-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"query":"restaurant paris","department":"75","maxItems":100}'

MCP usage

Use the actor from MCP-compatible tools through Apify MCP:

$npx -y @apify/actors-mcp-server --actors automation-lab/france-sirene-company-scraper

MCP endpoint format:

https://mcp.apify.com/?tools=automation-lab/france-sirene-company-scraper

JSON config block for Claude Desktop or compatible MCP clients:

{
"mcpServers": {
"apify-france-sirene": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "automation-lab/france-sirene-company-scraper"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
}

Example prompts:

  • "Find 100 active restaurant companies in Paris and return SIREN, SIRET, address, and activity code."
  • "Enrich these French SIREN identifiers and flag inactive companies."
  • "Build an Île-de-France list of IT consulting companies by NAF code."

Legality

The actor uses a public official API and extracts business registry data returned by that API. You are responsible for using the data lawfully, respecting privacy and compliance rules, and following the source terms for your jurisdiction and use case.

FAQ

The actor queries a public official API. You still need to make sure your storage, outreach, enrichment, and retention workflows comply with applicable laws and source terms.

Why did I get zero results?

Try a broader French-language query, remove strict location filters, or verify that your SIREN/SIRET identifiers are valid.

Why are fewer unique companies saved than maxItems?

The actor de-duplicates by SIREN, so duplicate identifiers or overlapping searches may produce fewer unique company rows than requested.

Troubleshooting

If you get zero results, try a broader French-language query, remove strict location filters, or verify that your SIREN/SIRET identifiers are valid.

If a run stops early, check maxItems and the input filters. The actor de-duplicates by SIREN, so duplicate identifiers or overlapping searches may produce fewer unique rows than requested.

You may also need:

  • https://apify.com/automation-lab/google-maps-lead-finder for place/contact lead discovery.
  • https://apify.com/automation-lab/company-domain-to-twitter-x-url-resolver for enrichment workflows.
  • https://apify.com/automation-lab/website-contact-finder for website contact extraction.

Limitations

  • The actor returns fields provided by the official API, not paid Pappers-only data.
  • Filter behavior depends on the source API parameters.
  • Some optional nested arrays can be large, so keep them disabled unless needed.

Changelog

  • 0.1 β€” Initial implementation using the official French company search API.

Support

Open an Apify issue if you need a missing field, a new filter, or help shaping a French company enrichment workflow.