# List companies by combined criteria

The list follows the count: the same criteria, sorted on identite.siren, finances.date_cloture, finances.ca, finances.resultat_net, finances.bfr_sur_ca. Each page is one payment and states the exact total, counted in the same transaction as the page: you know what is left before paying for the next one.

## What the route returns

Catalogue description, exactly as agents read it:

**List French companies matching free cross-criteria on a pre-joined table of the official registries (the same criteria as the count route): geography, NAF activity, legal form, workforce, age, last filed accounts, public signals. Active legal persons by default. 100 companies per page, sorted on identite.siren, finances.date_cloture, finances.ca, finances.resultat_net, finances.bfr_sur_ca, with the exact total and the cut stated; each page is one payment.**

## Extract from a genuinely paid response

Dated snapshot from 2026-10-02, truncated to one item per array. It is not live data. The full extract is served **free of charge** from [the samples surface](https://api.sirenic.eu/exemples/entreprises-requete-lister.json), and the schema from the OpenAPI document.

```
{
 "criteres": [
  {
   "champ": "siege.departement",
   "op": "=",
   "valeur": "69"
  },
  {
   "champ": "finances.ca",
   "op": ">",
   "valeur": 1000000
  }
 ],
 "tri": {
  "champ": "finances.ca",
  "ordre": "desc",
  "valeurs_absentes": "en_dernier"
 },
 "page": 1,
 "page_suivante": false,
 "nombre_resultats": 23,
 "resultats": [
  {
   "identite": {
    "siren": "330864175",
    "denomination": "SOCIETE FICTIVE 25",
    "forme": "6540",
    "naf": "47.11F",
    "tranche_effectifs": "53",
    "etat": "A"
   },
   "siege": {
    "code_postal": "69003",
    "commune": "COMMUNE FICTIVE 69383",
    "departement": "69"
   },
   "finances": {
    "date_cloture": "2022-12-31",
    "ca": 4776841,
    "resultat_net": -288587
   }
  }
 ],
 "listes_bornees": {
  "resultats": {
   "nombre_total": 23,
   "tronque": false
  }
 },
 "champs": {
  "identite.etat": {
   "type": "texte",
   "source": "sirene",
   "fraicheur": "sirene-stock-unites-legales",
   "semantique": "état administratif Sirene : A active, C cessée"
  }
 },
 "disclaimer": "100 entreprises au plus par page payée, 100 pages au plus ; total exact et coupe dans listes_bornees ; valeurs absentes du tri en dernier ; chaque source datée dans stock.flux ; géographie du siège ; finances du dernier exercice social qualifié. / At most 100 companies per paid page, 100 pages at most; exact total and cut in listes_bornees; missing sort values last; each source dated in stock.flux; head-office geography; finances of the last qualified annual accounts."
}
```

## Price and billing

Price: **$0.02**. The authoritative amount is the one in the `402` quote returned by the route itself, not this text, which derives from the same grid but is still just a page.

An error response **cancels the payment**: a `400`, `404` or `503` is never billed. An upstream outage closes the route with a `503` rather than serving a degraded response.

## Calling the route

```
# 1. The quote, without paying anything: the route answers 402 with its amount
curl -i "https://api.sirenic.eu/v1/entreprises/requete/lister?criteres=%5B%7B%22champ%22%3A%22siege.departement%22,%22op%22%3A%22%3D%22,%22valeur%22%3A%2269%22%7D,%7B%22champ%22%3A%22finances.ca%22,%22op%22%3A%22%3E%22,%22valeur%22%3A1000000%7D%5D&tri=-finances.ca&page=1"

# 2. The paid call: the x402 client settles the quote and replays the request
npx x402-fetch "https://api.sirenic.eu/v1/entreprises/requete/lister?criteres=%5B%7B%22champ%22%3A%22siege.departement%22,%22op%22%3A%22%3D%22,%22valeur%22%3A%2269%22%7D,%7B%22champ%22%3A%22finances.ca%22,%22op%22%3A%22%3E%22,%22valeur%22%3A1000000%7D%5D&tri=-finances.ca&page=1"

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

## What this route does not do

No e-mail address, no phone number, no officer: companies qualified by the official registries, never contact details. Active legal persons by default, ceased ones on an explicit criterion on identite.etat.

## Neighbouring routes

- `/v1/entreprises/requete/compter`: $0.002
- `/v1/prospection`: $0.02
- `/v1/kyb/batch`: $0.105 / entity

## 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.

Would you rather have a euro invoice and prepaid credits? That is **in preparation**, and we will not announce a date until it is open. Write to [contact@sirenic.eu](mailto:contact@sirenic.eu?subject=Euro%20credit%20packs) and we will let you know when it opens.

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
```

## Routes used and pricing

| Route | Price | Sample | What it returns |
| --- | --- | --- | --- |
| `/v1/entreprises/requete/lister` | $0.02 | [free sample](https://api.sirenic.eu/exemples/entreprises-requete-lister.json) | List French companies matching free cross-criteria on a pre-joined table of the official registries (the same criteria as the count route): geography, NAF activity, legal form, workforce, age, last filed accounts, public signals. Active legal persons by default. 100 companies per page, sorted on identite.siren, finances.date_cloture, finances.ca, finances.resultat_net, finances.bfr_sur_ca, with the exact total and the cut stated; each page is one payment. |

## Frequently asked questions

### Which fields can I sort on?

On identite.siren, finances.date_cloture, finances.ca, finances.resultat_net, finances.bfr_sur_ca, prefixed with - for descending order; missing values come last in both orders. Each sort orders the companies the criteria retain; the default sort, identite.siren ascending, only follows an index, the primary key, when a criterion is set on identite.siren. A broad query is narrowed first (beyond 15 s it is refused, never charged). 100 companies per page, 100 pages at most.

## Take it further

- [See a real response (free)](https://api.sirenic.eu/exemples/entreprises-requete-lister.json)
- [Get the quote for /v1/entreprises/requete/lister](https://api.sirenic.eu/v1/entreprises/requete/lister?criteres=%5B%7B%22champ%22%3A%22siege.departement%22,%22op%22%3A%22%3D%22,%22valeur%22%3A%2269%22%7D,%7B%22champ%22%3A%22finances.ca%22,%22op%22%3A%22%3E%22,%22valeur%22%3A1000000%7D%5D&tri=-finances.ca&page=1)
- [Get notified about euro packs](mailto:contact@sirenic.eu?subject=Euro%20credit%20packs)


---

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