French BODACC Announcements
Read a French company's BODACC announcements by SIREN, including insolvency proceedings, sales and registration changes.
fr-bodacc-lookup Example
{
"siren": "552049447"
} {
"siren": "552049447",
"data_source": "BODACC (Bulletin Officiel des Annonces Civiles et Commerciales)",
"announcements": [
{
"id": "B202101671375",
"url": "https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:B202101671375",
"city": "Saint-Denis",
"date": "2021-08-27",
"court": "GREFFE DU TRIBUNAL DE COMMERCE DE BOBIGNY",
"family": "modification",
"judgment": null,
"entity_name": "Société nationale SNCF",
"postal_code": "93200",
"family_label": "Modifications diverses"
}
],
"insolvency_count": 0,
"total_announcements": 72,
"has_insolvency_filing": false,
"most_recent_insolvency": null,
"most_recent_announcement_date": "2021-08-27"
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
limit | integer | No | Optional max number of announcements to return (default 50, max 200). |
siren | string | No | 9-digit French SIREN (with or without spaces). Canonical input. |
since_date | string | No | Optional ISO date (YYYY-MM-DD) to filter announcements published on or after this date. |
company_name | string | No | Optional fallback input — company name to search BODACC if no SIREN is known. Resolves to SIREN internally. |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
siren | string | Always (present in every successful answer) |
data_source | string | Always (present in every successful answer) |
announcements | array | Always (present in every successful answer) |
insolvency_count | integer | Always (present in every successful answer) |
total_announcements | integer | Always (present in every successful answer) |
has_insolvency_filing | boolean | Always (present in every successful answer) |
most_recent_insolvency | object or null | Usually (present for most inputs) |
most_recent_announcement_date | string or null | Usually (present for most inputs) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "fr-bodacc-lookup",
"inputs": {
"siren": "552049447"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "fr-bodacc-lookup",
"inputs": {
"siren": "552049447"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "fr-bodacc-lookup",
inputs: {
"siren": "552049447"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="fr-bodacc-lookup",
inputs={
"siren": "552049447",
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i -X POST https://api.strale.io/x402/v2/fr-bodacc-lookup \
-H 'Content-Type: application/json' \
-d '{
"siren": "552049447"
}' Limitations
Coverage limited to French registered entities
BODACC only contains announcements for entities registered in the French commercial register (RCS). Foreign entities operating in France without RCS registration are not covered. SIREN is the unique identifier — entities without a SIREN cannot be looked up.
Annual-accounts deposits ("dpc") dominate the corpus
The most common announcement type is "Dépôts des comptes" (annual accounts deposit) — these are routine compliance filings, not risk signals. Use has_insolvency_filing or insolvency_count to isolate the litigation/bankruptcy signal.
Recovery from insolvency is not auto-detected
has_insolvency_filing is true if any procédure collective announcement exists in history. It does not distinguish active proceedings from closed/recovered ones. Inspect most_recent_insolvency.judgment_nature to read the latest court action (e.g. "Jugement de clôture" indicates closure).
What to do instead: Read most_recent_insolvency.judgment_nature and judgment_date to determine current status.
Bundled checks that include it
- KYB Complete — France €2.50
- Invoice Verify — France €2.50
Related tools
- Adverse Media Check €0.20
- AML Risk Score €0.02
- Breach Exposure Check €0.05
- Czech Unreliable VAT Payer Check €0.05
- EU Regulation Search €0.30
- French Insolvency Check €0.08