# EU public-procurement awards won by a European company

TED publishes above-threshold award notices with the winner's national identifier — in forms that vary from notice to notice (spaces, dots, hyphens, prefixes). This route searches all of them for a company from one of the nine served countries and serves what matters: buyer, subject, notice-level amount, CPV codes, co-winners, official link — published facts, never a score.

## What the route returns

Catalogue description, exactly as agents read it:

**European public procurement contract awards won by a company from Latvia, Norway, Belgium, Denmark, Finland, Sweden, Czechia, Slovakia or Estonia, from TED (Tenders Electronic Daily): notices matched by NATIONAL identifier in all its published forms — buyer, country, subject, notice-level amount, CPV codes, co-winners, official link. 40 to 86% of award notices carry a readable winner identifier depending on the country: zero is a non-conclusive absence. Live TED query, cached 24 h.**

## Expected identifier

Country code (LV, NO, BE, DK, FI, SE, CZ, SK, EE) and national register identifier.

> ⚠️ A wrongly formatted identifier in the **path** 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. A **search** parameter, by contrast, is cleaned up: unsupported characters are stripped and the usable query is served.

## Extract from a genuinely paid response

Dated snapshot from 2026-09-17, 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.

```
{
 "pays": "LV",
 "id_national": "40003242722",
 "variantes_identifiant": [
  "\"40003242722\""
 ],
 "nombre_avis": 16,
 "nombre_retourne": 16,
 "tronque": false,
 "periode_couverte": "avis eForms (identifiants gagnants publiés depuis le 2023-10-25)",
 "avis": [
  {
   "reference_ted": "547293-2026",
   "date_publication": "2026-08-07",
   "type_avis": "can-standard",
   "objet": "Trīs jaunu automašīnu piegāde Bauskas novada pašvaldības iestādēm",
   "acheteur": {
    "nom": "Bauskas novada pašvaldība",
    "pays": "LVA"
   },
   "montant_avis": {
    "valeur": 24000,
    "devise": "EUR",
    "portee": "avis entier (tous lots/titulaires)"
   },
   "codes_cpv": [
    "34110000"
   ],
   "co_titulaires": [
    "Sabiedrība ar ierobežotu atbildību \"NORDE\""
   ],
   "identifiants_gagnants": [
    "40003242722"
   ],
   "lien_ted": "https://ted.europa.eu/en/notice/547293-2026/pdf",
   "correspondance": {
    "methode": "identifiant",
    "confiance": "haute"
   }
  }
 ],
 "source": "TED — Tenders Electronic Daily (ted.europa.eu), Office des publications de l'UE ; réutilisation libre, © Union européenne",
 "data_freshness": "interrogation TED en direct, cache 24 h"
}
```

## Price and billing

Price: **$0.02**. 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/eu/entreprise/{pays}/{id}/marches-publics-ue

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

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

## What this route does not do

Partial coverage by construction: **40 to 86% of award notices carry a readable winner identifier depending on the country** (measured on 2026-09-17); zero never means “never won a contract”. Poland and Spain excluded (TED publishes the NIP and the NIF there, not our profiles' identifiers).

## Neighbouring routes

- `/v1/eu/entreprise/{pays}/{id}` — $0.01
- `/v1/entreprise/{siren}/marches-publics-ue` — $0.02
- `/v1/eu/entreprise/LV/{regnr}/marches-publics` — $0.02

## 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 | Sample | What it returns |
| --- | --- | --- | --- |
| `/v1/eu/entreprise/{pays}/{id}/marches-publics-ue` | $0.02 | [free sample](https://api.sirenic.eu/exemples/eu-entreprise-pays-id-marches-publics-ue.json) | European public procurement contract awards won by a company from Latvia, Norway, Belgium, Denmark, Finland, Sweden, Czechia, Slovakia or Estonia, from TED (Tenders Electronic Daily): notices matched by NATIONAL identifier in all its published forms — buyer, country, subject, notice-level amount, CPV codes, co-winners, official link. 40 to 86% of award notices carry a readable winner identifier depending on the country: zero is a non-conclusive absence. Live TED query, cached 24 h. |

> ⚠️ 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/eu-entreprise-pays-id-marches-publics-ue.json)
- [Get the quote for /v1/eu/entreprise/{pays}/{id}/marches-publics-ue](https://api.sirenic.eu/v1/eu/entreprise/{pays}/{id}/marches-publics-ue)
- [Get notified about euro packs](mailto:contact@sirenic.eu?subject=Euro%20credit%20packs)

## Read next

- [Automating business verification (KYB)](https://api.sirenic.eu/en/use-cases/kyb-automated-business-verification-with-per-block)


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

---

[Home](https://api.sirenic.eu/en) · [Pricing](https://api.sirenic.eu/en/offres) · [Guides](https://api.sirenic.eu/en/articles) · [Routes](https://api.sirenic.eu/en/api) · [Legal notice](https://api.sirenic.eu/mentions-legales) · [Privacy](https://api.sirenic.eu/en/privacy)
