# Provenance and freshness of Sirenic data, measured on 20 SIREN

Measured on 2026-10-07, from 22:24 to 22:27 UTC, on 20 SIREN: 10 drawn at random, seed 0.476, by the query published below, among 1,247,545 active companies that have filed accounts; 10 chosen, each for a stated reason. Replacement rule, set before the calls: a company name made of a natural person's first and last name is replaced by the next rank. For each SIREN, one call to the Sirenic company file then the public official sources, read within 2 seconds, and the full list of accounts filing notices, read again 95 to 153 seconds after the call: what is served, the declared source, the age of the data.

## Sample, seed and query

**Population**: active, publicly disclosed legal units that are legal persons under Sirenic's predicate (level I from 3 to 9, except 9210 and 0000: groupings without legal personality are left out too), with at least one financial year on file. Copy of the Sirenic database restored on 2026-10-03 (Sirene stock of 2026-10-01): **1,247,545 SIREN**; SHA-256 fingerprint of their sorted list, joined by commas: `39595dbf78372db4f4720cba64e8613dfa1502c5daa25ceb9b5da6d44e9d6cc8`.

**Draw**: `setseed(0.476)`, one `random()` value per SIREN in SIREN order, ranks by increasing value; run three times, same ranks. The replacement rule applied once: rank 7, whose name reproduces a person's first and last name, is replaced by rank 11 and is not published. **Chosen cases**: AIRVANCE GROUP, holding company, a usual control case for Sirenic; LES MOUSQUETAIRES, parent of an unlisted group, consolidated accounts; CYCLES LAPIERRE, judicial recovery opened in August 2026; PROVENCE FIOUL SERVICES, confidential income statement; LA POSTE, unlisted SA, large company; DOCTOLIB, unlisted SAS; PRINT ART CONSULTING, SARL with all accounts public; SCI DES 43-45 RUE DE COURCELLES, SCI that files accounts; TERRENA, agricultural cooperative, consolidated accounts; TOTALENERGIES SE, listed European company.

**Draw query (PostgreSQL 15 or later)**

```
BEGIN TRANSACTION READ ONLY;
SET LOCAL max_parallel_workers_per_gather = 0;
SELECT setseed(0.476);
WITH candidats AS MATERIALIZED (
  SELECT u.siren
  FROM unites_legales u
  WHERE u.etat_administratif = 'A'
    AND u.statut_diffusion = 'O'
    AND coalesce(btrim(u.categorie_juridique) ~ '^[3456789][0-9]{3}$'
                 AND btrim(u.categorie_juridique) NOT IN ('9210', '0000'), false)
    AND EXISTS (SELECT 1 FROM finances_annuelles f WHERE f.siren = u.siren)
  ORDER BY u.siren
),
tires AS MATERIALIZED (
  SELECT siren, random() AS r FROM candidats
)
SELECT (SELECT count(*) FROM candidats) AS population,
       (SELECT encode(sha256(convert_to(string_agg(siren::text, ',' ORDER BY siren), 'UTF8')), 'hex') FROM candidats) AS sha256_population,
       t.siren, round(t.r::numeric, 8) AS r
FROM tires t ORDER BY t.r LIMIT 11;
ROLLBACK;
```

## Reads and price

**Sirenic**: `GET /v1/entreprise/{siren}/dossier?blocs=finances,alertes_bodacc,contentieux,documents`, one call per SIREN, from 22:24:18 to 22:25:28 UTC, with an API key debited in credits (no x402 payment). Grid price: base $0.005 + `finances` $0.01 + `alertes_bodacc` $0.01 + `contentieux` $0.01 + `documents` $0.02 = **$0.055 per call**. 20 responses 200, no retry (cap set beforehand: 22 calls), 0.055 credits debited for each, **1.10 credits** in all (1 credit = 1 euro, the same number as the dollar price).

**Official sources**, with no account and no key, from 22:24:19 to 22:27:03 UTC: BODACC (DILA, dataset `annonces-commerciales`) for notices and accounts filing notices; the public dataset `ratios_inpi_bce` (INPI and BCE, data.economie.gouv.fr), the one Sirenic loads; the Recherche d'entreprises API (DINUM) to check the identity: same status and same legal category for 20 SIREN of 20.

## Blocks served and declared provenance

**80 blocks served of 80**, none absent or unavailable; the `finances` blocks of LES MOUSQUETAIRES and LA POSTE are `partiel` (list of keyed balance sheets cut, and said so). The officers block is served for 20 SIREN of 20, counted here, never read; `provenance[]` gives it no entry of its own. The `contentieux` block serves decisions for 5 SIREN (LES MOUSQUETAIRES, CYCLES LAPIERRE, LA POSTE, DOCTOLIB and TOTALENERGIES SE). Declared provenance, identical across the 20 responses:

- **The `contentieux` block declared a wrong source**: `sirenic_regles`, Sirenic rules in calculation mode, with no date, whereas its decisions come from Judilibre (Cour de cassation), whose dates the block body gives (store updated on 2026-10-07 at 03:30 UTC, last decision served by the source on 2026-09-22); so the response's citation does not name Judilibre. This defect is tracked internally as #525; the table publishes what was served.
- Live reads declare the time of their consultation: the time of the call for 38 of 40; 2 came from the 24-hour cache (notices of AIRVANCE GROUP, consulted at 05:22 UTC and documents of LA POSTE, consulted at 00:31 UTC).

| Block | Served | Declared source | Mode | Declared date |
| --- | --- | --- | --- | --- |
| identity | 20/20 | INSEE Sirene (`insee_sirene`) | `stock` | 2026-10-01 (6 d) |
| `finances` | 20/20, 2 partial | INPI ratios (`inpi_ratios_bce`) | `stock` | 2026-09-15 (22 d) |
| `alertes_bodacc` | 20/20 | BODACC (`bodacc_dila`) | `temps_reel` | consultation time |
| `contentieux` | 20/20 | `sirenic_regles`: **wrong** (Judilibre) | `calcul` | none |
| `documents` | 20/20 | INPI RNE (`inpi_documents`) | `temps_reel` | consultation time |

## The 20 SIREN: latest year end and latest notice

Ages in days at 2026-10-07. **Year end**: last closing served by Sirenic (`finances` block, consolidated accounts and set-aside rows included, or accounts listed by the `documents` block); at the source, last closing in the public ratios dataset or in a BODACC accounts filing notice. **Notice**: last BODACC publication, all families; at Sirenic, last date served, which the block gives for insolvency proceedings, deregistrations, sales and transfers, and for no other family.

- `finances` block and ratios dataset: same last closing for 20 SIREN of 20. It is the same dataset, the version online that day (published on 2026-09-15, loaded by Sirenic on 2026-10-02, 17 days later): no gap that day between the block and the public dataset, which says nothing of the register's freshness.
- Year end, all sources: zero gap for 17 SIREN, positive for 3: SUPERETTE DU FRONT DE MER (2,922 days), INFESTUS (2,192 days) and LES FLEURS DU SOLEIL (731 days). For them BODACC publishes 8, 6 and 2 filing notices for later closings, all with a confidentiality statement (article L. 232-25 of the French commercial code): those accounts are neither in the public ratios dataset nor among the RNE accounts that Sirenic serves. Yet the `finances` block says `aucun_depot_plus_recent`: it does not count these confidential filings announced at BODACC (defect tracked as #525).
- The first RNE filing, which the `documents` block dates, comes 5 to 216 days before the first BODACC notice, median 11, for the 16 SIREN whose last closing is the same on both sides. SCI DES 43-45 RUE DE COURCELLES has no filing notice at BODACC.
- Notices: same number in the block and at BODACC for 20 SIREN of 20 (LA POSTE, 100 read of 102 and TOTALENERGIES SE, 100 read of 149: partial read stated). In the dated families, the last date served equals BODACC's for 7 SIREN of 7. The latest notice, all families, is dated by Sirenic for 1 SIREN of 20 (CYCLES LAPIERRE). Family of the latest BODACC notice: accounts filing for 11, change for 7, registration for 1 and insolvency proceedings for 1. At BODACC, its age runs from 1 to 2,733 days, median 70.

| SIREN, name | Blocks served | Year end, Sirenic | Year end, source | Notice, BODACC | Dated notice, Sirenic | Debited (credits) |
| --- | --- | --- | --- | --- | --- | --- |
| 984247213 FREGEAC PRODUCTION (SARL, rank 1) | 4/4 | 2025-03-31 (555 d) | 2025-03-31 (555 d) | 2026-06-09 (120 d) | none, none at BODACC | 0.055 |
| 487801284 SUPERETTE DU FRONT DE MER (SAS, rank 2) | 4/4 | 2017-12-31 (3,202 d) | 2025-12-31 (280 d), gap 2,922 d | 2026-08-06 (62 d) | none, none at BODACC | 0.055 |
| 921844361 WICAP PUMPART 4 (SAS, rank 3) | 4/4 | 2025-04-30 (525 d) | 2025-04-30 (525 d) | 2025-11-11 (330 d) | none, none at BODACC | 0.055 |
| 489468942 JCH INTERNATIONAL (SAS, rank 4) | 4/4 | 2022-12-31 (1,376 d) | 2022-12-31 (1,376 d) | 2024-02-27 (953 d) | 2017-10-11 (3,283 d), same date at BODACC | 0.055 |
| 847668522 INFESTUS (SARL, rank 5) | 4/4 | 2019-12-31 (2,472 d) | 2025-12-31 (280 d), gap 2,192 d | 2026-10-06 (1 d) | none, none at BODACC | 0.055 |
| 805297819 CENTREX (SARL, rank 6) | 4/4 | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-07-28 (71 d) | none, none at BODACC | 0.055 |
| 799303466 IZCO CARRIERES (SAS, rank 8) | 4/4 | 2025-04-30 (525 d) | 2025-04-30 (525 d) | 2026-04-02 (188 d) | 2014-02-18 (4,614 d), same date at BODACC | 0.055 |
| 902962117 LES FLEURS DU SOLEIL (SAS, rank 9) | 4/4 | 2023-08-31 (1,133 d) | 2025-08-31 (402 d), gap 731 d | 2026-06-11 (118 d) | none, none at BODACC | 0.055 |
| 392219705 BLANC ET RAVON (SAS, rank 10) | 4/4 | 2025-09-30 (372 d) | 2025-09-30 (372 d) | 2026-03-19 (202 d) | none, none at BODACC | 0.055 |
| 428783542 PRO-AVENIR-INVEST (SAS, rank 11) | 4/4 | 2017-12-31 (3,202 d) | 2017-12-31 (3,202 d) | 2019-04-14 (2,733 d) | none, none at BODACC | 0.055 |
| 490586708 AIRVANCE GROUP (SAS, chosen) | 4/4, `alertes_bodacc` cached | 2024-12-31 (645 d) | 2024-12-31 (645 d) | 2026-08-04 (64 d) | 2025-11-14 (327 d), same date at BODACC | 0.055 |
| 789169323 LES MOUSQUETAIRES (SAS, chosen) | 4/4, `finances` partial | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-09-06 (31 d) | none, none at BODACC | 0.055 |
| 016650996 CYCLES LAPIERRE (SAS, chosen) | 4/4 | 2024-12-31 (645 d) | 2024-12-31 (645 d) | 2026-08-31 (37 d) | 2026-08-31 (37 d), same date at BODACC | 0.055 |
| 800022220 PROVENCE FIOUL SERVICES (SAS, chosen) | 4/4 | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-07-30 (69 d) | none, none at BODACC | 0.055 |
| 356000000 LA POSTE (SA, chosen) | 4/4, `finances` partial, `documents` cached | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-08-23 (45 d) | 2026-07-09 (90 d), same date at BODACC | 0.055 |
| 794598813 DOCTOLIB (SAS, chosen) | 4/4 | 2024-12-31 (645 d) | 2024-12-31 (645 d) | 2026-07-07 (92 d) | none, none at BODACC | 0.055 |
| 800022147 PRINT ART CONSULTING (SARL, chosen) | 4/4 | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-08-25 (43 d) | none, none at BODACC | 0.055 |
| 487633554 SCI DES 43-45 RUE DE COURCELLES (SCI, chosen) | 4/4 | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-08-11 (57 d) | none, none at BODACC | 0.055 |
| 429707292 TERRENA (agricultural cooperative, chosen) | 4/4 | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-07-30 (69 d) | 2026-02-06 (243 d), same date at BODACC | 0.055 |
| 542051180 TOTALENERGIES SE (SE, chosen) | 4/4 | 2025-12-31 (280 d) | 2025-12-31 (280 d) | 2026-07-10 (89 d) | 2022-03-10 (1,672 d), same date at BODACC | 0.055 |

## Limits

- 20 SIREN, one day: no rate generalises from them.
- Population and draw read from the copy of 2026-10-03, not from live Sirene; legal persons under Sirenic's predicate, no individual entrepreneur.
- RNE and Judilibre cannot be compared without an account (RNE API answers 401, anti-robot challenge on its pages; Judilibre through the PISTE portal): the filing is compared with BODACC, which dates the publication, not the filing.
- Loading delay: the ratios dataset published on 2026-09-15 was loaded by Sirenic on 2026-10-02 (`ingestions` table of the copy of 2026-10-03); the zero gap of 2026-10-07 between the `finances` block and this dataset does not measure it.
- The BODACC block dates insolvency proceedings, deregistrations, sales and transfers, and no other family; the litigation block's provenance was wrong that day (defect #525).
- Sirenic's live reads go through a 24-hour cache, time declared; the Recherche d'entreprises API is used to check the identity and for nothing else.
- Officers counted, never read: no name, no date of birth.

> ⚠️ A measurement of what Sirenic serves against public official sources, on one given day; no other service is compared.

## Replaying the measurement

The draw: the query above, on a database with the same population (the fingerprint checks it). The reads, for each SIREN:

```
# Here 490586708; API key or x402 payment for the first line, parameters to be URL-encoded
GET https://api.sirenic.eu/v1/entreprise/490586708/dossier?blocs=finances,alertes_bodacc,contentieux,documents
GET https://bodacc-datadila.opendatasoft.com/api/explore/v2.1/catalog/datasets/annonces-commerciales/records?where=registre like "490586708"&select=familleavis_lib,count(*) as n,max(dateparution) as derniere&group_by=familleavis_lib
GET https://bodacc-datadila.opendatasoft.com/api/explore/v2.1/catalog/datasets/annonces-commerciales/records?where=registre like "490586708" and familleavis_lib = "Dépôts des comptes"&select=dateparution,depot&order_by=dateparution desc&limit=100
GET https://data.economie.gouv.fr/api/explore/v2.1/catalog/datasets/ratios_inpi_bce/records?where=siren="490586708"&order_by=date_cloture_exercice desc&limit=3
GET https://recherche-entreprises.api.gouv.fr/search?q=490586708&page=1&per_page=1
```

## How you pay

Every route is paid **per call**, in USDC or EURC on the Base network, over the x402 protocol: no account to create, no API key, no subscription. The first call returns a `402` quote your client settles, then replays the call. A failed call is never billed.

Open today: 150 free calls a month with an account, on 106 of 122 routes (the price list says which), and pay-per-call over x402 (USDC or EURC), with no account except registry filings. Prepaid credits: card top-up is not open yet.

Paid responses are **Ed25519-signed**: you can later prove what was served to you, and when. The whole catalogue is free to read in the [OpenAPI document](https://api.sirenic.eu/openapi.json) and in [llms.txt](https://api.sirenic.eu/llms.txt).

**One call, end to end**

```
# x402 client (npm): the 402 quote is settled and the call replayed automatically
npx x402-fetch https://api.sirenic.eu/v1/entreprise/552032534

# Or over MCP, in Claude Code / Cursor
claude mcp add --transport http sirenic https://api.sirenic.eu/mcp

# Or as a local server (stdio), with your key or an x402 wallet
claude mcp add sirenic -e SIRENIC_API_KEY=srn_live_... -- npx -y sirenic-mcp
```

## Routes used and pricing

| Route | Price | Sample | What it returns |
| --- | --- | --- | --- |
| `/v1/entreprise/{siren}/dossier` | $0.005 | [free sample](https://api.sirenic.eu/exemples/entreprise-siren-dossier.json) | Full French company file in ONE call: identity is the base, then add the blocks you want and pay only for those — etablissements, alertes_bodacc, contentieux, finances, marches_publics, marches_publics_ue, lobbying, risques_industriels, agrements, pi, documents, facturation_prep, score. Example: blocs=finances,pi,score. Each block costs what its own endpoint costs, total capped at $0.35. A block that cannot be served is NAMED with its reason: no data, not disclosable, or upstream outage. |

## Take it further

- [See a real response (free)](https://api.sirenic.eu/exemples/entreprise-siren-dossier.json)
- [Get the quote for /v1/entreprise/{siren}/dossier](https://api.sirenic.eu/v1/entreprise/552032534/dossier?blocs=finances,pi,score)
- [Read the route reference](https://api.sirenic.eu/en/api)
- [Create an account: 150 free calls a month](https://api.sirenic.eu/compte?lang=en&utm_source=recherche&utm_campaign=referencement)

## Read next

- [Automating business verification (KYB)](https://api.sirenic.eu/en/use-cases/kyb-automated-business-verification-with-per-block)
- [Detecting insolvency proceedings](https://api.sirenic.eu/en/use-cases/detect-insolvency-proceedings-france-europe)


---

[Home](https://api.sirenic.eu/en) · [Pricing](https://api.sirenic.eu/en/offres) · [Guides](https://api.sirenic.eu/en/articles) · [Routes](https://api.sirenic.eu/en/api) · [About](https://api.sirenic.eu/en/about) · [Legal notice](https://api.sirenic.eu/mentions-legales) · [Privacy](https://api.sirenic.eu/en/privacy)
