# France Company Search — SIREN, Directors & Revenue (SIRENE) (`intelscrape/france-company-search`) Actor

France Company Search: find French companies by name, activity, NAF code, postcode, department or size in the official SIRENE / RNE register, with SIREN, SIRET, address, employees, directors, revenue, net income and VAT number. Bulk lead lists. No API key. Pay per company.

- **URL**: https://apify.com/intelscrape/france-company-search.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## France Company Search — SIREN, Directors & Revenue (SIRENE)

![France Company Search — SIREN, Directors & Revenue (SIRENE)](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/france-company-search-banner.png)

🇨🇳 **法国企业搜索**：在官方 SIRENE / RNE 登记库中按名称、行业、NAF 代码、邮编、省份或规模查找法国公司，返回 SIREN、SIRET、地址、员工规模、董事/负责人、营业额、净利润和增值税号。批量生成销售线索，无需 API 密钥，按公司付费。

🇸🇬 **Carian Syarikat Perancis**: cari syarikat Perancis mengikut nama, aktiviti, kod NAF, poskod atau saiz dalam daftar rasmi SIRENE, dengan SIREN, alamat, pekerja, pengarah, hasil dan nombor VAT. Tiada kunci API.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%243%20per%201K%20companies-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20company-green) ![source](https://img.shields.io/badge/source-official%20SIRENE-brightgreen) ![API key](https://img.shields.io/badge/API%20key-not%20required-orange)

**Official French company data (SIREN, address, activity, size, directors, revenue, VAT) by name or filters, as clean lead rows.**

> **Honest coverage & billing:** The public API is limited to about 7 requests per second; very large pulls take a few minutes. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is France Company Search?

France publishes its company register as open data: every company's SIREN, head office, activity code, headcount band, directors and, for many, revenue and net income. **France Company Search** queries the official government search API so you can build targeted French B2B lead lists, by trade, postcode, department, size or revenue, or enrich a list of SIREN numbers, without scraping and without a paid data provider.

### What does it do?

- **Search by anything**: company name, SIREN or SIRET, director name or activity words
- **Filters**: postal code, department, region, NAF/APE code, employee band, SME/ETI/GE category, active only, minimum revenue
- **Identity**: SIREN, head-office SIRET, legal name, acronym, legal form code, creation and closure dates
- **Activity and size**: NAF code, sector, headcount band and year, number of establishments
- **Location**: full head-office address, postcode, city, department, region, latitude and longitude
- **Directors, revenue & VAT (on by default)**: directors with role and birth year, latest revenue and net income, intra-EU VAT number, labels such as ESS, RGE or organic
- **Up to 10,000 companies per query**

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **B2B prospecting in France**: every bakery in Lyon, every software company with 50+ staff in Ile-de-France
- **KYB and onboarding**: verify a SIREN, status and directors
- **CRM enrichment**: add VAT, headcount and revenue to French accounts
- **Market sizing** by NAF code and region
- **Recruiting and partnerships**: find growing mid-size companies
- **Pair with Sanctions Screening** to check directors

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~france-company-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["boulangerie"], "postalCode": "75011", "maxResultsPerQuery": 50}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/france-company-search").call(run_input={"queries": ["boulangerie"], "postalCode": "75011", "maxResultsPerQuery": 50})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/france-company-search with the default input and summarise the results."*

### Input examples

**Bakeries in Paris 11e (default)**

```json
{
  "queries": ["boulangerie"],
  "postalCode": "75011",
  "maxResultsPerQuery": 50
}
```

**Software companies, 50-99 staff, Lyon area**

```json
{
  "queries": [],
  "nafCode": "62.01Z",
  "department": "69",
  "sizeBand": "21",
  "maxResultsPerQuery": 500
}
```

**Enrich a list of SIREN numbers**

```json
{
  "queries": ["306138900", "552032534"],
  "activeOnly": false,
  "maxResultsPerQuery": 1
}
```

### Output fields

| Field | Description |
|---|---|
| `siren / siret / name / legalName / acronym` | Identity |
| `status / createdOn / closedOn / legalFormCode` | Legal status |
| `nafCode / sector / companyCategory / employeeBand / employeeBandYear` | Activity and size |
| `establishments / openEstablishments` | Number of sites |
| `address / postalCode / city / department / region / latitude / longitude` | Head office |
| `vatNumber` | Intra-EU VAT number |
| `directors[]` | person: firstNames, lastName, role, birthYear; or company: name, siren, role |
| `revenueEur / netIncomeEur / financialYear` | Latest published accounts |
| `labels / collectiveAgreements` | Official labels and IDCC codes |
| `matchedSite` | The establishment that matched your location filter (siret, address, open?), which can differ from the head office |
| `annuaireUrl` | Official company page |

#### Sample output

```json
{
  "siren": "306138900",
  "name": "DECATHLON",
  "status": "active",
  "nafCode": "68.20B",
  "companyCategory": "Large enterprise",
  "address": "4 BOULEVARD DE MONS 59650 VILLENEUVE-D'ASCQ",
  "vatNumber": "FR51306138900",
  "revenueEur": 16868995000,
  "netIncomeEur": 845133000,
  "financialYear": 2025,
  "directors": [
    { "type": "person", "firstNames": "FABIEN GASTON RENE", "lastName": "BROSSE", "role": "Directeur général délégué", "birthYear": 1976 }
  ]
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Company** | per company row | $0.002 |
| **Directors & finances** | per company with directors, revenue and VAT added (on by default; turn off to skip) | $0.001 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 50 bakeries | $0.155 |
| 5,000 companies with directors | $15.005 |
| 10,000 companies, identity only | $20.005 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Use NAF codes for precise trade targeting; activity words also work but are broader.
- Combine department and sizeBand to build territory lists.
- Revenue is only present when the company publishes its accounts.
- Pair with a website contact scraper to add emails and phones.
- Location filters match any establishment; matchedSite shows the local branch when the head office is elsewhere.

### FAQ

#### Where does the data come from?

The official French government company search API (INSEE SIRENE and INPI RNE), updated daily.

#### Are emails or phones included?

No, the register does not publish them.

#### Why is revenue empty for some companies?

Many small companies file confidential accounts.

#### Is personal data included?

Only what the official register publishes for directors (name, role, birth month/year). Use it lawfully under GDPR.

#### Can I search by SIREN?

Yes, put SIREN or SIRET numbers in queries.

#### Do I need a key?

No.

### Honest limits

- The public API is limited to about 7 requests per second; very large pulls take a few minutes.
- Companies that opted out of public diffusion show limited data.
- Results per query are capped at 10,000.
- Revenue reflects the latest published year only.

### Related IntelScrape bots

- [Sanctions Screening](https://apify.com/intelscrape/sanctions-screening): OFAC SDN name matching
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [Tech Stack Detector](https://apify.com/intelscrape/tech-stack-detector): CMS, analytics & frameworks per domain
- [Email Verifier](https://apify.com/intelscrape/email-verifier): check if emails are deliverable
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `queries` (type: `array`):

Company names, SIREN/SIRET numbers, director names or activity words (e.g. "boulangerie", "agence web"). Leave empty to use only filters.

## `postalCode` (type: `string`):

e.g. 75011. Comma-separate several.

## `department` (type: `string`):

e.g. 69 or 13. Comma-separate several.

## `region` (type: `string`):

INSEE region code, e.g. 11 = Ile-de-France, 84 = Auvergne-Rhone-Alpes.

## `nafCode` (type: `string`):

e.g. 62.01Z (software), 10.71C (bakery), 56.10A (restaurants).

## `sizeBand` (type: `string`):

Headcount band (INSEE).

## `companyCategory` (type: `string`):

INSEE size category.

## `activeOnly` (type: `boolean`):

Skip closed companies.

## `minRevenue` (type: `integer`):

Only companies with published revenue above this.

## `maxResultsPerQuery` (type: `integer`):

Cap per query.

## `includeDirectorsAndFinances` (type: `boolean`):

Add directors (name, role, birth year), latest revenue and net income, VAT number and labels. Charged per company.

## `proxyConfiguration` (type: `object`):

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "queries": [
    "boulangerie"
  ],
  "postalCode": "75011",
  "department": "",
  "region": "",
  "nafCode": "",
  "sizeBand": "any",
  "companyCategory": "any",
  "activeOnly": true,
  "minRevenue": 0,
  "maxResultsPerQuery": 50,
  "includeDirectorsAndFinances": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "queries": [
        "boulangerie"
    ],
    "includeDirectorsAndFinances": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/france-company-search").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 = {
    "queries": ["boulangerie"],
    "includeDirectorsAndFinances": True,
}

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

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "boulangerie"
  ],
  "includeDirectorsAndFinances": true
}' |
apify call intelscrape/france-company-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/france-company-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Ar7cdcAweaZKtQLSb/builds/Be5aA0XjriBuZRxcA/openapi.json
