Expiring French public contracts
find_expiring_french_public_contractsTender anticipation for France: public contracts EXPIRING within a window (1-24 months, default 12) — buyers re-tender 4 to 9 months before expiry, so this surfaces opportunities BEFORE any notice is published. Filter by CPV prefix (45 = construction) and department. Returns buyer, incumbent holders, amounts, framework-agreement flag, estimated end dates (initial declared duration; duration amendments are absent from the source). From official DECP open data. Paid via x402 ($0.05 in USDC or EURC).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cpv | No | Optional CPV prefix, 2-8 digits (45 = construction works) | |
| page | No | Page, 50 per page | |
| api_key | No | Optional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote. | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. | |
| departement | No | Optional French department code (69, 2A, 971...) | |
| fenetre_mois | No | Window in months, 1-24 (default 12) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. | |
| quote | No | The signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`. | |
| resultat | No | The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free). | |
| payment_required | Yes | True when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`. |