# Public contracts won by a company

Two readings for one call. In prospecting, it is a competitor's commercial track record. In supplier due diligence, it reveals concentration: a provider whose whole revenue comes from a single buyer carries a risk its accounts do not show.

## What the route returns

Catalogue description, exactly as agents read it:

**Government contracts and public procurement awards won by a French company, from the official DECP open data (données essentielles de la commande publique): buyers, amounts, dates and procedures — aggregates plus the most recent contracts, each with its estimated end date. Covers French public tenders already awarded to the company rather than open calls, a factual view of its government contracts history for supplier due diligence.**

## Expected identifier

9-digit company number.

> ⚠️ A wrongly formatted identifier returns `400` and is **not billed** — but it costs you a round trip. It is the leading cause of failed calls on the foreign routes.

## Extract from a genuinely paid response

Dated snapshot from 2026-08-18, 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/), and the schema from the OpenAPI document.

```
{
 "siren": "130031487",
 "nombre_marches": 26,
 "montant_total": 4943495.5,
 "premier_marche": "2023-06-07",
 "dernier_marche": "2026-06-01",
 "marches_en_cours": 20,
 "prochaine_echeance": "2026-09-02",
 "marches": [
  {
   "id": "20262026100",
   "objet": "ACTIONS DE FORMATION POUR LA SOUS SPECIALITE E1D ESPACES VERTS LOT 7 POUR LE COMPTE DE LA DELEGATION PAYS DE LA LOIRE DU CNFPT",
   "montant": 100000,
   "montant_modifie": null,
   "co_traitance": true,
   "date_notification": "2026-06-01",
   "duree_mois": 24,
   "date_fin_estimee": "2028-06-01",
   "accord_cadre": true,
   "offres_recues": 1,
   "acheteur": {
    "siret": "18001404502245",
    "nom": "CENTRE NATIONAL DE LA FONCTION PUBLIQUE TERRITORIALE"
   },
   "nature": "Marché",
   "procedure": "Procédure adaptée",
   "code_cpv": "80530000-8",
   "lieu_execution": "49000"
  }
 ],
 "liste_tronquee": false,
 "source": "Données essentielles de la commande publique (DECP consolidées) via data.economie.gouv.fr, licence ouverte 2.0"
}
```

## Price and billing

Price: **$0.01**. 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. Le devis, sans rien payer : la route répond 402 avec son montant
curl -i https://api.sirenic.eu/v1/entreprise/552032534/marches-publics

# 2. L'appel réglé — le client x402 paie le devis et rejoue la requête
npx x402-fetch https://api.sirenic.eu/v1/entreprise/552032534/marches-publics

# 3. Ou en MCP, dans Claude Code / Cursor / un agent
claude mcp add --transport http sirenic https://api.sirenic.eu/mcp
```

## Neighbouring routes

- `/v1/entreprise/{siren}/marches-publics-ue` — $0.02
- `/v1/entreprise/{siren}/concurrents-marches` — $0.02
- `/v1/marches/expirations` — $0.05

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

```
# Client x402 (npm) — le devis 402 est réglé et l'appel rejoué automatiquement
npx x402-fetch https://api.sirenic.eu/v1/entreprise/552032534

# Ou en MCP, dans Claude Code / Cursor
claude mcp add --transport http sirenic https://api.sirenic.eu/mcp
```

## Routes used and pricing

| Route | Price | What it returns |
| --- | --- | --- |
| `/v1/entreprise/{siren}/marches-publics` | $0.01 | Government contracts and public procurement awards won by a French company, from the official DECP open data (données essentielles de la commande publique): buyers, amounts, dates and procedures — aggregates plus the most recent contracts, each with its estimated end date. Covers French public tenders already awarded to the company rather than open calls, a factual view of its government contracts history for supplier due diligence. |

> ⚠️ Contract end dates are estimates, computed from the notification date and the declared duration. This is not an official re-tendering calendar.

## Take it further

- [See a real response (free)](https://api.sirenic.eu/exemples/entreprise-siren-marches-publics.json)
- [Get the quote for /v1/entreprise/{siren}/marches-publics](https://api.sirenic.eu/v1/entreprise/552032534/marches-publics)
- [Get notified about euro packs](mailto:contact@sirenic.eu?subject=Euro%20credit%20packs)

## Read next

- [Anticipating public-contract expiries](https://api.sirenic.eu/en/use-cases/anticipate-public-contract-expiries-before-notice)

---

Volume figures on this page were measured in our database on 2026-08-19. They are dated snapshots, not live counters.

Full catalogue : https://api.sirenic.eu/