# SIRET lookup and French company search with Sirene data

> SIRET lookup and French company search with official Sirene data. Check SIREN, SIRET or VAT numbers, or search by name. Get status and head office.

URL: https://cliqtomedia.com/actors/france-sirene-company-search/

Category: Leads, companies & validation · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/france-sirene-company-search?fpr=cliqto

Check French companies by SIREN, SIRET or VAT number. Or search by name with area and NAF filters. You get legal form, activity, head office and a clear status.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `552081317` in SIREN / SIRET / VAT numbers. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

France Company & SIRET Search looks up French companies in the official Sirene directory. Add SIREN, SIRET or French VAT numbers, or search by company name with department, postal code, NAF code and status filters. You get one clean row per company, with legal form, NAF activity, size, dates, head office and a clear status: active, ceased or not found.

- Identifier lookup. Each SIREN, SIRET or VAT number is an exact match. A SIRET also returns that establishment. A wrong or unknown number returns a `not_found` row, so no input is lost.
- Name search. A full-text search on company names, brands and addresses, with filters. Results are ranked by the source. Check `siren` and `name` before you use a search result as a verified match.

### Good for

- Check that a supplier or customer exists and is still active (KYB, onboarding).
- Fill CRM records with the official name, legal form, NAF code, VAT number and head office.
- Build a list of companies in a department or with a NAF code.
- Find the open and closed establishments of a company.

### Not a good fit

- Directors, shareholders, phone numbers or emails. The Actor does not output them. Note: a sole trader (entrepreneur individuel) is registered under a person's name, and Sirene shows that name as the company name, unless the person hid it.
- Companies that asked to hide their data (non-diffusible). The public API does not serve them.
- A full copy of the Sirene database. Use the official Sirene files for bulk downloads.
- Legal certificates such as a Kbis extract.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.002 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Company record | $0.0072 | One found French company (complete or partial row) saved to the Dataset. |
| Not-found lookup | $0.001 | One valid SIREN/SIRET/VAT lookup that is not in the public Sirene index, saved as a not_found row. |
| Establishment record | $0.0003 | One establishment (SIRET) row saved to the Dataset when establishments are requested or a SIRET is looked up. |

- One company: about $0.0092.
- 1,000 companies: about $7.20.
- Every day 100 companies, for 30 days: about $21.66 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/france-sirene-company-search?fpr=cliqto

## Questions

### Do I need an INSEE API key?

No. The source is open and free. You only need an Apify account.

### Are company directors included?

No. They are personal data. The tool gives company data only.

### Can I get a Kbis extract?

No. The tool gives public register data, not legal certificates.

### Can I reuse the data commercially?

Yes. Sirene data is under Licence Ouverte 2.0, with attribution.

### Do I need an API key or a French account?

No. The source is open and free. You only need your Apify account.

### Is a search result a verified match?

No. Search is fuzzy. For verification, use the SIREN or SIRET. Exact lookups show `matchedBy: "siren_exact"` or `"siret_exact"`.

### How fresh is the data?

Each run reads the source live. Each row has `fetchedAt` (our read time) and `sourceUpdatedAt` (the source update time of that record).

## Data fields

- `recordType` (string): Row type: company or establishment. Filter on it, or use the Companies / Establishments view.
- `status` (string): Row result: complete, partial, not_found or error. See statusReason and errorCode.
- `statusReason` (string): Plain-English reason for a partial, not_found or error row; null when complete.
- `errorCode` (string): Machine code for error rows, e.g. INVALID_IDENTIFIER, RATE_LIMITED, SOURCE_UNAVAILABLE; null otherwise.
- `input` (string): Your input value as given (identifier), or null for search rows.
- `matchedBy` (string): How the row was found: siren_exact, siret_exact, search; for establishments also head_office, company_establishments, search_match.
- `siren` (string): 9-digit SIREN company number.
- `siret` (string): 14-digit SIRET establishment number (establishment rows).
- `companyName` (string): Name of the parent company (establishment rows).
- `isHeadOffice` (boolean): true if this establishment is the current head office (siège).
- `wasHeadOffice` (boolean): true if this establishment was a head office in the past.
- `administrativeStatus` (string): Company: active or ceased. Establishment: active or closed.
- `administrativeStatusCode` (string): INSEE code: A (active), C (ceased company) or F (closed establishment).
- `creationDate` (string): Creation date, YYYY-MM-DD.
- `activityStartDate` (string): Start date of the establishment activity, YYYY-MM-DD.
- `closureDate` (string): Closure date, YYYY-MM-DD; null if active.
- `address` (string): Full establishment address as one line; null if hidden.
- `postalCode` (string): 5-digit postal code of the establishment.
- `city` (string): City of the establishment.
- `communeCode` (string): INSEE commune code of the establishment.
- `department` (string): Department code of the establishment, e.g. 75, 2A, 971.
- `region` (string): INSEE region code of the establishment.
- `latitude` (number): Latitude (WGS84) of the establishment; null if unknown or hidden.
- `longitude` (number): Longitude (WGS84) of the establishment; null if unknown or hidden.
- `nafCode` (string): Main activity, NAF rev. 2 code, e.g. 62.01Z.
- `nafVersion` (string): NAF nomenclature of nafCode, e.g. NAFRev2.
- `nafLabel` (string): French label of nafCode.
- `naf2025Code` (string): Main activity in the new NAF 2025 nomenclature; temporary source field, can be null.
- `employeeRangeCode` (string): INSEE headcount band code (tranche d'effectif).
- `employeeRangeLabel` (string): Headcount band label, e.g. 10 000 salariés et plus.
- `employeeRangeYear` (number): Year of the headcount band.
- `isEmployer` (boolean): Employer flag from the source; often null at company level.
- `tradeNames` (array): Trade names (enseignes) of the establishment.
- `commercialName` (string): Commercial name (dénomination usuelle) of the establishment.
- `diffusionStatus` (string): public, or partial when some data is hidden by law (non-diffusible fields).
- `hiddenFields` (array): Fields hidden by the source for privacy; they are null in this row.
- `annuaireUrl` (string): Public page on annuaire-entreprises.data.gouv.fr.
- `source` (string): Data source name and licence.
- `sourceUrl` (string): Source API URL used for this row.
- `fetchedAt` (string): When the Actor read the source, ISO 8601 UTC.

## Input settings

- `identifiers` (array): Exact lookup of up to 100 French company numbers: SIREN (9 digits, e.g. 552081317), SIRET (14 digits, e.g. 55208131766522) or French VAT number (FR + 2 characters + SIREN, e.g. FR03552081317). Spaces, dots and dashes are ignored; duplicates are looked up once. Never a fuzzy name match. Leave empty to run a name search instead.
- `query` (string): Fuzzy full-text search on company names, brands, acronyms and addresses, e.g. boulangerie or Michelin. 3–200 characters (shorter is allowed with a filter). Cannot be combined with identifiers (the run is rejected with INVALID_INPUT). Results are ranked by the source: check siren and name before treating one as a verified match.
- `departments` (array): Search filter, not combinable with identifiers. Up to 20 French department codes: 01–95, 2A, 2B, 971–976, e.g. 75 or 69. Keeps companies with at least one establishment there. Default: empty (all of France).
- `postalCodes` (array): Search filter, not combinable with identifiers. Up to 20 five-digit postal codes, e.g. 75008. Keeps companies with at least one establishment there. Default: empty.
- `nafCodes` (array): Search filter, not combinable with identifiers. Up to 20 NAF rev. 2 activity codes, with or without the dot, e.g. 62.01Z or 6201Z. Unknown codes and NAF 2025 codes are rejected with INVALID_INPUT. Default: empty.
- `companyStatus` (string): Search filter on company status: any (default), active or ceased. Active or ceased cannot be combined with identifiers.
- `maxResults` (integer): Search mode only. Maximum companies returned, 1–100. Default 25. Each company row is charged.
- `includeEstablishments` (boolean): Add one row per establishment (SIRET: address, status, head-office flag, NAF, trade names). For identifiers: the head office plus establishments listed by the source; for a search: the establishments that matched the search. Default false. Each found establishment row is charged.
- `maxEstablishmentsPerCompany` (integer): Maximum establishment rows per company, 1–100. Default 20. The company row shows establishmentsTotal and establishmentsComplete so you know when the list is a subset. Used only with includeEstablishments.

## Step by step on Apify

1. Open the Input tab. The form already has three SIREN numbers: EDF, TotalEnergies and LVMH.
2. Click Start.
3. Open the Companies view in the Output tab. Check `name`, `administrativeStatus` and `headOfficeAddress`.
4. Replace the numbers with your own list (up to 100). Turn on Include establishments if you need SIRET rows.

## Use cases

| Task | Input | You get | Key fields |
|---|---|---|---|
| Verify a company (KYB) | `identifiers` | company row | `status`, `administrativeStatus`, `closureDate`, `legalFormLabel` |
| Clean CRM records | `identifiers` (SIREN, SIRET or VAT) | company row | `name`, `vatNumber`, `nafCode`, `headOfficeAddress` |
| Map a company's sites | `identifiers` + `includeEstablishments` | establishment rows | `siret`, `address`, `administrativeStatus`, `isHeadOffice` |
| Prospect list by area and activity | `query` + `departments` / `nafCodes` | company rows | `name`, `employeeRangeLabel`, `companyCategory`, `searchRank` |

## Tips

- Use SIREN or SIRET for checks. Name search is fuzzy.
- A SIRET also returns that one establishment of the company.
- Spaces, dots and dashes in numbers are fine. The tool removes them.

## Limits



- Up to 100 identifiers per run, or up to 100 companies per search.
- Up to 100 establishments per company. The source cannot list more. Check `establishmentsComplete`: in our test of 100 transport companies, 96 had their full list.
- In search mode, establishments are the ones that matched your search or filters, not all establishments of the company.
- The Actor sends at most about 3 requests per second. The source allows 7 per second per IP and shares a limit across cloud providers, so a busy moment can give `RATE_LIMITED` rows. Run them again later.
- Internal time budget is 240 seconds. 100 identifiers with establishments took 94 seconds in our test.
- `naf2025Code` is a temporary field of the source. The source says it may be removed after 2027-01-01.

## Sample result

```json
{
  "recordType": "company",
  "status": "complete",
  "input": "552100554",
  "matchedBy": "siren_exact",
  "siren": "552100554",
  "name": "PEUGEOT SA",
  "legalFormLabel": "SA à directoire (s.a.i.)",
  "nafCode": "70.10Z",
  "nafVersion": "NAFRev2",
  "naf2025Code": null,
  "administrativeStatus": "ceased",
  "creationDate": "1955-01-01",
  "closureDate": "2021-01-16",
  "vatNumber": null,
  "establishmentsTotal": 5,
  "establishmentsOpen": 0,
  "headOfficeSiret": "55210055400054",
  "headOfficeCity": "VELIZY-VILLACOUBLAY",
  "headOfficeStatus": "closed",
  "annuaireUrl": "https://annuaire-entreprises.data.gouv.fr/entreprise/552100554",
  "sourceUpdatedAt": "2026-10-08T09:06:03"
}
```

## Use it from code

Actor ID: `cliqtomedia/france-sirene-company-search`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/france-sirene-company-search").call(run_input={
    "identifiers": [
        "552081317",
        "542051180",
        "775670417"
    ],
    "companyStatus": "any"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~france-sirene-company-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"identifiers": ["552081317", "542051180", "775670417"], "companyStatus": "any"}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/france-sirene-company-search")
result = tool.invoke({"run_input": {"identifiers": ["552081317", "542051180", "775670417"], "companyStatus": "any"}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Lead lists from public data](https://cliqtomedia.com/actors/use-cases/lead-generation/): Build lists of companies and contacts from public sites. Check emails and phones before you send.

## Similar tools

- [Website Contact Scraper](https://cliqtomedia.com/actors/website-contacts-scraper/)
- [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://cliqtomedia.com/actors/email-verifier/)
- [Domain WHOIS (RDAP) & DNS Lookup, No Login](https://cliqtomedia.com/actors/domain-whois-dns-lookup/)
- [EU VAT Number Validator (VIES) - Bulk Check, No Login](https://cliqtomedia.com/actors/vat-number-validator/)
- [Europages Scraper: B2B Suppliers & Certificates (No Login)](https://cliqtomedia.com/actors/europages-companies-scraper/)
- [Norway Company Register (Brreg) & Updates](https://cliqtomedia.com/actors/norway-brreg-company-register/)
