# Sirenic French Company Count

> Sirenic French Company Count is a paid API for AI agents from api.sirenic.eu, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-11).

Returns the exact count of active French companies matching a set of cross-criteria filters (geography, NAF sector, legal form, workforce, financials, public signals) from pre-joined official registries.

## Facts

- Endpoint: GET https://api.sirenic.eu/v1/entreprises/requete/compter?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/sirenic-french-company-count-99efddb8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Acu2BYEKQpBS4_FYqbBMw

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability sirenic-french-company-count-99efddb8
```

Example prompt: How many active French companies are in the plastics manufacturing sector (NAF code 2229B) with between 10 and 49 employees and at least €500k in annual revenue — I want to size this market before building a prospect list.

## When to prefer this

Use this endpoint when you need to size a French B2B market before building a full listing — it costs one cheap call ($0.002) and gives you an exact count against official pre-joined registry data. Prefer it over the listing endpoint when you only need the total count, not company details. Choose it over generic business databases when you need verified official French data (SIREN/SIRET, NAF, legal form, filed accounts, public signals like RGE or ICPE).

## Known failure modes

- Invalid or malformed criteres JSON returns a 400 error
- criteres array exceeds 20 conditions or 2048 URL-encoded characters — request rejected
- Unknown champ or unsupported operator for a field returns a validation error
- Payment not included or invalid x402 payment header results in a 402 response
- Overly restrictive criteria combinations may return a count of zero (valid but empty result)
- URL encoding issues with the criteres parameter may silently drop conditions

## How this service works

Count French companies matching free cross-criteria on a pre-joined table of the official registries: geography (departement, region, postal-code prefix), NAF activity, legal form, workforce, age, last filed accounts (revenue, net income, margins, ratios, trends, cash items) and public signals (RGE, equality index, ICPE/Seveso, public contracts, authorisations). Active legal persons by default. Returns the exact count and each source's date: size a market before listing it.

## Output

A JSON object containing the exact integer count of French legal persons matching all specified criteria, along with the freshness date of each source registry used to build the pre-joined table. No company-level records are returned — only the aggregate count and data provenance timestamps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "tri": {
       "type": "string",
       "description": "Accepted without effect by the count route, so that the same query serves both modes. Sort field among identite.siren, finances.date_cloture, finances.ca, finances.resultat_net, finances.bfr_sur_ca, prefixed with - for descending order (default identite.siren); missing values come last in both orders."
      },
      "page": {
       "type": "string",
       "description": "Accepted without effect by the count route. Page number, 1 to 100, 100 companies per page; each page is a separate payment (default 1)."
      },
      "champs": {
       "type": "string",
       "description": "Accepted without effect by the count route. Comma-separated catalogue fields to serve (default: identity, head office, last closing date, revenue, net income); the SIREN and the fields of the criteria and of the sort are always served."
      },
      "criteres": {
       "type": "string",
       "description": "JSON array of at most 20 conditions {\"champ\",\"op\",\"valeur\"}, URL-encoded, at most 2048 characters, combined with AND (OR goes through the in operator): champ is a filterable field of the catalogue served by GET /v1/lecture, op one of its operators, valeur typed by the field. Active legal persons by default (identite.etat = A; any criterion on identite.etat replaces it)."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/sirenic-french-company-count-99efddb8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.sirenic.eu](https://www.zero.xyz/host/api.sirenic.eu/llms.txt)
