🇫🇷 New Companies France — BODACC watch, directors & scoring
Pricing
Pay per usage
🇫🇷 New Companies France — BODACC watch, directors & scoring
Detect newly registered French companies (nouvelles entreprises immatriculées au RCS) from the official BODACC. Directors, capital, legal form, address and declared activity as clean fields. INSEE enrichment without any API key, configurable lead scoring, and a watch mode for daily runs.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
OWOYALE ADISSA
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Find French companies the week they are registered — with their directors, share capital and legal form already extracted.
This Actor reads the official BODACC (Bulletin officiel des annonces civiles et commerciales), the daily government publication of every registration in the French Trade and Companies Register (RCS). It turns each announcement into a clean, flat, ready-to-use B2B lead.
A newly registered company buys everything within three months: a bank, an accountant, insurance, telecoms, software, office supplies, insurance. After that window it is locked in with its first suppliers for years. This Actor puts you inside that window.
What makes this different
Several Actors already expose French company data. Here is what this one does that they do not.
| This Actor | Typical alternative | |
|---|---|---|
| Watch mode | Remembers what it already delivered. A daily schedule returns only new registrations — no duplicates, no double billing. | Returns the whole window every run; you deduplicate and pay again. |
| API key | None. Both sources are keyless public APIs. | Most require you to register for an INSEE Sirene key. |
| Nested fields | acte and listepersonnes are JSON strings in the raw API. They are parsed into directors, capital, legal form and address columns. | Raw JSON strings dumped into your dataset for you to parse. |
| Directors | Split into {fonction, nom} pairs, with the principal director surfaced. | A single unsplit text blob, when present at all. |
| Declared activity | The founder's own description of the business, filed at the registry — available on day one. | Not exposed. At best a NAF code, and only once INSEE has indexed the company weeks later. |
| Real creations vs. conversions | Flags the registrations that are not new businesses — an existing sole trader moving onto the RCS register, sometimes trading since 2010. Measured: 8 out of 20 on a live batch. | Sold to you as brand-new companies. |
| Lead scoring | Configurable 0–100 score with a per-component breakdown you can defend to a sales team. | None, or an opaque single number. |
| Cost control | Free dryRun estimation before any billing. | Run and find out. |
| Volume handling | Counts first, then splits the window into slices to stay under the source API's 10,000-record pagination cap. | Silently stops at 10,000 — you never learn what you missed. |
Example output
{"siren": "107706657","denomination": "2L PATRIMOINE","type_personne": "morale","forme_juridique": "Société par actions simplifiée","capital_montant": 1000,"capital_devise": "EUR","date_immatriculation": "2026-07-28","date_parution": "2026-08-06","anciennete_jours": 32,"adresse": "22 rue des Mésanges","code_postal": "31190","ville": "Auterive","departement": "31","departement_nom": "Haute-Garonne","region": "Occitanie","dirigeants": [{ "fonction": "Président", "nom": "Lincetto, Patrice Georges" },{ "fonction": "Directeur général", "nom": "Lincetto, Eric Michel" }],"dirigeant_principal": "Lincetto, Patrice Georges","nb_dirigeants": 2,"activite_declaree": "La vente et le commerce en ligne de mobilier et accessoires de décoration d'intérieur, meubles, ameublement, literie","origine_fonds": "Création d'un fonds de commerce","qualite_etablissement": "Etablissement principal","naf_code": "68.20B","naf_libelle": "Location de terrains et d'autres biens immobiliers","section_activite_libelle": "Activités immobilières","tranche_effectif": "00","siret_siege": "10770665700018","date_creation_insee": "2026-07-28","entreprise_preexistante": false,"anciennete_reelle_jours": 32,"donnees_diffusibles": true,"latitude": 43.6028,"longitude": 1.4474,"score": 83,"score_detail": { "fraicheur": 100, "forme": 100, "capital": 45, "geographie": 60, "dirigeants": 100 },"priorite": "A - prioritaire","url_annuaire_entreprises": "https://annuaire-entreprises.data.gouv.fr/entreprise/107706657","url_bodacc": "https://www.bodacc.fr/pages/annonces-commerciales-detail/?q.id=id:A20260148582"}
What you can use it for
- B2B prospecting — reach a new company before your competitors do. Banks, accountants, insurance brokers, telecom resellers, office suppliers, software vendors.
- Precise targeting from day one —
activite_declareecarries the founder's own wording ("online sale of interior decoration furniture…"), so you can filter on what the business actually does weeks before any NAF code exists. - Territory monitoring — watch registrations in specific departments and get a daily digest.
- Market research — measure business creation by legal form, capital band, sector and region over time.
- CRM enrichment — feed a clean, deduplicated lead pipeline into HubSpot, Pipedrive, Airtable or Notion.
- AI agents — the Actor exposes a full output schema, so an agent can chain it without guessing the response shape.
Input
Every field is optional. Run it with no input at all and you get the last 7 days of registrations across France.
| Field | Type | Default | What it does |
|---|---|---|---|
lookbackDays | integer | 7 | How many days back to search. Do not go below 7 — BODACC publishes 3 to 10 days after the actual registration date. |
dateFrom / dateTo | string | — | Explicit YYYY-MM-DD window on the publication date. Overrides lookbackDays. |
departements | array | all | Department codes to keep: 75, 69, 2A, 971. Narrowing cuts both volume and cost. |
maxResults | integer | 200 | Hard cap on leads delivered — and therefore billed. |
enrich | boolean | true | Add NAF code, workforce band, SIRET, administrative state, coordinates and financials from INSEE. No API key needed. |
dryRun | boolean | false | Count matching registrations and stop. Nothing delivered, nothing billed. |
watchMode | boolean | false | Only return registrations never delivered before. Use with a daily schedule. |
watchId | string | defaut | Run several independent watches with one Actor. |
minScore | integer | 0 | Drop leads below this score — they are neither delivered nor billed. |
targetDepartements | array | — | Departments that raise the score, without excluding others. |
targetFormesJuridiques | array | — | Legal form fragments you are looking for, e.g. société par actions. |
targetCapitalMin / targetCapitalMax | integer | — | Share capital band that defines your ideal customer. |
excludeSCI | boolean | false | Zero the score of sociétés civiles immobilières — usually out of scope for B2B. |
excludePreexistantes | boolean | false | Zero the score of registrations that are not real creations — a sole trader already trading for over a year before joining the RCS register. Measured: 8 out of 20 on a live batch. |
fraicheurIdealeJours | integer | 30 | Below this age the freshness score is maximal; it then decays to zero at 180 days. |
Getting started in three runs
1. Estimate for free
{ "lookbackDays": 14, "departements": ["75"], "dryRun": true }
2. Pull a first batch
{ "lookbackDays": 14, "departements": ["75"], "maxResults": 50 }
3. Turn it into a daily watch
{"watchMode": true,"watchId": "paris-sas","departements": ["75", "92", "93", "94"],"targetFormesJuridiques": ["société par actions simplifiée", "société à responsabilité limitée"],"excludeSCI": true,"minScore": 55,"maxResults": 300}
Then schedule it daily. Each run returns only what appeared since the last one.
How the score works
The score is a weighted average of five components, each rated 0–100 and each returned in score_detail so a sales team can see why a lead ranks where it does.
| Component | Weight | Logic |
|---|---|---|
| Freshness | 30 % | Maximal below fraicheurIdealeJours, decaying to zero at 180 days. The buying window is short. |
| Legal form | 25 % | A SAS or SARL almost always needs a bank, an accountant and tools. A family SCI does not. Overridden by targetFormesJuridiques when set. |
| Share capital | 20 % | A rough but useful proxy for financial surface. |
| Geography | 15 % | Full marks inside targetDepartements, neutral when you set none. |
| Directors | 10 % | A named director is a reachable person. |
Priority bands: A ≥ 75 · B ≥ 55 · C ≥ 35 · D below.
Cost
Two billable events:
| Event | Price | When |
|---|---|---|
nouvelle-entreprise | $0.003 | A registration delivered with BODACC data only. |
entreprise-enrichie | $0.005 | Same, plus the INSEE enrichment layer. |
So 1,000 enriched leads cost about $5. Nothing is billed for announcements filtered out by minScore or already delivered in watch mode, and dryRun is free.
Known limits — read this before you buy
Being straight about scope saves you a refund request.
- BODACC covers the RCS only. Traders and companies, yes. Not registered as RCS: many professions libérales, some artisans (Répertoire des métiers) and associations (published in the JOAFE instead). If you need every SIREN holder without exception, you need the INSEE Sirene register, not BODACC.
- Publication lags registration by 3 to 10 days. A company registered on the 28th typically appears around the 6th. This is a property of the source, not of the Actor. Set
lookbackDaysto 7 or more. - Enrichment coverage is high but not total. Measured on a live run of 201 registrations: 94 % enriched, 5.5 %
non_indexe— registrations too recent for the INSEE index. Those leads are still delivered, with their BODACC data intact. - About two thirds of registrations are sole traders (personnes physiques): measured 64 %. They have no legal form, no share capital and no directors — those columns are empty by nature, not by failure. Filter on
type_personneif you only want companies. - An RCS registration is not always a new business. A sole trader who has been trading for years must register on the RCS when their activity qualifies as commercial. The BODACC announcement looks identical to a genuine creation. Measured on a live batch of 20: 8 had existed at INSEE since 2010–2023. The Actor compares the INSEE creation date with the RCS registration date and returns
entreprise_preexistanteplusanciennete_reelle_jours, so you can either exclude them or pitch them differently. - Some directors opt out of public diffusion. French law lets a business owner object to the publication of their INSEE record. The source then returns
[NON-DIFFUSIBLE]instead of the address, coordinates and director names. Measured: 12 of 20, all sole traders. Those fields come back empty anddonnees_diffusiblesisfalse— the BODACC address, name, activity and SIREN are still delivered. - Director functions come from free text. 90 % are parsed into clean
{fonction, nom}pairs. In the remaining 10 % the registry simply declared no function; the name is still extracted. - Personal data. Director names are personal data under GDPR. You need a lawful basis to process them, you must minimise what you keep, and you must be able to honour erasure requests. Prospecting on a legitimate-interest basis is generally accepted, but that assessment is yours to document.
- Volume. France produces roughly 1,500 registrations per working day (measured: 45,860 over 30 days). The source API caps pagination at 10,000 records per query, so the Actor counts first and splits the date window into slices automatically — you do not have to think about it. A department filter still cuts both runtime and cost significantly.
Data sources
| Source | Role | Licence |
|---|---|---|
| BODACC (DILA) | Daily RCS registrations | Licence Ouverte Etalab 2.0 |
| API Recherche d'entreprises (DINUM) | NAF code, workforce, SIRET, financials | Licence Ouverte Etalab 2.0 |
| NAF rév. 2 nomenclature (INSEE) | Activity labels — the API returns codes only, so the 732 sub-classes are resolved locally, with no extra request | Apache-2.0 via @socialgouv/codes-naf |
This Actor is not affiliated with DILA, INSEE, INPI or any French public body. It reuses open public data under the Etalab open licence.
En français
Cet Actor détecte les entreprises nouvellement immatriculées au RCS à partir du BODACC officiel, publié chaque jour ouvré par la DILA.
Pour chaque création il livre : dénomination, SIREN, forme juridique, capital social, adresse du siège, dirigeants séparés avec leur fonction, activité déclarée au greffe dans les mots du créateur, date d'immatriculation et ancienneté en jours — puis, si vous le souhaitez, l'enrichissement INSEE (code NAF, tranche d'effectif, SIRET du siège, éléments financiers), le tout sans aucune clé d'API à créer.
Le mode veille est ce qui le distingue : il mémorise ce qu'il a déjà livré et ne renvoie, aux exécutions suivantes, que les créations nouvelles. Vous le planifiez une fois par jour et vous ne payez jamais deux fois la même entreprise.
Le score de pertinence se paramètre selon votre client idéal : départements prioritaires, formes juridiques recherchées, fourchette de capital, exclusion des SCI. Chaque note est détaillée par composante, pour qu'un commercial puisse la discuter plutôt que la subir.
Le mode estimation (dryRun) compte les créations correspondant à vos critères sans rien livrer ni facturer : utilisez-le pour calibrer votre fenêtre avant la première exécution réelle.
Support
Found a bug, a parsing edge case, or need another announcement family (radiations, procédures collectives, ventes et cessions)? Open an issue on the Actor's Issues tab — every report gets a reply.