@pipeworx/bodacc
Connect: https://gateway.pipeworx.io/bodacc/mcp · Install: one-click buttons
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 4
French official business-events bulletin (BODACC — Bulletin officiel des annonces civiles et commerciales): dated notices per company — creations, insolvency proceedings (redressement/liquidation judiciaire), business sales/transfers, deregistrations, modifications, and annual account filings.
Tools
bodacc_company_events(siren | name, event_type?)— full BODACC event history for one company, newest first.sirenis the same 9-digit id used by theentreprises-frandinseepacks — chain a SIREN looked up there straight into this tool (or the reverse).bodacc_search(q?, name?, event_type?, departement?, since?, until?, siren?)— open-ended search across all BODACC notices.qis whole-notice full text (name, activity, judgment/act text, address, …);nameis the separate, field-scoped form for matching the company name only. Also filters by event family, département, date range, and/or SIREN.bodacc_insolvency_feed(since, until?, departement?)— insolvency-only (familleavis=collective) notices published since a date, newest first. Built for polling/monitoring with an advancingsince.bodacc_get_notice(id)— a single notice by its BODACC id.
Auth
Keyless. The upstream (DILA’s Opendatasoft portal) requires no registration or API key for read access to this dataset.
Data sources
- https://bodacc-datadila.opendatasoft.com/api/explore/v2.1/catalog/datasets/annonces-commerciales/records — the live BODACC records API (Opendatasoft Explore v2.1). ~50M+ rows, updated as new bulletins publish (daily, business days).
Traps:
offset + limitis capped at 10,000 for this dataset (confirmed live:offset=9999&limit=2→ 400InvalidRESTParameterError).total_countin the API response is NOT capped — only how far pagination can reach into it is. Every tool here reportstotal_count,count(rows actually returned), and atruncatedflag (offset + limit >= 10000whiletotal_countexceeds it) so a caller never reads the cap as the true count. Narrow withevent_type/departement/ a date range to stay under the cap on a broad query.registreis an array, not a scalar —["805243102", "805 243 102"](digits-only and space-grouped forms of the same SIREN). ODSQLregistre="805243102"matches against the array directly; this pack always strips spaces from an input SIREN before building that filter, and readsregistre[0](digits-only) back out when shaping a record.- Most upstream fields are per-family, not universal.
jugementis populated for insolvency/conciliation notices,actefor creations/sales,radiationaurcsfor deregistrations,modificationsgeneralesfor modifications,depotfor account filings — the others arenullon a given row. Each is itself a JSON-encoded string, not a nested object; this pack parses whichever of them are non-null into a singledetailobject per notice rather than exposing raw upstream field names. familleaviscodes (pass toevent_type):creation,immatriculation,collective(insolvency),conciliation,retablissement_professionnel,modification,radiation,dpc(account filings),vente(sale/transfer),divers. Source of truth: theac_mapping_famille_avisdataset on the same Opendatasoft domain.event_typealso accepts English aliases (sale/transfer→vente,insolvency/bankruptcy→collective,deregistration/deletion→radiation,accounts→dpc,registration→immatriculation) — an unrecognized value is a thrown error naming the valid codes, never a silenttotal_count: 0(fixed 2026-09-23:event_type: "sale"used to buildfamilleavis="sale", an upstream field value that matches nothing).- ODSQL’s
search()is field-scoped unless you omit the field.search(commercant, "...")matches thecommercantfield only (company name as filed); the unscopedsearch("...")matches every indexed field (activity description, judgment/act text, address, etc).bodacc_search’squses the unscoped form on purpose — the field-scoped form silently returnedtotal_count: 0forq: "fonds de commerce"(a term that never appears in a company name) while the unscoped form returns 3,188 hits for the same query, confirmed live 2026-09-23. Usenameinstead ofqto get the field-scoped, name-only match deliberately. - Every call here hits the upstream endpoint directly, per request: the API is
keyless, has no meaningful rate limit for normal query volumes, and a
since-bounded monitoring query naturally stays well under the 10k pagination cap.
Tools
- bodacc_company_events — Full BODACC event history for one French company: every dated notice published for it — creations, insolvency proceedings (redressement/liquidation judiciaire), business sales/transfers, deregistratio
- bodacc_search — Search all BODACC notices across every French company by free text (searched across the whole notice — company name, activity, judgment/act text, addresses — not just the name), event family, départem
- bodacc_insolvency_feed — Recent French insolvency-proceeding notices (familleavis=“collective”: redressement judiciaire, liquidation judiciaire, sauvegarde and their related deposit/judgment notices) published since a given d
- bodacc_get_notice — Fetch a single BODACC notice by its id (e.g. “A202601824309”, visible in bodacc_search / bodacc_company_events / bodacc_insolvency_feed results). Returns the full shaped notice including the parsed ju
Tools
bodacc_company_events— Full BODACC event history for one French company: every dated notice published for it — creations, insolvency proceedings (redressement/liquidation judiciaire), business sales/transfers, deregistratiobodacc_get_notice— Fetch a single BODACC notice by its id (e.g. A202601824309 , visible in bodacc_search / bodacc_company_events / bodacc_insolvency_feed results). Returns the full shaped notice including the parsed judbodacc_insolvency_feed— Recent French insolvency-proceeding notices (familleavis= collective : redressement judiciaire, liquidation judiciaire, sauvegarde and their related deposit/judgment notices) published since a given dbodacc_search— Search all BODACC notices across every French company by free text (searched across the whole notice — company name, activity, judgment/act text, addresses — not just the name), event family, départem