# France Company Check: SIREN status & insolvency (`westbrook_data/france-company-check`) Actor

Check French companies by SIREN: official status, activity, size and BODACC insolvency notices. Synthetic demo by default. / Contrôle par SIREN : statut, activité, effectif et procédures collectives BODACC.

- **URL**: https://apify.com/westbrook_data/france-company-check.md
- **Developed by:** [Lucas Rincent](https://apify.com/westbrook_data) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 company checkeds

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/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 Check: SIREN status + insolvency notices / Contrôle d'entreprise

Check a list of French companies by **SIREN** (or SIRET) and get, for each: official administrative status (active or ceased), activity code, size range, creation date, legal form, commune of the registered office, latest published financials and the **BODACC collective-proceedings notices** (insolvency) published in a window you choose. Official sources only, no scraping. Independent tool, unaffiliated with the French State, INSEE or DILA.

Contrôlez une liste d'entreprises françaises par **SIREN** (ou SIRET) : statut administratif officiel (active ou cessée), code d'activité, tranche d'effectif, date de création, forme juridique, commune du siège, derniers chiffres financiers publiés et **annonces BODACC de procédures collectives** dans la fenêtre choisie. Sources officielles uniquement, sans scraping. Outil indépendant, sans affiliation à l'État, à l'INSEE ou à la DILA.

### Try it / Essayer

Offline synthetic demo: one clearly marked `isDemo: true` row, no network, no charge. / Démo fictive : une ligne marquée `isDemo: true`, sans réseau ni facturation.

```json
{"mode":"demo"}
```

Live check / Contrôle réel :

```json
{"mode":"live","sirens":["552032534","443061841"],"includeBodacc":true,"bodaccDaysBack":180}
```

Files / Fichiers : `examples/INPUT.demo.json`, `examples/INPUT.live.json`, `examples/OUTPUT.demo.json`.

### Output / Sortie

One row per company that is **found and publicly disclosed**: `siren`, `legalName`, `isSoleTrader`, `administrativeStatus` (`A` active, `C` ceased), `creationDate`, `closureDate`, `legalForm`, `mainActivityCode`, `companyCategory`, `employeeRange`, `establishments`, `openEstablishments`, `registeredOffice` (department, postal code, commune), `latestFinancials`, `bodacc`, `source`, `sourceApiUrl`, `sourceUpdatedAt`, `fetchedAt`, `isDemo`, `attribution`. Export JSON, CSV or Excel through Apify.

`bodacc` (when `includeBodacc` is true): `collectiveNoticeCount` in the window, `lastCollectiveNoticeDate` and up to 10 notices with official links. **A notice is not a statement of the company's present status**: opening, closing and corrections are separate notices; read them. Zero notices means none published in the window, not that no procedure ever existed.

Une ligne par entreprise **trouvée et diffusible**. `bodacc` : nombre d'annonces de procédures collectives dans la fenêtre, date de la dernière et 10 annonces au plus avec lien officiel. **Une annonce ne prouve pas la situation actuelle** : ouverture, clôture et rectificatifs sont des annonces distinctes. Zéro annonce signifie aucune publiée dans la fenêtre, pas l'absence de toute procédure.

`SUMMARY` (key-value store): `requested`, `emitted`, `notFound` (SIREN not in the register), `nonDiffusibleCount`, `invalid` (bad format), `duplicates`, `collectiveNoticeCompanies`, `limitedByBudget`, `skippedByBudget`, `status`, and `complete: false` for failed or aborted runs. / `SUMMARY` : compteurs, SIREN introuvables, non diffusibles, invalides, doublons, limite de budget, statut, `complete: false` si échec ou arrêt.

### Billing and limits / Facturation et limites

- One result event per **returned row**. SIREN not found, non-disclosed, invalid or duplicated produce **no row and no charge**; they appear in `SUMMARY`. Demo has no result event. See the Pricing tab for the current price. Your spending limit is applied while the run goes: it stops before exceeding it (`limitedByBudget`, `skippedByBudget`). / Un événement par **ligne livrée** ; introuvable, non diffusible, invalide ou doublon : aucune ligne, aucune facturation.
- 1–1,000 SIREN per run, checked one at a time with a pause between calls to respect the official services. About 1–2 requests per company. / 1 à 1 000 SIREN par run, un à la fois.
- If an official source fails after three attempts, the run **fails explicitly**; rows already delivered stay valid and `SUMMARY` says how far it went. No incomplete row is sold. A rerun cannot resume: remove the SIREN already delivered from your list. / En cas de panne d'une source, le run échoue explicitement ; aucune ligne incomplète n'est livrée. Retirez les SIREN déjà livrés avant de relancer.
- Data come from the *API Recherche d'entreprises* (DINUM) and the BODACC (DILA), under Licence Ouverte 2.0. Attribution is included in each row. Data can lag the registers; this is not legal advice and not a credit or solvency rating. / Licence Ouverte 2.0, attribution dans chaque ligne. Pas un avis juridique ni une notation de solvabilité.

### Privacy / Données personnelles

Not exported: managers and officers, personal names, full addresses, coordinates. For **sole traders** (`isSoleTrader: true`) the legal name is `null` (it is a person's name), financials are `null` and the registered office is limited to the department. Companies marked non-disclosed in the register are never returned. Postal code and commune of a company's registered office are public company data. Process results in line with your own data-protection obligations. / Jamais exportés : dirigeants, noms de personnes, adresses complètes, coordonnées. Pour un entrepreneur individuel : dénomination `null`, finances `null`, département seul. Les entreprises non diffusibles ne sont jamais renvoyées.

### MCP and n8n / MCP et n8n

Run with Apify's MCP server or API using the input above and read `get-dataset-items`. In n8n, use the Apify node "Run Actor and get dataset", then filter on `administrativeStatus = C` or `bodacc.collectiveNoticeCount > 0`. Keep the Apify token in your client's credentials, never in the input. / Gardez le jeton Apify dans les credentials du client.

# Actor input Schema

## `mode` (type: `string`):

Demo: one synthetic row, no network, no result charge. Live: official sources. / Démo : une ligne fictive, sans réseau ni événement facturé. Réel : sources officielles.

## `sirens` (type: `array`):

1–1,000 SIREN (9 digits) or SIRET (14 digits, reduced to its SIREN). Spaces, dots and dashes are accepted. Duplicates are checked once; invalid values are listed in SUMMARY and never charged. / 1 à 1 000 SIREN (9 chiffres) ou SIRET (14 chiffres, réduit à son SIREN). Espaces, points et tirets acceptés. Doublons vérifiés une fois ; valeurs invalides listées dans SUMMARY, jamais facturées.

## `includeBodacc` (type: `boolean`):

Adds the number and links of BODACC 'collective proceedings' notices published for each SIREN in the window. Costs one extra official request per company. / Ajoute le nombre et les liens des annonces BODACC de procédures collectives publiées pour chaque SIREN dans la fenêtre. Une requête officielle de plus par entreprise.

## `bodaccDaysBack` (type: `integer`):

1–365 UTC days including today. / 1 à 365 jours UTC incluant aujourd’hui.

## Actor input object example

```json
{
  "mode": "demo",
  "sirens": [],
  "includeBodacc": true,
  "bodaccDaysBack": 180
}
```

# Actor output Schema

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

Official status and BODACC notices; isDemo identifies synthetic data. / Statut officiel et annonces BODACC ; isDemo identifie toute donnée fictive.

## `summary` (type: `string`):

Found, not found, non-disclosed, invalid, budget limits and status. / Trouvées, introuvables, non diffusibles, invalides, limites de budget et statut.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("westbrook_data/france-company-check").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("westbrook_data/france-company-check").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 '{}' |
apify call westbrook_data/france-company-check --silent --output-dataset

```

## MCP server setup

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

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/2tiOfbsPSBtTrXson/builds/Xj2atKehQBBKNiWc5/openapi.json
