# 🇫🇷 France Companies Search — SIRENE & RNE (free, keyless) (`nexgendata/france-pappers-companies`) Actor

Search French RCS / INSEE / SIRENE via Pappers API. SIREN, SIRET, NAF code, SARL/SAS/SA/EURL/SCI, incorporation date, capital EUR, registered office, directors. KYC, M\&A, lead-gen — Infogreffe / Societe.com / BvD Orbis alt.

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

## Pricing

from $80.00 / 1,000 companies

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/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

## 🇫🇷 France Companies Search — SIRENE & RNE (free, keyless)

**Search ~10 million French companies and sole traders straight from France's official open-data registry — SIREN, SIRET, NAF/APE codes, directors, addresses, and status — completely free, no API key, no subscription.**

---

### What this actor does

France Companies Search is a structured-data actor that turns France's official national business registry into clean, ready-to-use JSON. Point it at a company name, a SIREN number, a department, or an industry code, and it returns fully normalized company records — legal identity, headquarters, industry classification, workforce band, directors, establishment counts, and registration status.

It is powered entirely by France's **free, keyless government open-data API** (`recherche-entreprises.api.gouv.fr`), which aggregates three primary sources maintained by the French state:

- **INSEE SIRENE** — the national directory of businesses and their establishments, the authoritative source for SIREN/SIRET identifiers, NAF/APE activity codes, workforce bands, and addresses.
- **RNE (Registre National des Entreprises)** — the National Business Register operated by INPI, the legal register that records company officers, directors, and corporate acts.
- **BODACC** — the official bulletin of civil and commercial announcements (incorporations, changes, insolvency proceedings, dissolutions).

France is the second-largest economy in the European Union, with millions of registered legal entities ranging from listed groups to artisans and micro-entrepreneurs. Every one of them carries a SIREN — a unique nine-digit legal identifier — and every establishment carries a fourteen-digit SIRET. Because the underlying data is published as open government data, you get the *same registry facts* that paid French business-intelligence vendors resell, without the gatekeeping. This actor handles the querying, pagination, and normalization so you receive analysis-ready records instead of raw API noise.

Whether you are building a B2B prospecting list, running KYB checks on a French counterparty, sourcing newly-incorporated startups for a fund, or simply verifying that a supplier is a real, active legal entity, this actor gives you primary-source company data on demand.

---

### Why use this

- **Official primary source.** Data flows from INSEE SIRENE, the INPI-operated RNE, and BODACC — the registries the French state itself maintains. This is not a scraped third-party copy; it is the registry of record.
- **Free and keyless.** The underlying government API requires no API key, no account, and no paid plan. You only pay the actor's per-result usage on Apify.
- **The identifiers that matter.** Every record includes SIREN (the entity), SIRET of the head office (the establishment), and NAF/APE industry codes — the keys you need to join, deduplicate, and enrich against any other French dataset.
- **Directors and officers.** Where the RNE publishes them, you get named directors with their roles and whether they are individuals or legal persons.
- **Queryable the way you actually search.** Filter by company name, exact SIREN, department code, NAF/APE industry, and incorporation date window — plus a workforce/dormancy toggle and a result cap.
- **JSON-native and pipeline-ready.** Normalized field names, consistent types, and an Apify dataset you can pull via API, webhook, or integration into your warehouse, CRM, or spreadsheet.

---

### What you get

Each company record is a flat, normalized JSON object. The fields returned per company are:

| Field | Description |
|---|---|
| `name` | Registered legal name (dénomination) of the company. |
| `siren` | Nine-digit SIREN — the unique legal identifier for the entity. |
| `siret_siege` | Fourteen-digit SIRET of the head-office establishment (siège social). |
| `legal_form_code` | INSEE legal-form code (catégorie juridique). |
| `legal_form` | Human-readable legal form (e.g. SA, SAS, SARL, EI). |
| `naf_code` | NAF/APE activity code identifying the principal industry. |
| `activity_section` | High-level activity section the NAF code belongs to. |
| `creation_date` | Date the entity was registered (incorporation date). |
| `company_category` | INSEE size category (e.g. PME, ETI, GE). |
| `employee_band_code` | INSEE workforce-band code (tranche d'effectifs). |
| `employee_band` | Human-readable employee range for the entity. |
| `status` | `active` or `ceased` — whether the entity is still operating. |
| `is_employer` | Whether the entity is registered as an employer. |
| `headquarters_address` | Full formatted head-office address. |
| `street` | Street component of the head-office address. |
| `postal_code` | Postal code of the head office. |
| `city` | City (commune) of the head office. |
| `department_code` | Two/three-character French department code. |
| `establishments_total` | Total number of establishments registered under the SIREN. |
| `establishments_open` | Number of currently open establishments. |
| `directors` | Array of officers — each `{name, role, type}`. |
| `last_financials_year` | Most recent year for which financial accounts are referenced. |
| `date_updated` | Date the registry record was last updated. |
| `data_source` | Provenance string identifying the official open-data source. |
| `source_url` | Link to the public entity page on the official annuaire. |

Empty or unpublished fields are returned consistently so your downstream parsing never breaks on missing keys.

---

### Use cases

- **B2B lead generation & sales prospecting into France.** Build targeted prospect lists by industry (NAF/APE) and region (department), then enrich each lead with SIREN, head-office address, workforce band, and named directors for outreach and routing.
- **KYB & due diligence.** Verify that a French counterparty exists, is active (not ceased), is the legal entity it claims to be, and identify its registered officers — the core checks behind onboarding and Know-Your-Business workflows.
- **VC & PE deal-sourcing.** Use the `createdAfter` / `createdBefore` window to surface newly-incorporated companies in a given sector and geography — an automated radar for fresh startups before they hit the headlines.
- **Competitive & market research.** Map every company under a NAF code in a department to size a market, count competitors, and track new entrants and exits over time.
- **Supplier & vendor verification.** Confirm a supplier's legal status, head-office location, and establishment count before signing or paying — catch dormant shells and ceased entities early.
- **Sales territory & account enrichment.** Append SIREN/SIRET, legal form, and directors to existing CRM records keyed on company name so your reps work from clean, deduplicated French accounts.
- **Journalism, research & investigations.** Trace ownership and officers, follow incorporations and dissolutions, and build datasets of French entities for academic or investigative work from a citable official source.
- **Compliance & sanctions screening prep.** Pull canonical entity identifiers and officer names as the matching layer feeding your screening pipeline.

---

### Sample output

```json
{
  "name": "CARREFOUR",
  "siren": "652014051",
  "siret_siege": "65201405100454",
  "legal_form": "SA",
  "naf_code": "70.10Z",
  "creation_date": "1965-01-01",
  "status": "active",
  "headquarters_address": "93 AVENUE DE PARIS, 91300, MASSY",
  "city": "MASSY",
  "department_code": "91",
  "directors": [
    {
      "name": "Alexandre Bompard",
      "role": "Président directeur général",
      "type": "personne physique"
    }
  ],
  "data_source": "French government open data — recherche-entreprises.api.gouv.fr (INSEE SIRENE + RNE + BODACC)",
  "source_url": "https://annuaire-entreprises.data.gouv.fr/entreprise/652014051"
}
````

***

### Input parameters

| Field | Type | Description | Example |
|---|---|---|---|
| `searchQuery` | string | Free-text company name to search for. | `Carrefour` |
| `siren` | string | Exact nine-digit SIREN to fetch a single entity. | `652014051` |
| `department` | string | Two/three-digit French department code to restrict results. | `75` (Paris) |
| `nafCode` | string | NAF/APE industry code to filter by activity. | `4711F` (hypermarkets) |
| `createdAfter` | string (YYYY-MM-DD) | Only return entities incorporated on or after this date. | `2024-01-01` |
| `createdBefore` | string (YYYY-MM-DD) | Only return entities incorporated on or before this date. | `2024-12-31` |
| `includeDormant` | boolean | Include dormant / non-active entities in results. | `false` |
| `maxResults` | integer (1–1000) | Maximum number of company records to return. | `100` |

All inputs are optional and combine as filters — supply a name to search, a SIREN to look up one entity exactly, or any combination of department, industry, and date window to slice the registry.

***

### How to use it

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run_input = {
    "searchQuery": "Carrefour",
    "department": "91",
    "nafCode": "70.10Z",
    "createdAfter": "1960-01-01",
    "includeDormant": False,
    "maxResults": 100,
}

run = client.actor("france-pappers-companies").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["siren"], item["name"], item["status"], item["city"])
```

#### cURL (`run-sync-get-dataset-items`)

```bash
curl -X POST "https://api.apify.com/v2/acts/france-pappers-companies/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQuery": "Carrefour",
    "department": "91",
    "nafCode": "70.10Z",
    "includeDormant": false,
    "maxResults": 100
  }'
```

The `run-sync-get-dataset-items` endpoint runs the actor and returns the dataset items in a single response — ideal for lightweight integrations, no-code tools, and quick lookups.

***

### Pricing

This actor uses a **pay-per-result** model: you are charged per company record returned in the dataset. There is no monthly subscription, no seat licensing, and no minimum commitment — if a run returns nothing, you pay nothing.

**Worked example.** Suppose you want every active company under NAF code `4711F` (hypermarkets) in department `75` (Paris). You set `maxResults` to `200` and the run returns `180` company records. You are billed for **180 results** — exactly the rows you received and can use. Run it again next month to catch new incorporations and you only pay for that run's results.

Because the underlying government data source is free and keyless, the per-result price reflects the querying, pagination, normalization, and delivery the actor performs — not a data-licensing markup. That makes one-off lookups cheap and large pulls predictable: estimate cost simply as *results returned × per-result rate*.

***

### How this compares to Pappers / Societe.com / Infogreffe / Dun & Bradstreet

| | This actor | Typical paid French BI portals & D\&B |
|---|---|---|
| Underlying data | Official INSEE SIRENE + RNE + BODACC | Same official registries, often resold |
| Access model | Free-sourced, **keyless** | API keys, accounts, gated tiers |
| Commercial model | Pay-per-result, no subscription | Subscriptions, credit packs, seat fees |
| Output | JSON-native, normalized, pipeline-ready | Mixed JSON / portal UI / report exports |
| Identifiers | SIREN, SIRET, NAF/APE, directors | Same registry identifiers |

The honest version: **the registry facts are the same**, because everyone ultimately draws on INSEE SIRENE, the INPI-run RNE, and BODACC. Societe.com, Infogreffe, and similar portals layer subscriptions, dashboards, and report products on top; Dun & Bradstreet wraps French registry data into a global proprietary identifier and a paid platform. This actor's difference is in *access and packaging*: it pulls from the free, keyless official open-data endpoint, charges only for the records you actually use, returns clean JSON instead of a portal you have to scrape or a PDF you have to parse, and never asks you to manage a credential or commit to a plan. If you already pay for a French data subscription and need its proprietary scoring or accounts depth, keep it — if you need clean, current registry records on a usage basis, this is the leaner path.

***

### FAQ

**Do I need an API key for the data source?**
No. The underlying French government open-data API is free and keyless. You only need your standard Apify token to run the actor on the platform.

**How fresh is the data?**
Records reflect the official registries (INSEE SIRENE, RNE, BODACC), which are maintained and updated by the French state on an ongoing basis. Each record carries a `date_updated` field so you can see when the registry last revised it.

**What is the difference between SIREN and SIRET?**
SIREN is the nine-digit identifier for the *legal entity* (the company itself). SIRET is a fourteen-digit identifier for a specific *establishment* of that entity — the SIREN plus a five-digit establishment suffix. This actor returns the entity's SIREN and the SIRET of its head office (`siret_siege`), along with total and open establishment counts.

**Can I filter by department, industry, or incorporation date?**
Yes. Use `department` for a French department code, `nafCode` for a NAF/APE industry code, and `createdAfter` / `createdBefore` to bound the incorporation date. These combine, so you can ask for, say, all companies in a sector and region incorporated within a date window.

**Are directors and officers included?**
Yes, where the RNE publishes them. The `directors` array contains each officer's `name`, `role` (e.g. Président directeur général), and `type` (individual or legal person).

**Can I include dormant companies?**
By default the actor focuses on active entities. Set `includeDormant` to `true` to bring dormant and non-active entities into the results. The `status` field on each record (`active` / `ceased`) lets you split them downstream.

**How many results can one run return?**
Set `maxResults` anywhere from 1 to 1000 per run. For larger harvests, run multiple queries sliced by department, industry, or date window.

***

### Compliance & legal

The data returned by this actor originates from **France's official open government data** — INSEE SIRENE, the INPI-operated RNE, and BODACC — published for reuse under France's open data licensing. These are public registries of legal entities, designed to be transparent and accessible.

This actor is intended for legitimate informational, commercial-research, due-diligence, and compliance-support purposes. You remain responsible for using the data in line with applicable law, including data-protection rules where personal data (such as named directors) is involved, and for any onward processing or storage. Registry data describes legal entities and the public officers attached to them; it is provided as-is from the official source and should be corroborated for high-stakes decisions.

***

### Related actors

- [Gleif Lei Entity Resolution](https://apify.com/nexgendata/gleif-lei-entity-resolution?fpr=2ayu9b)
- [Delaware Corporations Search Scraper](https://apify.com/nexgendata/delaware-corporations-search-scraper?fpr=2ayu9b)
- [UK Companies House Officers](https://apify.com/nexgendata/uk-companies-house-officers?fpr=2ayu9b)
- [Business Registration Lookup](https://apify.com/nexgendata/business-registration-lookup?fpr=2ayu9b)
- [Hk Companies Registry](https://apify.com/nexgendata/hk-companies-registry?fpr=2ayu9b)

Building company-registry coverage across markets? Pair this actor with other NexGenData entity-data actors:

- **GLEIF LEI Entity Resolution** — resolve and validate Legal Entity Identifiers (LEIs) globally; the cross-border key for joining French SIRENs to international counterparties.
- **UK Companies House Company Search** — official UK registry data: company numbers, officers, filing status, and addresses.
- **India MCA Companies** — Ministry of Corporate Affairs company data for Indian entities — CIN, directors, and registration details.
- **Australia ASIC Company Search** — Australian Securities & Investments Commission company records, ABN/ACN identifiers, and status.

Use them together to build a unified, multi-jurisdiction company-intelligence pipeline keyed on official registry identifiers.

# Actor input Schema

## `searchQuery` (type: `string`):

Free-text company name search (matches company legal name, trade name, or representative name). Examples: 'Carrefour', 'LVMH', 'Total Energies'. The official French registry search covers across the entire SIRENE / INSEE / RCS universe (~10M French companies + sole traders). Leave empty if you are looking up a specific SIREN.

## `siren` (type: `string`):

Optional. Exact 9-digit SIREN identifier (e.g. '652014051' for Carrefour SA). If provided, returns the single matching company record and ignores the search query. SIREN is the canonical INSEE legal-entity ID; SIRET = SIREN + 5-digit establishment suffix.

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

2- or 3-digit French department code (75 = Paris, 69 = Rhône, 13 = Bouches-du-Rhône, 33 = Gironde, 92 = Hauts-de-Seine, 974 = La Réunion). Restricts results to companies whose registered office (siège social) is in the specified department. Leave empty for national coverage.

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

NAF Rev 2 code (4-digit + 1 letter, e.g. '4711F' for hypermarkets, '6201Z' for software publishing, '7022Z' for management consulting). Maps to NACE Rev 2 at the 4-digit level. Leave empty to skip the industry filter.

## `createdAfter` (type: `string`):

Filter companies incorporated on or after this date. ISO 8601 (YYYY-MM-DD). Useful for VC deal-sourcing on newly registered French startups.

## `createdBefore` (type: `string`):

Filter companies incorporated on or before this date. ISO 8601 (YYYY-MM-DD).

## `includeDormant` (type: `boolean`):

By default the actor returns only ACTIVE companies (etablissements en activité). Set to true to also include radiated (radiée), dormant, or struck-off entries — useful for historical due-diligence on shell companies or M\&A targets that have since been wound up.

## `maxResults` (type: `integer`):

Hard cap on companies returned (and metered for billing). Default 25. the French government open-data API API paginates 20 results per page; the actor follows pagination up to this cap.

## Actor input object example

```json
{
  "searchQuery": "Carrefour",
  "siren": "",
  "department": "",
  "nafCode": "",
  "createdAfter": "",
  "createdBefore": "",
  "includeDormant": false,
  "maxResults": 10
}
```

# 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 = {
    "searchQuery": "Carrefour",
    "includeDormant": false,
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/france-pappers-companies").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 = {
    "searchQuery": "Carrefour",
    "includeDormant": False,
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/france-pappers-companies").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 '{
  "searchQuery": "Carrefour",
  "includeDormant": false,
  "maxResults": 10
}' |
apify call nexgendata/france-pappers-companies --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇫🇷 France Companies Search — SIRENE & RNE (free, keyless)",
        "description": "Search French RCS / INSEE / SIRENE via Pappers API. SIREN, SIRET, NAF code, SARL/SAS/SA/EURL/SCI, incorporation date, capital EUR, registered office, directors. KYC, M&A, lead-gen — Infogreffe / Societe.com / BvD Orbis alt.",
        "version": "0.0",
        "x-build-id": "MlkhSHRy0Nv8cipHI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~france-pappers-companies/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-france-pappers-companies",
                "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/nexgendata~france-pappers-companies/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-france-pappers-companies",
                "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/nexgendata~france-pappers-companies/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-france-pappers-companies",
                "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": {
                    "searchQuery": {
                        "title": "Company name search",
                        "type": "string",
                        "description": "Free-text company name search (matches company legal name, trade name, or representative name). Examples: 'Carrefour', 'LVMH', 'Total Energies'. The official French registry search covers across the entire SIRENE / INSEE / RCS universe (~10M French companies + sole traders). Leave empty if you are looking up a specific SIREN.",
                        "default": ""
                    },
                    "siren": {
                        "title": "SIREN (9-digit French company ID)",
                        "type": "string",
                        "description": "Optional. Exact 9-digit SIREN identifier (e.g. '652014051' for Carrefour SA). If provided, returns the single matching company record and ignores the search query. SIREN is the canonical INSEE legal-entity ID; SIRET = SIREN + 5-digit establishment suffix.",
                        "default": ""
                    },
                    "department": {
                        "title": "Department / region filter (optional)",
                        "type": "string",
                        "description": "2- or 3-digit French department code (75 = Paris, 69 = Rhône, 13 = Bouches-du-Rhône, 33 = Gironde, 92 = Hauts-de-Seine, 974 = La Réunion). Restricts results to companies whose registered office (siège social) is in the specified department. Leave empty for national coverage.",
                        "default": ""
                    },
                    "nafCode": {
                        "title": "NAF / APE code filter (optional)",
                        "type": "string",
                        "description": "NAF Rev 2 code (4-digit + 1 letter, e.g. '4711F' for hypermarkets, '6201Z' for software publishing, '7022Z' for management consulting). Maps to NACE Rev 2 at the 4-digit level. Leave empty to skip the industry filter.",
                        "default": ""
                    },
                    "createdAfter": {
                        "title": "Created after (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Filter companies incorporated on or after this date. ISO 8601 (YYYY-MM-DD). Useful for VC deal-sourcing on newly registered French startups.",
                        "default": ""
                    },
                    "createdBefore": {
                        "title": "Created before (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Filter companies incorporated on or before this date. ISO 8601 (YYYY-MM-DD).",
                        "default": ""
                    },
                    "includeDormant": {
                        "title": "Include dormant / ceased companies",
                        "type": "boolean",
                        "description": "By default the actor returns only ACTIVE companies (etablissements en activité). Set to true to also include radiated (radiée), dormant, or struck-off entries — useful for historical due-diligence on shell companies or M&A targets that have since been wound up.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on companies returned (and metered for billing). Default 25. the French government open-data API API paginates 20 results per page; the actor follows pagination up to this cap.",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
