---
name: sirenic-company-data
description: "Look up and verify French and European companies from official registers through the Sirenic API: SIREN lookup, prospect lists from the French register, company profiles, KYB files and default risk, sanctions screening, annual accounts, BODACC legal events, and supplier and invoice checks (VAT against VIES, IBAN form check). Use it when an agent must build a prospect list, decide whether it can work with a customer, identify a company or fetch official company facts. Every call is paid per request (x402, USDC or EURC) or with an API key, and no error response is ever charged."
---

# Sirenic — official company data for agents

Base URL: https://api.sirenic.eu. Every data route is `GET /v1/...` and answers JSON. The full
list of routes with live prices is at https://api.sirenic.eu/llms.txt (OpenAPI 3.1 at
https://api.sirenic.eu/openapi.json).

## Start free

- `GET /v1/suggestions?q=<company name>` — up to 5 French matches with their
  SIREN. No payment, no key.
- `GET /v1/demo/entreprise?siren=552032534` — a free demo of the full profile
  route, same shape and signature as a paid call.

## Pay per call — three ways, pick one

1. **x402, no account.** Call a /v1 route; you get HTTP 402 with a signable
   quote (price, asset, pay-to address, network eip155:8453). Sign it with
   an x402 client (npm `@x402/fetch`) and retry with the `PAYMENT-SIGNATURE`
   header. USDC or EURC on base, same numeric amount. Your client refuses
   quotes above $1.00 per payment by default — every route is at or
   under that for a single unit.
   The 402 also says whether that route is in the free monthly quota of an API key: in a `free_tier` object of its JSON body (`this_route`, `excluded_because` when it is not, `signup_url`) and in a `WWW-Authenticate: Bearer realm="sirenic", free_tier="…"` header.
2. **API key.** Create one at https://api.sirenic.eu/compte?utm_source=api&utm_campaign=skill, then send
   `X-Api-Key: srn_live_…` on any /v1 call. Same per-call prices; credits
   expire 12 months after purchase.
   Open today: 150 free calls a month with an account, on 109 of 125 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.
3. **MCP.** `POST https://api.sirenic.eu/mcp` (streamable HTTP, anonymous): every tool takes an
   optional `x_payment` (call once without it to get the quote back, sign, call
   again) or `api_key` argument. Assistants with OAuth use the connector at
   `POST https://api.sirenic.eu/mcp/connecteur` — see https://api.sirenic.eu/auth.md.

## The routes you will use most

| Route | Price | Use it when you need to… |
|---|---|---|
| `GET /v1/recherche` | $0.002 | resolve a company name to its SIREN (top 10 matches with a 0-1 confidence score) |
| `GET /v1/prospection` | $0.02 | build a list of French companies to prospect (activity, area, legal form, workforce, age), 100 active companies per page |
| `GET /v1/entreprise/{siren}` | $0.005 | full official profile: legal form, head office, NAF code, officers, intra-EU VAT number |
| `GET /v1/entreprise/{siren}/dossier` | $0.005 | several blocks about ONE company in one call (?blocs=), each priced as its own route |
| `GET /v1/kyb/{siren}` | $0.15 | Know-Your-Business file for onboarding a French counterparty |
| `GET /v1/score/defaillance/{siren}` | $0.10 | default risk of a French company, to decide whether you can work with a customer: a decision aid, not a credit rating |
| `GET /v1/sanctions/check` | $0.02 | screen a person or company name against sanctions lists |
| `GET /v1/entreprise/{siren}/alertes` | $0.01 | BODACC legal alerts: insolvency proceedings, deregistration, sales |
| `GET /v1/facturation/dossier` | $0.03 | France: can you safely invoice or pay this supplier? VAT live against VIES, IBAN form check, deterministic verdict |
| `GET /v1/eu/facturation/dossier` | $0.03 | Belgium and Poland: the same verdict, plus Peppol reachability and the Polish White List account check |
| `GET /v1/tva/verifier/{numero}` | $0.003 | one EU VAT number against VIES |
| `GET /v1/iban/verifier/{iban}` | $0.005 | IBAN structure and key, bank identified from official registries (never the account holder) |
| `GET /v1/bodacc/recherche` | $0.03 | WHICH companies are in trouble: announcements by family, date window and department |
| `GET /v1/eu/recherche` | $0.003 | search across the official European registers by name |
| `GET /v1/eu/entreprise/{pays}/{id}` | $0.01 | European company profile by country code and national identifier |
| `GET /v1/intelligence/{siren}` | $1.00 | one signed due-diligence verdict on a French company, every block included |
| `GET /v1/associations/recherche` | $0.002 | French associations (loi 1901) by name, RNA register |

## Rules that protect you

- Any non-2xx response is never charged: the x402 payment is cancelled before settlement, so the transfer never happens and there is nothing to refund.
- Only GET is served on /v1. Any other method gets 405 before anything runs;
  nothing is charged.
- Every paid response carries a `provenance` array: for each block, the
  official register it came from, its licence and its `as_of` date. Read it
  before acting on a value.
- Every paid JSON response starts with `citation`, one line derived from that
  provenance. When you report a result, cite its `citation` verbatim.
- Invoice verification never checks the account holder's name nor the
  account's existence, and Sirenic is not an accredited e-invoicing platform
  (PDP): the verdict says so in `verdict.non_verifie`, next to the green light.
- Every 2xx /v1 response is signed (Ed25519, detached): public keys (every key
  that has signed, by kid, never removed) and recipe at
  https://api.sirenic.eu/.well-known/sirenic-signing-key.
- Every 2xx of a priced route also carries X-Sirenic-Verification-Id:
  https://api.sirenic.eu/verifier/{number} shows its public receipt (never the data); the KYB
  file and the PDF report print it, so the person you hand them to can check them.
