Public data / Dataset
TED public procurement notices
Search and download notices to examine Romanian authorities' procurement published on TED.
Before you use this resource
Does not represent all local procurement. Documentation limits pages to 250 notices; page-number mode retrieves at most 15,000 results.
- Published by
- Publications Office of the European Union
- Source
- Public institution
- Collection
- Public data
- Resource type
- Dataset
- Coverage
- Published TED notices, filterable by buyer or place of performance. Exact API historical boundary not verified.
- Documented formats
- XML, JSON
- Licence / terms
- Reuse permitted; metadata CC0 1.0
- API access
- Documented API
- Record review date
- 2026-09-07
- Last resource update
- Unknown
- Technical data audit
- Not performed
- Documentation
- Source reviewed
Documentation
The listed documentation and terms were reviewed. The full file or API query was not tested.
The cited page documents this record. Check the original source for terms and versions before reuse.
Getting started
- Read the documentation for filtering by buyer or place of performance.
- Send a POST request to the API following its documented example.
- Retain notice identifiers and look for corrections or related award notices.
Access and checks
- POST API: see documentation ↗ · JSON
Documented access; content not tested.
Direct API queries
curl -s -X POST 'https://api.ted.europa.eu/v3/notices/search' \
-H "Content-Type: application/json" \
-d '{"q":"CY:[RO]","page":1,"limit":5}' | jq .import urllib.request
import json
url = "https://api.ted.europa.eu/v3/notices/search"
payload = json.dumps({"q":"CY:[RO]","page":1,"limit":5}).encode("utf-8")
req = urllib.request.Request(
url, data=payload,
headers={"Content-Type": "application/json", "User-Agent": "CunoastereDeschisa/1.7"}
)
with urllib.request.urlopen(req) as resp:
print(resp.read().decode("utf-8")[:500])library(httr2)
resp <- request("https://api.ted.europa.eu/v3/notices/search") |>
req_body_raw('{"q":"CY:[RO]","page":1,"limit":5}', "application/json") |>
req_perform()
data <- resp_body_json(resp)
str(data)-- DuckDB (save response via cURL, then query):
-- 1. curl -s -X POST 'https://api.ted.europa.eu/v3/notices/search' -H "Content-Type: application/json" -d '{"q":"CY:[RO]","page":1,"limit":5}' > data.json
-- 2. DuckDB:
INSTALL httpfs; LOAD httpfs;
SELECT * FROM read_json_auto('data.json');Executable query snippets for command line, data pipelines, or DuckDB.
Continue your research
Editorial suggestions for discovery. These links do not establish technical integration or licence compatibility.