# Échéances de marchés publics à venir

L'inverse d'une alerte sur avis publié : les acheteurs relancent en général 4 à 9 mois avant l'échéance, et c'est cette fenêtre que la route ouvre. Le drapeau d'accord-cadre est le champ à regarder en premier : un accord-cadre qui expire ne se rejoue pas comme un marché ordinaire.

## Ce que la route rend

Description publiée au catalogue, telle que les agents la lisent (en anglais, comme toutes nos surfaces de découverte) :

**Upcoming French public-contract EXPIRATIONS — the predictive layer over DECP open data: contracts whose estimated end date falls inside your window (fenetre_mois, 1-24 months), filterable by CPV prefix (cpv=45) and department, with buyer, incumbent holders, amounts and framework-agreement flag. Buyers typically re-tender 4 to 9 months before expiry: tender anticipation BEFORE publication, not reactive alerts on published notices. Sorted by end date, 50 per page.**

## Identifiant attendu

Aucun identifiant : `fenetre_mois` de 1 à 24, plus éventuellement un préfixe `cpv` et un département.

> ⚠️ Un identifiant au mauvais format rend `400` et **n'est pas facturé** — mais il vous fait perdre un aller-retour. C'est la première cause d'appel raté sur les routes étrangères.

## Extrait d'une réponse réellement payée

Photo datée du 18/08/2026, tronquée à un élément par tableau. Ce n'est pas une donnée en direct. L'extrait complet est servi **gratuitement** par [la surface d'exemples](https://api.sirenic.eu/exemples/), et le schéma par l'OpenAPI.

```
{
 "filtres": {
  "cpv": "45",
  "departement": null,
  "fenetre_mois": 6
 },
 "total_marches": 28635,
 "page": 1,
 "pages": 573,
 "marches": [
  {
   "id": "2595014",
   "objet": "Travaux de reprise de la voirie et des réseaux divers de la caserne de gendarmerie d'Aubagne (13)",
   "acheteur": {
    "siret": "13002035700013",
    "nom": "SECRETARIAT GENERAL POUR L'ADMINISTRATION DU MINISTERE DE L'INTERIEUR SUD"
   },
   "montant": 557619.48,
   "accord_cadre": false,
   "date_notification": "2024-12-18",
   "duree_mois": 20,
   "date_fin_estimee": "2026-08-18",
   "code_cpv": "45000000-7",
   "departement": "13",
   "titulaires_sortants": [
    {
     "siren": "329338883",
     "nom": "COLAS FRANCE"
    }
   ]
  }
 ]
}
```

## Prix et facturation

Tarif : **$0.05**. Le montant qui fait foi est celui du devis `402` renvoyé par la route elle-même — pas ce texte, qui est dérivé de la même grille mais reste une page.

Une réponse d'erreur **annule le paiement** : un `400`, un `404` ou un `503` n'est jamais facturé. Une panne d'une source amont ferme la route en `503` plutôt que de servir une réponse dégradée.

## Appeler la route

```
# 1. Le devis, sans rien payer : la route répond 402 avec son montant
curl -i https://api.sirenic.eu/v1/marches/expirations

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

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

## Ce que cette route ne fait pas

Les dates de fin sont **estimées** depuis la date de notification et la durée déclarée. Ce n'est pas un calendrier officiel de remise en concurrence, et certaines lignes amont sont incomplètes.

## Routes voisines

- `/v1/acheteur/{siret}/profil` — $0.02
- `/v1/entreprise/{siren}/concurrents-marches` — $0.02
- `/v1/entreprise/{siren}/marches-publics` — $0.01

## Comment on paie

Chaque route se paie **à l'appel**, en USDC ou EURC sur le réseau Base, par le protocole x402 : pas de compte à créer, pas de clé d'API, pas d'abonnement. Le premier appel renvoie un devis `402` que votre client règle, puis rejoue l'appel. Un appel en erreur n'est jamais facturé.

Vous préférez une facture en euros et des crédits prépayés ? C'est **en préparation** et nous n'annonçons pas de date tant que ce n'est pas ouvert. Écrivez à [contact@sirenic.eu](mailto:contact@sirenic.eu?subject=Packs%20en%20euros) et vous serez prévenu à l'ouverture.

Les réponses payantes sont **signées Ed25519** : vous pouvez prouver plus tard ce qui vous a été servi, et à quelle date. Le catalogue entier est lisible gratuitement dans [l'OpenAPI](https://api.sirenic.eu/openapi.json) et le [llms.txt](https://api.sirenic.eu/llms.txt).

**Un appel, de bout en bout**

```
# 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 utilisées et prix

| Route | Prix | Ce qu'elle rend |
| --- | --- | --- |
| `/v1/marches/expirations` | $0.05 | Upcoming French public-contract EXPIRATIONS — the predictive layer over DECP open data: contracts whose estimated end date falls inside your window (fenetre_mois, 1-24 months), filterable by CPV prefix (cpv=45) and department, with buyer, incumbent holders, amounts and framework-agreement flag. Buyers typically re-tender 4 to 9 months before expiry: tender anticipation BEFORE publication, not reactive alerts on published notices. Sorted by end date, 50 per page. |

> ⚠️ Les dates de fin de marché sont estimées, calculées depuis la date de notification et la durée déclarée. Ce n'est pas un calendrier officiel de remise en concurrence.

## Passer à l'action

- [Voir une réponse réelle (gratuit)](https://api.sirenic.eu/exemples/marches-expirations.json)
- [Obtenir le devis de /v1/marches/expirations](https://api.sirenic.eu/v1/marches/expirations)
- [Être prévenu des packs en euros](mailto:contact@sirenic.eu?subject=Packs%20en%20euros)

## À lire ensuite

- [Anticiper les échéances de marchés publics](https://api.sirenic.eu/cas-usage/anticiper-echeances-marches-publics)

---

Les volumes cités sur cette page ont été mesurés en base le 19/08/2026. Ce sont des photos datées, pas des compteurs en direct.

Catalogue complet : https://api.sirenic.eu/