# French Company Signals (BODACC) – Insolvencies & New Companies (`replay/bodacc-signaux-b2b`) Actor

Daily French company events from official BODACC open data: liquidations, receiverships, safeguard, sale plans, new incorporations, strike-offs and business sales. Filter by département and activity, add SIRENE context (NAF, headcount, revenue) and get only new notices.

- **URL**: https://apify.com/replay/bodacc-signaux-b2b.md
- **Developed by:** [A D](https://apify.com/replay) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 signal entreprise bodaccs

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

## Signaux BODACC France — liquidations, redressements, créations de sociétés (alertes)

🇫🇷 **Sachez chaque matin quelles sociétés de votre territoire entrent en liquidation, en redressement, sont créées ou vendent leur fonds.**
Cet actor lit l'open data officiel du **BODACC** (DILA) et vous renvoie des signaux propres et filtrés sur les **sociétés** (personnes morales) :

| Signal | Pour qui |
|---|---|
| Ouverture de liquidation / redressement / sauvegarde, conversion, plan de cession | repreneurs à la barre, administrateurs et mandataires, avocats, crédit-managers, fournisseurs (risque client) |
| Création / immatriculation (avec capital) | experts-comptables, banques, assureurs, éditeurs de logiciels, prestataires B2B |
| Radiation | mise à jour de CRM, recouvrement |
| Vente de fonds de commerce | repreneurs, agents d'affaires, franchiseurs (voir aussi l'actor *BODACC prix de cession*) |

**Ce que vous obtenez par ligne** : date de parution, type de signal, nature et date du jugement, **SIREN**, dénomination, forme juridique, capital (si publié), activité déclarée, département, région, code postal, ville, tribunal, lien officiel BODACC.
**Option contexte SIRENE** (API officielle Recherche d'entreprises) : code NAF, tranche d'effectif, catégorie (PME/ETI/GE), date de création, statut, nombre d'établissements, **dernier chiffre d'affaires et résultat publiés**.

**Mode alertes** : `mode = new-only` + un *Schedule* quotidien → seules les annonces jamais renvoyées pour votre « watchlist » sont livrées **et facturées**. Un jour sans nouveauté ne coûte rien.

**Équilibrage** : `maxItems` est réparti à parts égales entre les types de signaux choisis, la part non utilisée étant redistribuée — une avalanche de liquidations n'écrase plus les créations.

#### Exemple d'entrée

```json
{
  "signals": ["liquidation_opening", "receivership_opening", "sale_plan", "creation"],
  "departments": ["69"],
  "activityKeywords": ["restaurant", "brasserie"],
  "sinceDays": 7,
  "enrichSirene": true,
  "mode": "new-only",
  "stateKey": "lyon-restaurants",
  "maxItems": 200
}
```

Filtres optionnels : `minCapitalEur` (+ `includeUnknownCapital` pour garder les annonces sans capital publié), `minStaffBand` (+ `includeUnknownStaff`).

#### Exemple de sortie (une ligne réelle, run du 12/10/2026)

```json
{
  "signal": "liquidation_opening",
  "signalLabel": "Ouverture de liquidation judiciaire",
  "datePublished": "2026-10-11",
  "judgmentDate": "2026-09-24",
  "judgmentNature": "Jugement d'ouverture de liquidation judiciaire",
  "siren": "980264311",
  "companyName": "BILLA",
  "legalForm": "Société à responsabilité limitée",
  "activityText": "Restauration rapide",
  "departmentCode": "75",
  "city": "Paris",
  "postalCode": "75010",
  "court": "Greffe du Tribunal des Activités Economiques de Paris",
  "sirene": {
    "naf": "56.10C",
    "staffBand": "02",
    "companyCategory": "PME",
    "creationDate": "2023-10-01"
  },
  "url": "https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:A202601952988",
  "source": "BODACC (DILA) - Licence Ouverte 2.0"
}
```

#### Tarif (paiement à l'événement)

- **0,003 $ par signal** livré
- **0,002 $ par contexte SIRENE** ajouté
  Aucun frais de démarrage, aucun proxy facturé.

#### Vie privée et limites honnêtes

- **Personnes morales uniquement** : les entrepreneurs individuels et personnes physiques sont exclus ; aucun nom de dirigeant, aucune adresse de rue.
- Le BODACC publie avec quelques jours à quelques semaines de décalage sur la date du jugement.
- La recherche par mot-clé est en plein texte : préférez des mots précis (« boulangerie » plutôt que « commerce »).
- Le CA SIRENE n'existe que si la société a publié ses comptes.
- Données fournies sans garantie d'exhaustivité ; vérifiez sur le lien officiel avant toute décision.

***

🇬🇧 **French company signals from the official BODACC gazette — insolvencies, new companies, strike-offs, business sales.**
Filter by département, activity keyword, share capital and headcount; add official SIRENE context (NAF code, headcount band, company category, last published revenue); run it daily in **new-only** mode to receive and pay only for new notices. Results are balanced across the selected signal types. Legal persons only — no natural persons, no director names, no street addresses.
**Pricing**: $0.003 per signal, $0.002 per SIRENE context. No start fee.

*Sources : BODACC — Direction de l'information légale et administrative (DILA) ; API Recherche d'entreprises — DINUM. Licence Ouverte / Etalab 2.0. Actor indépendant, non affilié à la DILA, à l'Insee ni à la DINUM.*

***

### 🤖 Mode `lookup` pour agents IA (MCP Apify)

Ce mode donne une réponse courte par SIREN : les dernières annonces BODACC (date, famille, jugement, tribunal, lien officiel) et un contexte SIRENE filtré (NAF, tranche d'effectif, catégorie, statut, dernier CA publié avec sa provenance). Les règles de confidentialité sont les mêmes que pour les signaux : **personnes morales uniquement**, aucun nom de dirigeant, aucune adresse. Les entrepreneurs individuels et les unités en diffusion partielle ne sont pas renvoyés.

**Tarif** : 1 événement `signal` (0,003 $) par SIREN trouvé, plus 1 `sirene-context` (0,002 $) si le contexte SIRENE est renvoyé, soit **0,005 $ par lookup complet**. Un SIREN introuvable ou exclu n'est pas facturé.

Exemple d'appel via le serveur MCP d'Apify (`https://mcp.apify.com`, outil `call-actor`) :

```json
{ "actor": "replay/bodacc-signaux-b2b",
  "input": { "mode": "lookup", "sirens": ["552032534"], "maxNotices": 5 } }
```

Réponse (vue `lookup`, abrégée) :

```json
{ "mode": "lookup", "siren": "552032534", "found": true, "companyName": "EXEMPLE SA", "legalForm": "Société anonyme",
  "bodaccNoticesTotal": 107, "notices": [{ "date": "2026-09-02", "family": "modification", "familyLabel": "Modifications diverses",
  "judgment": null, "court": "Greffe du Tribunal des Activités Economiques de Paris", "url": "https://www.bodacc.fr/..." }],
  "sirene": { "naf": "70.10Z", "staffBand": "42", "status": "A", "revenueEur": 27376000000, "financialsYear": "2025" },
  "source": "BODACC (DILA) + API Recherche d'entreprises (DINUM), Licence Ouverte 2.0", "consultedAt": "2026-10-12" }
```

Le mode par défaut reste `all` : les runs existants ne changent pas.

# Actor input Schema

## `signals` (type: `array`):

Which BODACC events to return. Results are balanced across the selected types (equal share of maxItems, unused share redistributed).

## `departments` (type: `array`):

Department codes, e.g. 69, 75, 2A, 971. Empty = all of France.

## `activityKeywords` (type: `array`):

Full-text search in the notice (activity, company name). One query per keyword, results merged. Example: restaurant, maçonnerie, transport. Empty = all activities.

## `sinceDays` (type: `integer`):

Only notices published in the BODACC during the last N days.

## `minCapitalEur` (type: `integer`):

Keeps companies whose share capital stated in the notice is at least this amount. Capital is mostly stated in creations, rarely in insolvency notices.

## `includeUnknownCapital` (type: `boolean`):

Only used with 'Minimum share capital'. If true, notices that do not state any capital are kept; if false, they are dropped.

## `enrichSirene` (type: `boolean`):

Adds NAF code, INSEE staff band, company category (PME/ETI/GE), creation date and last published revenue from the official API Recherche d'entreprises. Never director names.

## `minStaffBand` (type: `string`):

Keeps companies with at least this INSEE staff band (uses SIRENE).

## `includeUnknownStaff` (type: `boolean`):

Only used with 'Minimum INSEE staff band'.

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

'new-only' remembers returned notices per watchlist name, so a daily scheduled run only delivers (and charges) new ones. 'lookup' (for AI agents / MCP): give 'sirens'; returns one compact item per SIREN with its latest BODACC notices and filtered SIRENE context. All other filters are ignored in this mode.

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

Only used when mode='lookup'. List of 9-digit French SIREN company numbers (spaces allowed), max 20. Example: \["552032534"]. Each SIREN found = 1 'signal' event (+1 'sirene-context' if SIRENE data is returned). Sole traders / natural persons are not returned (privacy) and not charged.

## `maxNotices` (type: `integer`):

Only used when mode='lookup'. Number of most recent BODACC notices returned per SIREN (newest first).

## `stateKey` (type: `string`):

Different names keep separate 'already returned' lists, e.g. one per client or territory.

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

Maximum number of notices returned (and charged) in this run.

## Actor input object example

```json
{
  "signals": [
    "liquidation_opening",
    "receivership_opening",
    "safeguard_opening",
    "sale_plan"
  ],
  "departments": [
    "69"
  ],
  "activityKeywords": [
    "restaurant"
  ],
  "sinceDays": 7,
  "includeUnknownCapital": true,
  "enrichSirene": true,
  "includeUnknownStaff": false,
  "mode": "all",
  "maxNotices": 10,
  "stateKey": "default",
  "maxItems": 200
}
```

# Actor output Schema

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

Items of the default dataset (see dataset schema for fields).

## `lookup` (type: `string`):

Compact per-SIREN answers for AI agents.

# 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 = {
    "departments": [
        "69"
    ],
    "activityKeywords": [
        "restaurant"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("replay/bodacc-signaux-b2b").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 = {
    "departments": ["69"],
    "activityKeywords": ["restaurant"],
}

# Run the Actor and wait for it to finish
run = client.actor("replay/bodacc-signaux-b2b").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 '{
  "departments": [
    "69"
  ],
  "activityKeywords": [
    "restaurant"
  ]
}' |
apify call replay/bodacc-signaux-b2b --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,replay/bodacc-signaux-b2b"
        }
    }
}
```

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/DftazfVTvUO2csZGR/builds/v2bmHtta4sUEYpFhN/openapi.json
