Moving from the Pappers API to Sirenic: what works, what is missing
Does your code already call the Pappers API v2 over HTTP? Sirenic answers under /compat/pappers/v2/ with the same paths and the same parameter and field names, for the company profile, search and suggestions, at its own prices. Before changing a line, read what Pappers does better and what the interface does not serve: this page starts there.
See a real response (free) Get the quote for /v1/entreprise/{siren}
What Pappers does better than us
Let us start there: if one of these points decides for you, stay with Pappers, or keep both.
- They serve politically-exposed-person status. Sirenic does not serve it at all: the 2026-08-07 feasibility review said no, because the French HATVP publishes “[Données non publiées]” instead of dates of birth, so an exact namesake would come out as a “strong match”.
- Their autocomplete is free and key-less, with a daily quota: an excellent entry point for a public form.
- One very rich record for 1 credit beats our separate calls when you want everything about a company and have no reason to pick and choose.
- They cover French non-profit records (RNA) and produce several PDFs we do not (their own extract, the INSEE situation notice).
- On one case in our calibration (BOBION & JOANIN), their rating was better founded than ours: it read net cash and tax and social debt, two dimensions our scoring did not have at that date.
What the compatible interface does not serve
The compatible interface serves 3 of the 23 routes their catalogue listed on 2026-08-06: /compat/pappers/v2/entreprise, /compat/pappers/v2/recherche, /compat/pappers/v2/suggestions. Any other route under /compat/pappers/v2/ answers route_non_couverte, with no payment, and names the served paths.
A field Sirenic does not serve is never served empty or null: the key is left out and named in champs_non_servis, with its reason.
- Never served (
jamais_servi_ligne_6): beneficial owners, phone and e-mail, politically-exposed-person status, address, nationality and place of birth of officers who are natural persons. - The birth year only (
annee_seule): neither an officer's full date of birth nor their age. - Not covered under the prefix (
non_couvert): documents (extracts, articles, filed accounts), search organised by officer, monitoring; search refuses creation-date criteria, and never combines a text with criteria. - Served elsewhere by Sirenic (
autre_route): establishments, financials, BODACC notices, insolvency proceedings, share capital;routes_sirenicnames the route that serves them, at its own price. - A value the route could not settle (
absence_non_conclusive): the key is named rather than served wrong, for instance a total that is only a lower bound. - The key never goes in the URL: an
api_tokenparameter is refused before any payment; the Sirenic key goes in theapi-keyheader (orX-Api-Key). - Extra fields are refused before any payment: a
champs_supplementairesparameter is refused, with the reasonjamais_servi_ligne_6if it asks for the phone, the e-mail or politically-exposed-person status,non_couvertotherwise. - Refusals are bounded: beyond 60 refusals per minute from one address, the answer is the
trop_de_refusrefusal, withRetry-After; a served call does not count. - A packaged client that hard-codes its base address does not migrate through its settings: change that address in a copy of the client, or call over plain HTTP (your own code, the HTTP module of n8n or Make, a Zapier webhook).
- No score under the prefix: Sirenic's default-risk score stays a separate route, under its own name, never under their scoring's name.
Pappers: what we found
Surveyed on 2026-08-11, source: https://www.pappers.fr/api. Every line comes from that dated survey, and from it alone.
- France API v2: 23 routes listed in the catalogue on 2026-08-06, authenticated with an
api-keyheader. - Billing in credits, with a surcharge per requested field: on the paid account used on 2026-08-11, financial scoring and non-financial scoring cost 30 credits each, sanctions and politically-exposed-person status 1 credit, phone and e-mail 3 credits.
Their euro price list is not reproduced here: www.pappers.fr returned 403 to our 2026-08-19 checks, and we do not publish a competitor's pricing from second-hand sources. See their own pricing page.
What changes in your code
Replace the Pappers API v2 base address in your code with https://api.sirenic.eu/compat/pappers/v2/, and the Pappers key with a Sirenic key (srn_live_…) in the api-key header. On the served paths, parameter and field names stay those your code sends and reads.
The OpenAPI description of these paths, to import into a client generator or read before calling, is served on its own, free and with no key: /openapi-compat-pappers.json. The complete Sirenic API is described in /openapi.json.
Without an account, each call can also be paid per call, over x402, with no key. With an account, 150 free calls a month on the quota routes.
The response keeps what Sirenic adds: citation as the first key, provenance, listes_bornees, champs_non_servis and routes_sirenic; a client that rejects unknown keys must ignore them. It is signed over the bytes you receive, and a paid response carries a verification number.
| Compatible path | Sirenic route that answers | Price |
|---|---|---|
/compat/pappers/v2/entreprise?siren=… | /v1/entreprise/{siren} | $0.005 |
/compat/pappers/v2/entreprise?siren=…&blocs=… | /v1/entreprise/{siren}/dossier | $0.005, plus the requested blocks |
/compat/pappers/v2/recherche?q=… | /v1/recherche | $0.002 |
/compat/pappers/v2/recherche?code_naf=… | /v1/prospection | $0.02 per page |
/compat/pappers/v2/suggestions?q=… | /v1/suggestions | free |
The same call, at Sirenic's address
# The company profile, under the Pappers API v2 field names (Sirenic key in the api-key header)
curl "https://api.sirenic.eu/compat/pappers/v2/entreprise?siren=552032534" \
-H "api-key: $SIRENIC_KEY"
# Suggestions, free, no key
curl "https://api.sirenic.eu/compat/pappers/v2/suggestions?q=danone"
How this page is built
The facts about Pappers come from our survey, dated and sourced above; nothing is extrapolated. The path, parameter and field names the interface accepts were read in open-source clients; no text of the Pappers documentation is reproduced here. Pappers is a trademark of its owner, not affiliated with Sirenic.
If you spot an error or a fact that has become false, write to contact@sirenic.eu: we will correct the page and its survey date.
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 123 of 129 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 and in 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} | $0.005 | free sample | Full French company profile by SIREN: official company data from the French company registry (INSEE Sirene / INPI RNE). One lookup returns legal name, legal form, head office, NAF code, workforce bracket, creation date, active or ceased status, officers with name and role, collective agreement, the intra-EU VAT number and, for LEI holders, the GLEIF level-2 group (groupe_lei: consolidating parents or declared reason for none). The core KYB building block for verifying a French counterparty. |
/v1/recherche | $0.002 | free sample | French company search and company lookup by name or SIREN in the official French company registry (INSEE Sirene / INPI RNE open data). Name search returns the top 10 matches with identity, SIREN, NAF code, city and active/ceased status, plus a score_confiance (0-1 match confidence) that helps disambiguate homonyms. The entry point to official data and company data on France: resolve a trading name to its SIREN identifier before pulling the full company profile, filings or financials. |
/v1/prospection | $0.02 | free sample | French B2B prospecting and lead generation over the full official French company registry: build targeted company lists with multi-criteria filters: NAF/APE activity code, departement or postal-code prefix, legal form, workforce bracket, company age, active RGE environmental certification, gender-equality index. Returns 100 active companies per page; each page is one payment. Combine filters to narrow a market segment into fresh, registry-grade company lists for France. |
Frequently asked questions
Do I need a Sirenic account?
No. Each call can also be paid per call, over x402, with no account and no key: the first call returns a quote, your client settles it and replays the call. An account lets you pay with an API key, with its free quota.
What does my code get for a field Sirenic does not serve?
Nothing under that name: the key is left out, never served null, and named in champs_non_servis with its reason. A typed client that requires the key must treat it as missing.
Is an error billed?
No: an error response is never billed, and a refusal by the interface (path, method, parameter, key in the URL) goes out before any payment.
Take it further
No account to create, no key to request: the first step is free and shows you exactly what you would be buying.
See a real response (free) Get the quote for /v1/entreprise/{siren} Read the route reference Create an account: 150 free calls a month