European company EU procurement awards (TED)
get_european_company_eu_procurementEuropean public-procurement contract awards won by a company from Latvia (LV), Norway (NO), Belgium (BE), Denmark (DK), Finland (FI), Sweden (SE), Czechia (CZ), Slovakia (SK), Estonia (EE) or Lithuania (LT), from TED (Tenders Electronic Daily, EU Publications Office): award notices matched by the NATIONAL identifier in every form it takes on TED (variantes_identifiant) — buyer, country, subject, notice-level amount, CPV codes, co-winners, official TED link. Depending on the country, 40 to 86% of award notices carry a readable winner identifier (measured 2026-09-17): nombre_avis: 0 is a NON-conclusive absence. France has get_french_company_eu_procurement, the UK get_uk_company_public_procurement. Live TED query, cached 24 h. Paid via x402 ($0.02 in USDC or EURC).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | National register identifier, e.g. 40003242722 | |
| pays | Yes | ISO-3166 alpha-2 country code: LV, NO, BE, DK, FI, SE, CZ, SK, EE or LT | |
| 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. |
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, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it). | |
| 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`. |