Piloterr

TED Search

GET
/v2/ted/search

Search TED procurement notices by keyword or filters. Returns notice cards and pagination (1 credit).

Credit cost: 1 credit per call

Autorización

ApiKeyAuth
x-api-key<token>

Your API key. Include it in the x-api-key header for every request.

In: header

Parámetros de consulta

query?string

Keyword, publication number, or a TED search URL.

Example (keyword):

software

Example (publication number):

30-2026

Example (search URL):

https://ted.europa.eu/en/search/result?query=software

Notes:

  • A notice URL (/notice/) returns 400. Use the notice endpoint.
  • Filters (country=FR, cpv, buyer, …) can be set with or without query.
  • page starts at 1. Pass the next page yourself.
notice_type?string

Notice code such as cn-standard or can-standard. Combined with AND.

country?string

Buyer country, ISO alpha-2 or alpha-3. FR becomes FRA. A country name returns 400.

place?string

Place of performance: country code or NUTS code such as FRK24.

cpv?string

CPV code or prefix. Digits and an optional star, for example 72000000 or 30*.

buyer?string

Buyer name, matched as a phrase.

page?number

Page from 1. next is always null: pass page + 1. A page past the last one returns 404.

Cuerpo de la respuesta

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"}