82trust / 100

Requete Compter

by Sirenic in Company & people data

x402 APIPassing, checked 4 min ago

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.

GET https://api.sirenic.eu/v1/entreprises/requete/compter

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
162 ms typical, 162 ms slowest 5%
Last check
4 min ago
Next check
in 25 min

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://api.sirenic.eu/v1/entreprises/requete/compter?criteres=%5B%7B%22champ%22%3A%22siege.departement%22%2C%22op%22%3A%22%3D%22%2C%22valeur%22%3A%2269%22%7D%2C%7B%22champ%22%3A%22finances.ca%22%2C%22op%22%3A%22%3E%22%2C%22valeur%22%3A1000000%7D%5D"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.sirenic.eu%2Fv1%2Fentreprises%2Frequete%2Fcompter
const res = await pay("https://api.sirenic.eu/v1/entreprises/requete/compter?criteres=%5B%7B%22champ%22%3A%22siege.departement%22%2C%22op%22%3A%22%3D%22%2C%22valeur%22%3A%2269%22%7D%2C%7B%22champ%22%3A%22finances.ca%22%2C%22op%22%3A%22%3E%22%2C%22valeur%22%3A1000000%7D%5D");
console.log(await res.json());

Example input

{
  "criteres": "[{\"champ\":\"siege.departement\",\"op\":\"=\",\"valeur\":\"69\"},{\"champ\":\"finances.ca\",\"op\":\">\",\"valeur\":1000000}]"
}

Example output

{
  "disclaimer": "Compte exact ; chaque source datée dans stock.flux, table fermée au-delà de 45 jours ; géographie du siège ; finances du dernier exercice social qualifié. / Exact count; each source dated in stock.flux, table closed beyond 45 days; head-office geography; finances of the last qualified annual accounts.",
  "nombre_total": 23,
  "perimetre": "personnes morales diffusibles du stock Sirene, actives (identite.etat = A) sauf critère sur identite.etat ; entrepreneurs individuels et unités en diffusion partielle jamais comptés ni listés ; un critère ne retient jamais une valeur absente ; un critère sur identite.naf ne retient que les codes de la NAF rév. 2 / public legal persons of the Sirene stock, active (identite.etat = A) unless a criterion sets identite.etat; sole traders and partially public units never counted or listed; a criterion never retains a missing value; a criterion on identite.naf only retains NAF rev. 2 codes",
  "source": "INSEE Sirene, INPI et Banque de France (comptes), Signaux Faibles (liasses), ADEME (RGE), ministère du Travail (égapro), Géorisques (ICPE), DECP, EBA, EIOPA et ARCEP (agréments), table pré-croisée par Sirenic ; licence de chaque source : GET /v1/provenance/registres",
  "stock": {
    "age_jours": 1,
    "construit_le": "2026-10-02",
    "flux": {
      "sirene-stock-unites-legales": {
        "dernier_mis_a_jour": "2026-10-01"
      }
    },
    "seuil_jours": 45
  }
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
4 min agoPassed402177 ms$0.002
3 h agoPassed402162 ms$0.002
8 h agoPassed402128 ms$0.002