# BODACC France Scraper - SIREN, Creations, M\&A, Insolvency (`dltik/bodacc-fr-scraper`) Actor

Bulk-export BODACC France announcements (creations, M\&A, insolvency, modifications, radiations) with SIREN, capital, dirigeants, RCS. No API key, no proxy, HTTP-only.

- **URL**: https://apify.com/dltik/bodacc-fr-scraper.md
- **Developed by:** [Walid](https://apify.com/dltik) (community)
- **Categories:** Business, Lead generation
- **Features:** Limited permissions
- **Stats:** 11 total users, 4 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

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

## BODACC France Scraper — Bulk Export of French Court Announcements

![BODACC France Scraper banner](https://api.apify.com/v2/key-value-stores/Zh3W4U1ikYaSKtZmZ/records/banner.png)

**BODACC France Scraper** extracts announcements from the **Bulletin Officiel des Annonces Civiles et Commerciales** — the official French commercial court bulletin covering every business creation, M\&A, insolvency, modification, and radiation in France since 2008. 6M+ records, no API key, no proxy, no rate-limit drama.

> **No login. No API token. No proxy.** Pick a department, pick a date range, pick a family (creations / M\&A / insolvency / etc.) — get a clean structured export with SIREN, capital, dirigeants, RCS, tribunal, address, PDF link.

> ⭐ **Found this useful?** Click the **Bookmark** button at the top of [this page](https://apify.com/dltik/bodacc-fr-scraper) — Apify ranks actors by bookmarks, so it's the strongest single signal that keeps this scraper visible to others. Takes 1 click.

***

### What can BODACC France Scraper do?

- 🏢 **Lead-gen on fresh French businesses** — every new SAS/SARL/EURL with capital amount, dirigeants, address, the day it's registered
- 💰 **M\&A intelligence** — every "vente et cession" (sale, fonds de commerce transfer) with seller, buyer, price clauses
- ⚠️ **Distress / insolvency tracking** — every "procédure collective" (redressement, liquidation, sauvegarde) with tribunal + jugement
- 📝 **Modifications tracking** — directors changes, capital changes, headquarters relocations
- ❌ **Radiations** — closures and end-of-business records
- 📂 **Financial filings** — "dépôts des comptes" — companies that just filed their annual accounts
- 🌍 **Filter by department, date, family, SIREN, or free-text** — combine any of them
- ⚡ **HTTP-only, no proxy needed** — fully free official open-data API, runs at 99% margin

***

### What data can you extract from BODACC?

| Field | Description |
|-------|-------------|
| `bodacc_id` | Official BODACC announcement ID (e.g. `A2026010447`) |
| `date_parution` | Publication date (YYYY-MM-DD) |
| `famille_avis` | Family (Créations / Ventes / Procédures collectives / Radiations…) |
| `type_avis` | Avis initial / modificatif / rectificatif |
| `commercant` | Trade name / company name as printed |
| `siren` | Parsed 9-digit SIREN (from registre or listepersonnes) |
| `denomination` | Legal denomination (from nested listepersonnes JSON) |
| `forme_juridique` | SAS / SARL / EURL / SCI / SA / etc. |
| `capital_eur` | Share capital amount in EUR (parsed from nested JSON) |
| `dirigeants` | Array of directors / managers with name, surname, role |
| `adresse_siege` | Full registered-office address (flattened) |
| `ville` | City |
| `code_postal` | Postal code |
| `departement_code` | 2-digit department code |
| `departement_nom` | Department name |
| `region_nom` | Region name |
| `tribunal` | Tribunal de commerce (Greffe) handling the filing |
| `registre_rcs` | RCS registration number |
| `acte_descriptif` | Acte category (Immatriculation, Vente, …) |
| `jugement` | Jugement object (for procédures collectives) |
| `modifications_generales` | Parsed modifications (capital, sieges, dirigeants) |
| `radiation` | Radiation date + motif |
| `url_bodacc` | Direct link to the published announcement on bodacc.fr |
| `pdf_url` | Link to the official PDF version |

***

### How to scrape BODACC France

1. **[Create a free Apify account](https://apify.com/sign-up)** — no credit card required to test
2. **Open [BODACC France Scraper](https://apify.com/dltik/bodacc-fr-scraper)** in Apify Store
3. **Choose a family** — `creations` (lead gen) / `ventes` (M\&A) / `collective` (distress) / etc.
4. **Add filters** — department code (`75` for Paris), date range, free-text search, SIREN
5. **Click Start** — records appear in seconds; download JSON, CSV, or Excel

> Tip: BODACC publishes T+1 to T+3 days vs the actual filing date. Today's announcements may be partial — query with a 3-day lookback for full coverage.

***

### How much does it cost to scrape BODACC?

**$0.003 per record extracted** ($3 per 1,000 records). No actor-start fee — pure per-record pricing. Up to 70% cheaper than comparable BODACC scrapers on Apify Store.

| Run size | Records | Apify cost | Time |
|----------|---------|------------|------|
| Quick test | 100 | $0.30 | ~3s |
| Standard pull | 1,000 | $3 | ~15s |
| Deep pull | 5,000 | $15 | ~1min |
| Massive pull | 10,000 (API cap per query) | $30 | ~2min |

> Need more than 10K records? Chunk by `dateFrom` / `dateTo` windows — OpenDataSoft caps offset at 10,000 per query.

***

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `familleAvis` | enum | ❌ | `creations` | `creations`, `ventes`, `collective`, `modifications`, `radiations`, `depots`, `all` |
| `departement` | string | ❌ | — | Department code(s), comma-separated (e.g. `75` or `75,92,93`) |
| `dateFrom` | string | ❌ | `today - 7d` | YYYY-MM-DD start date (inclusive) |
| `dateTo` | string | ❌ | — | YYYY-MM-DD end date (inclusive) |
| `searchQuery` | string | ❌ | — | Free-text search across announcement content (company name) |
| `siren` | string | ❌ | — | 9-digit SIREN to get full history for one company |
| `maxResults` | integer | ❌ | `100` | Max records (capped at 10,000 per OpenDataSoft query) |

> If you provide no `dateFrom`, no `siren` and no `searchQuery`, the actor defaults to a 7-day lookback window to keep queries under the 10K offset ceiling.

***

### Output example

![Sample output — BODACC France Scraper](https://api.apify.com/v2/key-value-stores/Zh3W4U1ikYaSKtZmZ/records/output.png)

```json
{
  "bodacc_id": "A2026010447",
  "date_parution": "2026-06-04",
  "famille_avis": "Creations",
  "type_avis": "Avis initial",
  "commercant": "INDIENNE CUISINE",
  "siren": "105688170",
  "denomination": "INDIENNE CUISINE",
  "forme_juridique": "SAS",
  "capital_eur": 1000.0,
  "dirigeants": [
    {"nom": "DUPONT", "prenom": "Jean", "role": "Président"}
  ],
  "adresse_siege": "12 RUE DE LA PAIX 05000 Gap",
  "ville": "Gap",
  "code_postal": "05000",
  "departement_code": "05",
  "departement_nom": "Hautes-Alpes",
  "region_nom": "Provence-Alpes-Côte d'Azur",
  "tribunal": "Greffe du Tribunal de Commerce de Gap",
  "registre_rcs": ["105688170", "105 688 170"],
  "acte_descriptif": "Immatriculation",
  "url_bodacc": "https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:A2026010447",
  "pdf_url": "https://www.bodacc.fr/pages/annonces-commerciales-bodacc/?q=A2026010447"
}
```

***

### Use cases

- **B2B lead generation** — pipe every new SAS/SARL in your region into your CRM the day it's registered (`familleAvis: creations`, `departement: 75`)
- **M\&A scouting** — track every "fonds de commerce" sale or business transfer in your sector (`familleAvis: ventes`)
- **Distress investing / restructuring** — monitor procédures collectives in real time to source acquisition targets (`familleAvis: collective`)
- **Compliance / KYC** — pull the full BODACC history of a SIREN for due diligence
- **Real-estate intelligence** — radiations + liquidations free up commercial leases (`familleAvis: radiations`)
- **Market research** — quantify business births / deaths per department / per quarter
- **Journalism / civic tech** — open-data analysis on the French economic fabric

***

### Use BODACC France Scraper via API

**Python:**

```python
import requests

run = requests.post(
    "https://api.apify.com/v2/acts/dltik~bodacc-fr-scraper/run-sync-get-dataset-items",
    headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},
    json={
        "familleAvis": "creations",
        "departement": "75",
        "dateFrom": "2026-05-01",
        "dateTo": "2026-05-31",
        "maxResults": 1000
    },
    timeout=300
).json()

print(f"Fetched {len(run)} BODACC records")
```

**curl:**

```bash
curl -X POST "https://api.apify.com/v2/acts/dltik~bodacc-fr-scraper/runs" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"familleAvis": "collective", "departement": "13", "maxResults": 500}'
```

***

### FAQ

**Do I need a BODACC API key or a SIRENE account?**
No. BODACC publishes its data through the free OpenDataSoft open-data portal. This actor wraps that API directly — no key, no quota, no signup beyond your Apify account.

**Why are today's announcements missing?**
BODACC publishes T+1 to T+3 days behind the actual filing or jugement date. Always query with at least a 3-day lookback to get full daily coverage.

**Why is `maxResults` capped at 10,000?**
OpenDataSoft enforces a hard offset ceiling of 10,000 per query. For larger pulls, slice your job by `dateFrom` / `dateTo` windows (e.g. one month per run) or by department.

**What's the difference between this and the official BODACC RSS feed?**
The RSS gives raw flat text — no SIREN parsing, no capital, no dirigeants. This actor parses the nested `listepersonnes`, `acte`, `jugement` JSON sub-fields and flattens them into clean top-level columns ready for a CRM, a notebook, or a spreadsheet.

**Can I get just one company's BODACC history?**
Yes — pass the 9-digit `siren` parameter. You get every announcement ever filed for that SIREN, newest first.

**I need help or a custom slice.**
Open an issue on the [Issues tab](https://apify.com/dltik/bodacc-fr-scraper/issues) or message the author through Apify.

***

### Connect with Make, Zapier & n8n

This actor integrates with any automation platform via the Apify API.

#### Make (Integromat)

1. Add an **Apify module** in your Make scenario
2. Choose **Run Actor** → BODACC France Scraper
3. Configure `familleAvis`, `departement`, dates
4. Add **Get Dataset Items** → push into Google Sheets / HubSpot / Pipedrive

#### Zapier

1. Use the **Apify integration** on Zapier
2. Trigger: **Actor Run Finished**
3. Action: **Get Dataset Items** → send to your CRM

#### n8n

1. **Schedule Trigger** every morning at 9:00
2. **HTTP Request** → POST to the Apify API with `familleAvis: creations` + your department
3. **CRM node** → create leads for every new company

***

⭐ **Found BODACC France Scraper useful? Bookmark it** — Apify ranks actors by bookmarks, so it's the #1 signal that keeps this actor visible. One click directly helps it stay surfaced.

### Other scrapers by dltik

| Actor | What it does | Price |
|-------|--------------|-------|
| [Pappers / SIRENE Scraper](https://apify.com/dltik/pappers-sirene-scraper) | 26M French companies (SIRENE + Pappers enrichment) | $0.50/1K |
| [MCP Server BODACC](https://apify.com/dltik/mcp-server-bodacc) | BODACC for AI agents (6 MCP tools, per-call pricing) | $5/1K |
| [MCP Server Pappers](https://apify.com/dltik/mcp-server-pappers) | French companies for AI agents (10 tools) | $10/1K |
| [SEC EDGAR MCP Server](https://apify.com/dltik/mcp-server-sec-edgar) | 10K US public companies (10-K, 10-Q, 8-K) for AI agents | $10/1K |
| [Facebook Ads Library Scraper](https://apify.com/dltik/facebook-ads-scraper) | Spy on Facebook / Instagram competitor ads | $0.75/1K |
| [Google Maps Email Extractor](https://apify.com/dltik/google-maps-email-extractor) | Extract emails, phones, WhatsApp from Google Maps | $25/1K |

# Actor input Schema

## `familleAvis` (type: `string`):

BODACC announcement family preset. 'creations' = new businesses (lead gen), 'ventes' = mergers & acquisitions, 'collective' = insolvency / procedures collectives, 'modifications' = changes (directors, capital, address), 'radiations' = closures, 'depots' = financial filings, 'all' = no family filter (use other filters).

## `departement` (type: `string`):

Optional French department code(s) to filter, comma-separated (e.g. '75' for Paris, '13' for Marseille, '75,92,93' for Paris metro). Leave empty for all of France.

## `dateFrom` (type: `string`):

Filter announcements published from this date (inclusive). Format YYYY-MM-DD. BODACC publishes T+1 to T+3 days vs filing date. Default: 7 days ago.

## `dateTo` (type: `string`):

Filter announcements published up to this date (inclusive). Format YYYY-MM-DD. Leave empty for today.

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

Optional free-text search across announcement content (commercant / company name). Useful for tracking a specific brand or person.

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

Optional 9-digit SIREN to filter all announcements for one company. Overrides departement / familleAvis filters.

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

Maximum number of announcements to extract. OpenDataSoft API caps at 10,000 per query - for bigger pulls, slice by dateFrom/dateTo windows.

## Actor input object example

```json
{
  "familleAvis": "creations",
  "departement": "75",
  "maxResults": 100
}
```

# 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 = {
    "departement": "75"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dltik/bodacc-fr-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 = { "departement": "75" }

# Run the Actor and wait for it to finish
run = client.actor("dltik/bodacc-fr-scraper").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 '{
  "departement": "75"
}' |
apify call dltik/bodacc-fr-scraper --silent --output-dataset

```

## MCP server setup

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

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/iyWVwL7JzurhNuIfs/builds/hU2aQyuwJTwXa6y9m/openapi.json
