TED — Contract award notices, France (Search API v3)
EU public procurement award notices for French buyers from TED (Tenders Electronic Daily, the Supplement to the Official Journal of the EU), over the keyless Search API v3 — a JSON-POST expert-query surface (field=value AND …). Filter server-side on CPV code, buyer country, notice type, publication-date ranges, and buyer/winner names and registration identifiers (winner-identifier="788 264 331" matches exactly one notice). Award rows carry buyer and winner identifiers (SIREN/SIRET on about half of French awards — the derived winner-id-tier column says which), total value with ISO 4217 currency, and per-lot CPV codes. Hard ceilings: 250 notices per page, 15,000 per query window. Free reuse, commercial included, per Commission Decision 2011/833/EU.
Trust score
How is this computed?Weighted across five axes. Tap a ring for what it measures.
Data schema (13 fields)
Click a field to see example values.
| Field | Type | Description |
|---|---|---|
| classification-cpv | text | CPV code (Common Procurement Vocabulary) of the contract, e.g. 85310000. Server-side filter with HIERARCHICAL matching, not exact: filtering 72000000 also returns notices whose lot CPVs are descendants like 72267000 (verified live 2026-07-31). Joins the register's CPV code lane. Per-lot values are joined with '; ' in result rows. |
| buyer-country | text | Buyer country, ISO 3166-1 alpha-3 (e.g. FRA). Pinned by this entry's scope so corpus totals stay honest; filtering it overrides the pin. |
| notice-type | text | TED notice type (e.g. can-standard = contract award notice). This entry's scope pins can-standard — the award notices that carry winners and values. |
| publication-date | text | Publication date in the Official Journal supplement. Filter with =, >= or <= and a YYYYMMDD (or YYYY-MM-DD) value, e.g. publication-date>=20260601. |
| buyer-name | text | Contracting authority name (multilingual upstream; exact-match filter). |
| buyer-identifier | text | Buyer registration identifier as published (SIREN/SIRET on French notices, space-separated). Exact-match filter, space-preserving. |
| winner-name | text | Awarded supplier name (per-lot upstream; exact-match filter). |
| winner-identifier | text | Winner registration identifier as published (SIREN/SIRET on ~half of French awards; the rest are eSender-internal ids — see winner-id-tier). Exact-match filter, space-preserving: winner-identifier="788 264 331". |
| publication-number | text | TED's own notice identifier (e.g. 370731-2026). Exact-match filter. |
| total-value | number | Total contract award value (in total-value-cur). |
| total-value-cur | text | Currency of total-value, ISO 4217 (e.g. EUR). |
| winner-id-tier | text | Entity-resolution tier, derived: 'verified-id' when a winner identifier normalises to SIREN/SIRET (strip spaces, 9 or 14 digits), 'name-only' when a winner is named without a registry-shaped id, empty when the notice carries no winner. Measured 50/100 verified on FR awards (2026-07-31). |
| notice-url | text | Canonical TED notice page (HTML, English route when published). |
Schema captured from ted 1 hour ago.
Query the data
Pick columns and a sort, then fetch a live preview straight from the source. Choose an API-filterable column (marked ▾) under “Where” to pick from its list of values.
Sample data (8 records)
Record 1buyer-name: COMMUNAUTE d'AGGLOMERATION DU PAYS DE L' · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "COMMUNAUTE d'AGGLOMERATION DU PAYS DE L'OR",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/6-2026",
"notice-type": "can-standard",
"total-value": 2892184,
"winner-name": "SYSCO FRANCE SAS; POMONA EPISAVEURS; DISTRISUD; ETABLISSEMENTS PLO PRIMEURS; LANGUEDOC LOZERE VIANDE; LE FRIBOUL; POMONA; Biocoop Restauration; JULIEN NOUGARET; VERT'VEINE; EARL Tommy Maire; Pain et Partage Montpellier",
"buyer-country": "FRA",
"winner-id-tier": "name-only",
"total-value-cur": "EUR",
"buyer-identifier": "1185",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "22003-1-1-1; 22003-1-2-1; 22003-1-3-1; 22003-1-4-1; 22003-1-5-1; 22003-1-6-1; 22003-1-7-1; 22003-1-8-1; 22003-1-9-1; 22003-1-10-1; 22003-1-11-1; 22003-1-12-1; 22003-1-13-1; 22003-1-14-1",
"classification-cpv": "38343000; 15800000; 15896000; 15500000; 15331100; 15110000; 03142500; 15131120; 15810000; 15540000; 15300000; 15100000",
"publication-number": "6-2026"
}Record 2buyer-name: Lille Métropole Habitat · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "Lille Métropole Habitat",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/22-2026",
"notice-type": "can-standard",
"total-value": 10182909.26,
"winner-name": "COSANOR; G.R.H HABITAT; ALV; KTAS; SARL HABITAT BOIS; CREADECOR; TELEREP FRANCE",
"buyer-country": "FRA",
"winner-id-tier": "name-only",
"total-value-cur": "EUR",
"buyer-identifier": "54964",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "1670882-1-1-1; 1670882-1-2-1; 1670882-1-3-1; 1670882-1-4-1; 1670882-1-5-1; 1670882-1-6-1; 1670882-1-7-1",
"classification-cpv": "45223220; 45232141; 45331210; 45442100; 45311200; 45421000; 45330000",
"publication-number": "22-2026"
}Record 3buyer-name: GRAND PORT MARITIME DE MARSEILLE · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "GRAND PORT MARITIME DE MARSEILLE",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/45-2026",
"notice-type": "can-standard",
"total-value": 730680,
"winner-name": "SOC NOUVELLE ETS BALLESTEROS",
"buyer-country": "FRA",
"winner-id-tier": "name-only",
"total-value-cur": "EUR",
"buyer-identifier": "55391",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "1680904-1-0-1",
"classification-cpv": "45223720",
"publication-number": "45-2026"
}Record 4buyer-name: SEM PAYS DE MEAUX HABITAT · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "SEM PAYS DE MEAUX HABITAT",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/47-2026",
"notice-type": "can-standard",
"total-value": 0,
"winner-name": "SASU PIBA",
"buyer-country": "FRA",
"winner-id-tier": "verified-id",
"total-value-cur": "EUR",
"buyer-identifier": "66204255500034",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "530 796 176 00028",
"classification-cpv": "71241000",
"publication-number": "47-2026"
}Record 5buyer-name: Plate-forme commissariat Paris · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "Plate-forme commissariat Paris",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/51-2026",
"notice-type": "can-standard",
"total-value": 11200000,
"winner-name": "S.G.N.E. (SOCIÉTÉ GENERALE DE NETTOYAGE ET D'ENTRETIEN) - PUISSANCE 5; AKESA Ile-de-France",
"buyer-country": "FRA",
"winner-id-tier": "verified-id",
"total-value-cur": "EUR",
"buyer-identifier": "13001534000016",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "30335473200040; 91190791300022",
"classification-cpv": "90911000",
"publication-number": "51-2026"
}Record 6buyer-name: Ville de Châteaubriant · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "Ville de Châteaubriant",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/65-2026",
"notice-type": "can-standard",
"total-value": 0,
"winner-name": null,
"buyer-country": "FRA",
"winner-id-tier": null,
"total-value-cur": "EUR",
"buyer-identifier": "53978",
"publication-date": "2026-01-02+01:00",
"winner-identifier": null,
"classification-cpv": "55523100",
"publication-number": "65-2026"
}Record 7buyer-name: Colombes Habitat Public · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "Colombes Habitat Public",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/66-2026",
"notice-type": "can-standard",
"total-value": 498475,
"winner-name": "SYBAT; ERI",
"buyer-country": "FRA",
"winner-id-tier": "verified-id",
"total-value-cur": "EUR",
"buyer-identifier": "484201157",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "572 078905 00021; 422 002 949 00044",
"classification-cpv": "45321000; 45110000; 45331000; 45410000; 45431000; 45262100; 45262311; 45261000; 45443000; 45421110; 45441000; 45332000; 45317300; 45442100; 45421000; 45432113",
"publication-number": "66-2026"
}Record 8buyer-name: Port Atlantique La Rochelle · notice-url: https://ted.europa.eu/en/notice/-/detail
{
"buyer-name": "Port Atlantique La Rochelle",
"notice-url": "https://ted.europa.eu/en/notice/-/detail/74-2026",
"notice-type": "can-standard",
"total-value": 1432646,
"winner-name": "CABINET BESSE TRANSPORTS RISQUES DIVERS; SARRE ET MOSELLE; ASSURANCES MADER; ACL COURTAGE",
"buyer-country": "FRA",
"winner-id-tier": "name-only",
"total-value-cur": "EUR",
"buyer-identifier": "55470",
"publication-date": "2026-01-02+01:00",
"winner-identifier": "1615623-2-1-1; 1615623-2-3-1; 1615623-2-4-1; 1615623-2-5-1",
"classification-cpv": "66510000; 66515000; 66516400; 66514150",
"publication-number": "74-2026"
}Live sample captured at profiling time — values may have changed upstream.
Verification Status
Using the API
Query examples
curl -s -X POST -H 'Content-Type: application/json' -d '{"query":"buyer-country=FRA AND notice-type=can-standard AND publication-date>=20260101","fields":["publication-number","publication-date","notice-type","buyer-name","buyer-country","buyer-identifier","classification-cpv","winner-name","winner-identifier","total-value","total-value-cur"],"page":1,"limit":25,"paginationMode":"PAGE_NUMBER"}' 'https://api.ted.europa.eu/v3/notices/search'Keyless expert-query search over TED notices (field=value AND …). Combine the verified filters (classification-cpv, buyer-country, notice-type, publication-date ranges, winner/buyer names and identifiers); limit ≤ 250 per page, result window ≤ 15,000.
Dataset
Volume & freshness
License
- ✓ Redistributable
- ✓ Attribution required
- Category: cc
Machine-readable & source
Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.