SIREN/SIRET Lookup & French Company Enrichment avatar

SIREN/SIRET Lookup & French Company Enrichment

Pricing

from $1.50 / 1,000 company records

Go to Apify Store
SIREN/SIRET Lookup & French Company Enrichment

SIREN/SIRET Lookup & French Company Enrichment

Paste SIREN, SIRET, VAT numbers or company names and get CRM-ready French company data from the official SIRENE open data: legal name, VAT, NAF (incl. NAF 2025), headcount, address, finances. Pay only for companies found.

Pricing

from $1.50 / 1,000 company records

Rating

0.0

(0)

Developer

Atesen Software

Atesen Software

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Turn a column of SIREN, SIRET or French VAT numbers — or plain company names — into a clean, CRM-ready table of French company data from the official SIRENE open data: legal name, VAT number, NAF/APE code (including the new NAF 2025), legal form, headcount range, head-office or establishment address with GPS coordinates, status, latest revenue and net income, labels (RGE, Qualiopi, ESS…) and, if you want, directors.

You only pay for rows that come back with company data. Typos, duplicates, unknown numbers and uncertain name matches are free, and a free preview mode checks your whole list before you spend anything (only Apify's tiny per-run start fee applies).

What can this Actor do?

  • 🔢 Bulk SIREN / SIRET / VAT lookup — paste thousands of identifiers at once; spaces, dots and dashes are ignored.
  • ✅ Check-digit validation — every SIREN and SIRET is checked (Luhn, including the special La Poste rule) and numeric VAT keys are verified before any lookup, so typos are reported, not charged.
  • 🔎 Company name → SIREN matching — "Boulangeries Paul | 75004" finds the right company and the local establishment, with a match confidence score, an ambiguity flag and the other candidates listed.
  • 🏷️ NAF rév. 2 and NAF 2025 side by side — on 1 January 2027 NAF 2025 becomes the official APE nomenclature; both codes and labels are returned so your segments keep working through the switch.
  • 🧾 VAT number for every company (official DGFiP value when available, otherwise computed and labelled as such).
  • 🧹 De-duplication — the same identifier entered twice (e.g. a SIREN and that company's VAT number, or the same name + location) is looked up and charged once.
  • 📊 One flat row per input line, in your order — exports straight to CSV, Excel, Google Sheets or your CRM.
  • 🛡️ Privacy by default — directors are opt-in; birth dates and nationalities are never returned; companies that opted out of public diffusion stay masked.

Why use it instead of calling the API yourself?

The French government publishes this data for free, but using it in bulk is fiddly: the API is throttled (HTTP 429), identifiers must be cleaned and validated, company names need fuzzy matching, and the output is deeply nested. This Actor handles all of that with no code, no API key and no server, and you can run it from the Apify Console, on a schedule, via the Apify API, or from Apify's integrations (Make, Zapier, n8n and others).

How to use it

  1. Paste your SIREN / SIRET / VAT numbers into the first field (use Bulk edit to paste a whole spreadsheet column), and/or company names into the second field.
  2. Optionally add a location to a name after a vertical bar: a postal code (Michelin | 63000) or a department (Decathlon | 59).
  3. (Optional) Tick Free preview to validate and de-duplicate the list without any lookup or charge.
  4. Click Start. Download the results as CSV, Excel or JSON, or use the All fields (CRM export) view.

Input example

{
"identifiers": ["552032534", "356 000 000 24221", "FR27552032534", "55203253400646"],
"companyNames": ["Boulangeries Paul | 75004", "Decathlon | 59"],
"minConfidence": 60,
"includeFinances": true,
"includeDirectors": false
}

Output

One row per input line, always in the same order and with the same columns. Shortened example:

{
"rowNumber": 1,
"input": "552032534",
"inputType": "siren",
"status": "found",
"siren": "552032534",
"siret": "55203253400703",
"isHeadOffice": true,
"name": "DANONE",
"vatNumber": "FR27552032534",
"vatNumberSource": "api",
"companyStatus": "active",
"legalForm": "SA à conseil d'administration (s.a.i.)",
"nafCode": "70.10Z",
"nafLabel": "Activités des sièges sociaux",
"nafCode2025": "70.10Y",
"employeeRange": "1 000 à 1 999 salariés",
"companyCategory": "GE",
"address": "59-61 RUE LA FAYETTE 75009 PARIS",
"postalCode": "75009",
"city": "PARIS",
"department": "Paris",
"region": "Île-de-France",
"latitude": 48.8763,
"longitude": 2.3435,
"financialYear": 2025,
"revenue": 27376000000,
"netIncome": 2100000000,
"annuaireUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/552032534"
}

How complete is the data?

Measured on 450 real companies (software/IT firms in the Rhône department, October 2026):

FieldFilled
Name, VAT number, NAF + NAF 2025 code and label, legal form, headcount range, creation date100%
Address, department, region98%
GPS coordinates96%
Company size category (PME/ETI/GE)77%
Revenue / net income42% — only companies with public accounts

VAT numbers came from the official DGFiP list for 71% of companies and were computed from the SIREN for the rest (vatNumberSource tells you which).

Row statuses

StatusMeaningCharged?
foundSIREN / SIRET / VAT foundYes
matchedCompany name matched at or above your minimum confidenceYes
low_confidenceBest name match is below your minimum confidence — candidate SIRENs are listed in matchAlternativesNo
not_foundValid identifier or name, but nothing in the public dataNo
invalidWrong check digit, wrong length or wrong VAT key — statusMessage says whyNo
duplicateSame company as an earlier rowNo
errorThe government API kept failing for this row (re-run it later), or rejected the query (fix the input) — statusMessage says whichNo
validFree preview mode onlyNo

A run summary (counts, duration, API statistics and any failed rows) is saved as OUTPUT in the run's key-value store.

Pricing

$2.00 per 1,000 enriched rows (pay per event: one event per found or matched row), plus Apify's small standard run-start fee. Higher Apify plans may get a lower per-row price — the exact price for your plan is always shown on this page. Everything else — invalid, duplicate, not-found, low-confidence and failed rows, and the free preview — costs nothing beyond the run-start fee. Note: two different names that turn out to be the same company are two separate matches and are both charged.

Examples: 500 found companies ≈ $1.00 · 10,000 found companies ≈ $20.00.

You stay in control: set a maximum cost per run in the run options and the Actor stops cleanly when it is reached, telling you how many rows are left.

Speed — please read

The government API is free and shared by everyone, so it is rate-limited: officially up to 7 requests per second per IP, but in practice it throttles much harder (HTTP 429 with a Retry-After delay), especially under sustained use. The Actor follows those delays automatically and never hammers the service — and it deliberately does not rotate IP addresses to get around the limit. Each row needs one API call.

Measured on Apify's cloud (October 2026): about 35 rows per minute — 200 rows in under 6 minutes, 1,000 rows in roughly 30 minutes. When the API is busy it can drop to 10–30 rows per minute (we measured that from a home connection). Small lists (under ~50 rows) finish in a minute or two. You don't need to keep the page open: rows appear in the dataset as they are processed, the status line shows progress and how often the API is throttling, and compute cost stays tiny because the Actor mostly waits.

Tips for name matching

  • Use the legal name when you have it ("Manufacture Française des Pneumatiques Michelin" matches with confidence 1.0; "Michelin" alone is ambiguous between dozens of group companies and is flagged).
  • Add a postal code or department — it narrows the search and returns the local establishment's SIRET and address.
  • Check matchAmbiguous and matchAlternatives before importing name matches into a CRM. Raise Minimum match confidence to be stricter.

Data source, freshness and licence

Data comes from the API Recherche d'entreprises, run by the French interministerial digital agency (DINUM) and also used by annuaire-entreprises.data.gouv.fr. It aggregates INSEE's SIRENE register (updated daily), the national business register RNE (INPI) for directors, DGFiP for VAT numbers, and published annual accounts where available. The data is published under the Licence Ouverte / Open Licence 2.0, which allows commercial reuse with attribution — please keep the source mention ("Source: INSEE Sirene / API Recherche d'entreprises, DINUM") when you republish it.

This Actor is an independent tool and is not affiliated with or endorsed by INSEE, INPI or DINUM.

Privacy and GDPR

  • The Actor sends only the identifiers and names you provide to the government API; results are stored in your Apify run storage. The developer does not receive or keep your data.
  • Sole traders (entrepreneurs individuels) are natural persons: their name and business address are personal data even with directors switched off. Process them under GDPR like any B2B contact data.
  • Directors are personal data and are off by default. Turn them on only if you have a lawful basis (e.g. B2B prospecting under legitimate interest, with the information and opt-out duties that come with it). Birth dates and nationalities are never output.
  • Companies (mostly sole traders) that opted out of public diffusion are returned with their protected fields empty and partiallyDiffusible: true, as required by the data publishers.

Limitations

  • Only French companies registered in SIRENE are covered.
  • Name matching looks at the top 5 search candidates; very generic names may need a location or a fuller name.
  • Financial figures exist only for companies whose accounts are public — many small companies have none.
  • One row per input: the Actor does not list all establishments of a company.
  • Throughput depends on the government API (see Speed).

FAQ

Do I need an API key? No.

Can I run it on a schedule or from my own code? Yes — use Apify schedules, the Apify API, or the Make / Zapier / n8n integrations available on Apify.

What is NAF 2025? INSEE's new activity nomenclature. From 1 January 2027 it replaces NAF rév. 2 for the APE codes of active companies. This Actor already returns both, so you can map your segments now.

Why is a valid SIREN "not_found"? It may belong to a company that opted out of public diffusion, or it was deleted from the register. Check it on annuaire-entreprises.data.gouv.fr.

What happens if the run is interrupted? Progress is saved after every row. If the Apify platform migrates the run to another server, it resumes where it stopped and finished rows are not charged again. If you abort a run, you can resurrect it to continue.

Support

Questions, bugs or feature requests: open an issue on the Issues tab or email support@atesensoftware.com — we usually reply within one business day.

Built by Atesen Software.