Developers

TED API guide: search, eForms fields, awards and winners

The TED Search API v3 needs no key; we have read 2,558,806 TED notices through it since 2023-10-25, and 18% of the 1,068,756 award notices name no winner. Source: Arcadium Data, data as of .

The request

One endpoint, POST https://api.ted.europa.eu/v3/notices/search, with a JSON body: an expert query, the fields you want back, limit (up to 250 per page) and page. No account or API key. Reuse is free, commercial use included, with attribution (Commission Decision 2011/833/EU).

curl -s https://api.ted.europa.eu/v3/notices/search \
  -H 'Content-Type: application/json' \
  -d '{"query":"publication-date=20261023","fields":["publication-number","notice-type","buyer-name","buyer-country","classification-cpv","winner-name"],"limit":250,"page":1,"paginationMode":"PAGE_NUMBER"}'
import requests

body = {
    "query": "publication-date=20261023 AND winner-internet-address=*",
    "fields": ["publication-number", "official-language", "buyer-name", "winner-name", "winner-internet-address"],
    "limit": 250, "page": 1, "paginationMode": "PAGE_NUMBER",
}
r = requests.post("https://api.ted.europa.eu/v3/notices/search", json=body, timeout=60)
r.raise_for_status()
data = r.json()
print(data["totalNoticeCount"], len(data["notices"]))
const res = await fetch('https://api.ted.europa.eu/v3/notices/search', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ query: 'publication-date=20261023', fields: ['publication-number', 'notice-type'], limit: 250, page: 1, paginationMode: 'PAGE_NUMBER' }),
});
const { notices, totalNoticeCount } = await res.json();

Limits that shape a crawler

eForms fields that matter

FieldWhat it holdsGotcha
notice-typecn-standard, can-standard, pin-only ...Map it to call / award / planning yourself; corrections and modifications are separate notices
buyer-countryBuyer countryISO 3166-1 alpha-3 (DEU, FRA), not alpha-2
notice-title, buyer-name, winner-nameTextMultilingual objects keyed by 3-letter language ({"deu": [...]}); pick official-language
classification-cpvCPV codesSeveral per notice; the main one is main-classification-proc
result-value-notice, total-value, tender-valueAward valuesPer notice, per lot or per tender, each with its own currency field; frameworks state a ceiling
winner-internet-addressWinner websiteNot in name order; pair it with the winner yourself
deadline-receipt-tender-date-lotDeadlinePer lot; take the earliest

Contact fields (*-email, *-tel, contact persons) exist too. We never request them.

Why many awards name no winner

In our copy, 195,589 of 1,068,756 TED award notices (18%) carry no winner name: a lot can close without an award, and buyers may defer publishing some fields. We also withhold winner names on 205,913 awards because the winner could be a private person (sole trader).

Duplicates and national portals

Many countries publish the same notice on a national portal (BOAMP in France, for example) and on TED. Deduplicate by procedure and buyer before you count; we keep one row and mark the copy.

Skip the plumbing

Our tenders API serves TED, UK Find a Tender and national notices deduplicated, with winners matched to company websites, contract end dates and supplier profiles. No key needed to try it.

Official documentation: TED API docs, ted.europa.eu. This guide is ours and independent of the Publications Office.

Questions

Does the TED API need an API key?

No. The Search API v3 (POST https://api.ted.europa.eu/v3/notices/search) answers anonymous requests; reuse is free with attribution under Commission Decision 2011/833/EU.

How many notices can one TED API query return?

Up to 15,000 in page-number mode, 250 per page. Split by publication day (a day has about 3,000 to 4,000 notices) to stay under the cap.

Why do TED award notices miss the winner?

In our copy 18% of TED award notices name no winner (as of 2026-10-23): lots closed without an award and fields the buyer deferred.

Cite as: Arcadium Data, "TED API guide: search, eForms fields, awards and winners", https://arcadiumdata.io/guides/ted-api/, data as of 2026-10-23.