# France Company Search Scraper (SIREN, Officers, Finances) (`scrapers_lat/france-company-search-scraper`) Actor

Search French companies by name, NAF, department or status and export SIREN/SIRET, legal form, officers and finances as JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/france-company-search-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<!-- actor-banner -->
[![France Company Search Scraper (SIREN, Officers, Finances)](https://scrapers.lat/banners/france-company-search-scraper.png)](https://console.apify.com/actors/u0Pu1qsmISfcIbyYy/input)
<!-- /actor-banner -->

## France Company Search Scraper

> Extract French company records (SIREN, SIRET, officers and finances) from the official government registry covering every one of France's 30+ million registered businesses

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-France-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>27 fields</strong><br>per record</td>
<td align="center"><strong>France</strong><br>coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-27</td>
</tr></table>

<br>

### What you get

Each record is one French company drawn from the official Sirene and Registre National des Entreprises bases, with its identifiers, head office, officers and headline finances, ready for lead generation, enrichment or due diligence.

- **siren**: 9 digit national company identifier
- **name**: full legal name (nom complet)
- **nomRaisonSociale**: registered corporate name
- **sigle**: company acronym when declared
- **legalFormCode**: INSEE legal form code (categorie juridique)
- **legalForm**: readable legal form label (SAS, SARL, SCI and more)
- **activitePrincipale**: main NAF / APE activity code
- **activitePrincipaleNaf25**: activity code in the 2025 NAF revision
- **sectionActivite**: top level activity section letter
- **dateCreation**: company creation date
- **etatAdministratif**: raw administrative status code (A or C)
- **etatAdministratifLabel**: readable status (Active or Ceased)
- **categorieEntreprise**: INSEE size category code (PME, ETI, GE)
- **categorieEntrepriseLabel**: readable size (SME, mid-size, large enterprise)
- **employeeRangeCode**: INSEE headcount band code
- **employeeRange**: readable employee headcount band
- **anneeEffectif**: reference year of the headcount band
- **siretSiege**: 14 digit SIRET of the head office establishment
- **numeroTva**: intra-community VAT number
- **address**: head office address with street, postal code, city, department, region and coordinates
- **nombreEtablissements**: total establishments under the company
- **nombreEtablissementsOuverts**: number of open establishments
- **dirigeants**: officers and representatives with name, role, birth year and SIREN for corporate officers
- **finances**: latest filed turnover (ca) and net income (resultatNet) with the financial year
- **dateMiseAJour**: last update date of the company record at source
- **observedAt**: when this record was last seen by the scraper

### Who is it for

| Use case | Who benefits |
|---|---|
| Building B2B prospect lists by activity and region | Sales and lead generation teams |
| Enriching a CRM with SIREN, VAT and legal form | Revenue operations teams |
| Screening suppliers and partners before contracting | Procurement and compliance teams |
| Mapping officers and corporate structures | Due diligence and KYC analysts |
| Market sizing by sector, size and headcount | Analysts and researchers |

### Frequently Asked Questions

**Which French companies does this scraper cover?**
It covers the entire official French company base, more than 30 million active and ceased entities from the INSEE Sirene register and the Registre National des Entreprises. Sole traders, companies, associations and public bodies are all included.

**How many companies can I collect in one run?**
You set the limit with the Max items field. The registry matches large result sets, so you can collect thousands of companies per run, paged 25 at a time while staying within the source rate limits.

**Can I filter by industry or location?**
Yes. You can search by free text and combine it with filters for NAF / APE activity code, department, postal code, administrative status, company size category, employee headcount band and legal form code.

**Does every company include officers and finances?**
Officers (dirigeants) are present for almost all registered companies. Finances (turnover and net income) appear only when the company has filed accounts that are public, so small businesses and sole traders may not have them.

**What happens when a field is missing for a company?**
Fields that the source does not provide for a given company are returned as null rather than dropped, so the record shape stays consistent. If a request itself fails, the record carries an error message instead of company data.

<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [France Lyon Restaurants Directory](https://apify.com/scrapers_lat/france-company-search-scraper/examples/france-lyon-restaurants): Pull Lyon restaurant companies from the French registry with SIREN, address, officers and incorporation details.
- [France Paris Bakeries Directory](https://apify.com/scrapers_lat/france-company-search-scraper/examples/france-paris-bakeries): Export Paris bakery companies from the French business registry with SIREN, address, officers and activity code.
- [France Software SMEs](https://apify.com/scrapers_lat/france-company-search-scraper/examples/france-software-smes): Find French software SMEs with SIREN, registered address, directors and financial category for B2B prospecting.

<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [BCRA Argentina Debtor & Credit Risk Scraper](https://apify.com/scrapers_lat/bcra-deudores-scraper): Look up company and individual credit risk and debt status from Argentina's central bank.
- [DataJud Brazil Court Case Scraper](https://apify.com/scrapers_lat/datajud-scraper): Pull Brazilian court cases and litigation history for company background checks.
- [SCE/SEACE Peru Procurement Scraper](https://apify.com/scrapers_lat/seace-scraper): Extract Peruvian public procurement tenders and awarded suppliers.
- [MercadoLibre Product Listings Scraper](https://apify.com/scrapers_lat/mercadolibre-scraper): Collect product listings, prices and sellers from Latin America's largest marketplace.
- [Reddit Posts & Comments Scraper](https://apify.com/scrapers_lat/reddit-scraper): Gather posts and comment threads from any subreddit for research and monitoring.
- [YouTube Scraper](https://apify.com/scrapers_lat/youtube-scraper): Extract video metadata, channels and statistics from YouTube search and channels.

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).
<!-- /scrapers-lat-cta -->

---

> This actor is an independent tool and has no affiliation with the French government or INSEE. It only accesses data that is publicly available through the official open company-search service. Use it in accordance with the service's terms of use.

# Actor input Schema

## `maxItems` (type: `integer`):

Maximum number of company records to collect across all matching results. Optional.
## `q` (type: `string`):

Free-text search across company name, trade name, officers and addresses (for example "boulangerie", "conseil", a SIREN, or a founder name). Leave empty to list every company that matches the filters below.
## `activitePrincipale` (type: `string`):

Restrict to a single main activity (NAF / APE code, for example "10.71C" for bread production or "62.01Z" for software). Optional.
## `departement` (type: `string`):

Restrict to a French department by its 2 or 3 digit code (for example "75" for Paris, "13" for Bouches-du-Rhone, "2A" for Corse-du-Sud). Optional.
## `codePostal` (type: `string`):

Restrict to a single 5 digit postal code (for example "75001"). Optional.
## `etatAdministratif` (type: `string`):

Restrict to active or ceased companies. Leave as "Any status" to include all.
## `categorieEntreprise` (type: `string`):

Restrict to a single INSEE size category. Leave as "Any size" to include all.
## `trancheEffectif` (type: `string`):

Restrict to a single INSEE employee headcount band. Leave as "Any headcount" to include all.
## `natureJuridique` (type: `string`):

Restrict to a single INSEE legal form code (for example "5710" for SAS, "5499" for SARL, "6540" for SCI). Optional.

## Actor input object example

```json
{
  "maxItems": 10,
  "q": "boulangerie",
  "etatAdministratif": "",
  "categorieEntreprise": "",
  "trancheEffectif": ""
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "q": "boulangerie"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/france-company-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "q": "boulangerie",
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/france-company-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "q": "boulangerie"
}' |
apify call scrapers_lat/france-company-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/france-company-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "France Company Search Scraper (SIREN, Officers, Finances)",
        "description": "Search French companies by name, NAF, department or status and export SIREN/SIRET, legal form, officers and finances as JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "C7DQZjf92ku8N0rTz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~france-company-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-france-company-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~france-company-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-france-company-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~france-company-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-france-company-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of company records to collect across all matching results. Optional."
                    },
                    "q": {
                        "title": "Search text",
                        "type": "string",
                        "description": "Free-text search across company name, trade name, officers and addresses (for example \"boulangerie\", \"conseil\", a SIREN, or a founder name). Leave empty to list every company that matches the filters below."
                    },
                    "activitePrincipale": {
                        "title": "NAF / APE activity code",
                        "type": "string",
                        "description": "Restrict to a single main activity (NAF / APE code, for example \"10.71C\" for bread production or \"62.01Z\" for software). Optional."
                    },
                    "departement": {
                        "title": "Department code",
                        "type": "string",
                        "description": "Restrict to a French department by its 2 or 3 digit code (for example \"75\" for Paris, \"13\" for Bouches-du-Rhone, \"2A\" for Corse-du-Sud). Optional."
                    },
                    "codePostal": {
                        "title": "Postal code",
                        "type": "string",
                        "description": "Restrict to a single 5 digit postal code (for example \"75001\"). Optional."
                    },
                    "etatAdministratif": {
                        "title": "Administrative status",
                        "enum": [
                            "",
                            "A",
                            "C"
                        ],
                        "type": "string",
                        "description": "Restrict to active or ceased companies. Leave as \"Any status\" to include all.",
                        "default": ""
                    },
                    "categorieEntreprise": {
                        "title": "Company size category",
                        "enum": [
                            "",
                            "PME",
                            "ETI",
                            "GE"
                        ],
                        "type": "string",
                        "description": "Restrict to a single INSEE size category. Leave as \"Any size\" to include all.",
                        "default": ""
                    },
                    "trancheEffectif": {
                        "title": "Employee headcount band",
                        "enum": [
                            "",
                            "00",
                            "01",
                            "02",
                            "03",
                            "11",
                            "12",
                            "21",
                            "22",
                            "31",
                            "32",
                            "41",
                            "42",
                            "51",
                            "52",
                            "53"
                        ],
                        "type": "string",
                        "description": "Restrict to a single INSEE employee headcount band. Leave as \"Any headcount\" to include all.",
                        "default": ""
                    },
                    "natureJuridique": {
                        "title": "Legal form code",
                        "type": "string",
                        "description": "Restrict to a single INSEE legal form code (for example \"5710\" for SAS, \"5499\" for SARL, \"6540\" for SCI). Optional."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
