TED Search
Search TED procurement notices by keyword or filters. Returns notice cards and pagination (1 credit).
Credit cost: 1 credit per call
Authentification
ApiKeyAuth Your API key. Include it in the x-api-key header for every request.
In: header
Paramètres de requête
Keyword, publication number, or a TED search URL.
Example (keyword):
softwareExample (publication number):
30-2026Example (search URL):
https://ted.europa.eu/en/search/result?query=softwareNotes:
- A notice URL (
/notice/) returns 400. Use the notice endpoint. - Filters (
country=FR,cpv,buyer, …) can be set with or withoutquery. pagestarts at 1. Pass the next page yourself.
Notice code such as cn-standard or can-standard. Combined with AND.
Buyer country, ISO alpha-2 or alpha-3. FR becomes FRA. A country name returns 400.
Place of performance: country code or NUTS code such as FRK24.
CPV code or prefix. Digits and an optional star, for example 72000000 or 30*.
Buyer name, matched as a phrase.
Page from 1. next is always null: pass page + 1. A page past the last one returns 404.
Corps de la réponse
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v2/ted/search"{ "results": [ { "cpv": [ "50312610", "35125100" ], "url": "https://ted.europa.eu/en/notice/-/detail/30-2026", "place": "FRK24", "title": "France – Maintenance of information technology equipment – OBSERVATOIRE DES MOBILITES. FOURNITURE, INSTALLATION D'INFRASTRUCTURES DE MATERIELS DE COMPTAGES DES MODES ACTIFS ET MAINTENANCE", "currency": null, "deadline": "2026-02-02", "buyer_name": "SMMAG, Syndicat Mixte des Mobilités de l'Aire Grenobloise, Grenoble-Alpes Métropole", "notice_type": "cn-standard", "buyer_country": "FRA", "value_display": null, "estimated_value": null, "publication_date": "2026-01-02", "publication_number": "30-2026" } ], "pagination": { "next": null, "page": 1, "per_page": 20, "total_pages": 1, "total_results": 1 }}{ "error": "Bad Request"}{ "error": "Invalid API Key"}{ "error": "Payment required"}{ "error": "Rate limit exceeded for the API key: quota monthly"}{ "error": "Internal Error"}