# Enrich and clean your CRM

“Enrich and clean my CRM: SIREN, VAT, address, ceased companies and duplicates.” A CRM base ages quietly: companies cease trading, others move, and the same company ends up entered twice. Which records point to a ceased company, or to the same company twice? And for the others, what are the SIREN, the head-office address and the VAT number? Before a campaign, paste the accounts export in Claude and ask: every record comes back at its rank, ceased companies and duplicates flagged, and an ambiguous name comes back with its candidates rather than with a choice made for you.

## What Claude calls, and what it reads

Claude reads the export and takes one line per record: the SIREN, the SIRET, the French VAT number, or the name and postcode when the line has no identifier. It calls the `get_french_company_identity_batch` tool, which serves the `/v1/identite/lot` route, 2 to 150 lines per tool call (the route takes 300: a full batch takes 2 tool calls). For each line, the answer gives:

- ceased companies: the status in the Sirene register, `actif` or `cesse`, and for a ceased company the cessation date when it is published; its VAT number is not sent to VIES (`non_verifie`, `entreprise_cessee`);
- duplicates: a line that points to a company already seen above, by its SIREN, the SIRET of one of its sites, its VAT number or its name, carries `doublon_de`, the rank of the first one; the batch head counts duplicates;
- for a resolved line: the SIREN, the head-office SIRET, the legal name, the head-office address, the VAT number and its VIES status (`valide`, `invalide`, `indisponible`, `non_verifie`);
- the resolution, from a closed list (`resolu`, `a_confirmer`, `introuvable`, `siren_invalide`, `siren_inconnu`, `non_diffusible`); an ambiguous name comes back `a_confirmer` with up to 5 candidates ranked by score;
- the line's rank and what was read; the typed name is never echoed.

> The route says which line duplicates which and which company has ceased; it does not touch your CRM. Merging and archiving remain yours.

## A five-line export

Five neutral lines, one per input form, taken from our reference set of companies: the second duplicates the first (another site of the same company), the third points to a ceased company, the last is an invented name. No customer data.

What comes back was read on 2026-10-09 with our test key, in Claude, on the Sirene stock of 2026-10-01; the VIES status is the one at the time of the call. These five lines fit in one call of a verified account's free quota; outside it, they cost $0.015.

| Line | What it carries | What comes back |
| --- | --- | --- |
| 1 | `552032534`, a SIREN | `resolu`, `actif`, head-office SIRET, VAT number `valide` on VIES |
| 2 | `55203253400711`, the SIRET of another site of the same company | `resolu`, `doublon_de` 1 |
| 3 | `FR48056200454`, a VAT number | `resolu`, `cesse` (ceased 2012-11-05), VAT `non_verifie` (`entreprise_cessee`) |
| 4 | `AIR LIQUIDE CO2 EUROPE` and `75007`, a name and a postcode | `resolu` to SIREN 662027374, `actif`, head-office SIRET, VAT number `valide` on VIES |
| 5 | `QXZJW VKPRT` and `33000`, an invented name | `introuvable` |

## Limits, measured

- VAT is checked live on VIES, line by line, one at a time: in French business hours, VIES serves one verdict every 4 to 5 s and refuses concurrency; before pipelined checks, a full batch had 15 of 262 resolved lines checked; with them, outside business hours (23:51 UTC), 105 of 265; measured 2026-10-08. A line whose check could not start in time says so (`non_verifie`, `budget_vies_epuise`): run those lines again in a smaller batch, or outside business hours.
- A batch has 60 s, 40 s of which to find names. A name line whose index stage could not be read in time says so (`etages_abandonnes`) and is never `resolu`; the batch head counts them. On the full batch of 300 names of 2026-10-08 (23:51 UTC), 9 lines of 300 said so.
- The cessation date is read live, for ceased lines only; when it is missing, the line says why: `non_publiee`, `source_indisponible` or `budget_lot_epuise`.
- 2 to 300 lines per call; the request line is capped at 11,000 bytes, that is 300 SIRENs or about 148 names of 63 characters; beyond that, a `requete_trop_large` refusal; beyond about 16 KB, an empty 431; neither is billed.

## What the route does not do

> ⚠️ It adds no contact: no e-mail address, no phone number, no person's name; that data is not in the official registers. It changes nothing in your CRM. It never chooses between two namesakes. A sole trader is never served as a candidate, and their SIREN line comes back without name or address.

## What a cleanup costs

Up to 50 lines per call, the batch is in the free quota of verified accounts: one of the month's 150 free calls, no credit debited, and the five example lines cost nothing there. Beyond 50 lines, or outside the quota, the batch is billed $0.003 per line, duplicates included: $0.015 for the five example lines, $0.90 for a full batch of 300 lines, with prepaid credits (card top-up is not open yet), or over x402 for the same amount in USDC or EURC. A refused or unavailable batch is never billed.

## The same batch, without an assistant

The five example lines, encoded the way the MCP tool encodes them; the API key is read from the `SIRENIC_KEY` variable.

```
# The five example lines, 2 to 300 per call
curl "https://api.sirenic.eu/v1/identite/lot?lignes=552032534%3B55203253400711%3BFR48056200454%3BAIR+LIQUIDE+CO2+EUROPE%7C75007%3BQXZJW+VKPRT%7C33000" \
  -H "X-Api-Key: $SIRENIC_KEY"

# Over MCP, on the connector https://api.sirenic.eu/mcp/connecteur (tools/call method),
# the key in an Authorization: Bearer $SIRENIC_KEY header, or Claude's OAuth connection
{"name": "get_french_company_identity_batch", "arguments": {"lignes": ["552032534", "55203253400711", "FR48056200454", "AIR LIQUIDE CO2 EUROPE|75007", "QXZJW VKPRT|33000"]}}
```

## 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 105 of 121 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/identite/lot` | $0.003 / entity | [free sample](https://api.sirenic.eu/exemples/identite-lot.json) | Batch identity for French customer/CRM lists: 2 to 300 lines per call, each a SIREN, SIRET, French VAT number or name\|postcode, in file order. Per line: resolution (resolu, a_confirmer with up to 5 ranked candidates, introuvable, siren_invalide, siren_inconnu, non_diffusible), SIREN, head-office SIRET, status, cessation date, address, VAT checked live on VIES (indisponible or budget_vies_epuise, never a false invalide), duplicates flagged. Typed names never echoed. $0.003 per line, up to $0.90. |
| `/v1/recherche` | $0.002 | [free sample](https://api.sirenic.eu/exemples/recherche.json) | 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/tva/verifier/{numero}` | $0.003 | [free sample](https://api.sirenic.eu/exemples/tva-verifier-numero.json) | EU VAT validation against the official VIES service: validate any intra-community VAT number (all member states) for compliance and due diligence, the tax half of verify supplier before payment and a required check under the e-invoicing mandate France September 2026. Returns valid/invalid/unavailable with the VIES consultation identifier as proof. Name and address only for a holder that its number's format or its country's register proves a legal person; otherwise left out, counted in ecartes. |

## Frequently asked questions

### My records only have a name and a town: does it work?

The head-office postcode is needed: name resolution runs at that postcode. Without it, go through the name search first ($0.002, within the monthly free calls), which returns a confidence score, then send the SIRENs found to the batch.

### How is a duplicate spotted?

Two lines that point to the same company, whatever their form (SIREN, a site's SIRET, VAT number, name): the second carries doublon_de, and only the first carries the detail. Two sites of one company are therefore a duplicate for the route: you decide whether they are two accounts.

### Is my base also used for invoicing?

The same route answers it with the same answer: the page “Get your customer base ready for e-invoicing” starts from the question asked before the first e-invoice.

## Take it further

- [See a real response (free)](https://api.sirenic.eu/exemples/identite-lot.json)
- [Get the quote for /v1/identite/lot](https://api.sirenic.eu/v1/identite/lot?lignes=552032534%3BHERMES%20INTERNATIONAL%7C75008)
- [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

- [Get your customer base ready for e-invoicing](https://api.sirenic.eu/en/use-cases/get-your-customer-base-ready-e-invoicing)
- [Building a B2B prospecting list](https://api.sirenic.eu/en/use-cases/build-b2b-prospecting-list-from-official-french-registry)
- [Monitoring a portfolio of customers or suppliers](https://api.sirenic.eu/en/use-cases/monitor-customer-portfolio-daily-alerts-signed-webhook)


---

[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)
