EU TED Search API
EU TED Search API
The Publications Office of the European Union exposes published Tenders Electronic Daily procurement notices through a search API. JSON search results can include notice identifiers, publication dates, multilingual titles and links to XML, HTML and PDF forms; the Search API needs no key.
Required Attribution:
Acknowledge the source and indicate changes for EU-owned content; check the specific notice for additional copyright statements.
Coverage
The API searches procurement notices published on TED and supports expert-query filters plus bulk XML retrieval. Page-number mode returns at most 15,000 notices per query and 250 per page; iteration mode removes the total retrieval cap but retains the 250-per-page and 10,000-fields-per-page limits.
Verdict
A public procurement signal for demand, contract awards, buyer activity and supplier opportunities visible in TED notices. Publication dates and CPV or place filters can support sector and regional monitoring. Notices are multilingual, schemas can change, and source records may be corrected or superseded. Public procurement records can include named business or official contacts; use them as published records and respect notice-specific third-party rights.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Load keyless TED procurement notices into pandas and Parquet. Checked against the provider's documentation on Nov 2, 2026.
Access
- The Search API for published notices is anonymous and does not require an EU Login or API key.
- Other TED APIs that manipulate unpublished notices require an API key.
Request
curl -X POST 'https://api.ted.europa.eu/v3/notices/search' -H 'Content-Type: application/json' -d '{"query":"publication-date=20261102","fields":["publication-number","publication-date","notice-title"],"page":1,"limit":5}'Format
JSON with notices, a total-notice count, timeout state and optional iteration token. Notice fields can contain multilingual objects and links to XML, PDF and HTML renditions.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""TED notices published on 2026-11-02 -> pandas -> Parquet."""
import requests
import pandas as pd
URL = "https://api.ted.europa.eu/v3/notices/search"
body = {
"query": "publication-date=20261102",
"fields": ["publication-number", "publication-date", "notice-title"],
"page": 1,
"limit": 5,
}
r = requests.post(URL, json=body, timeout=60)
r.raise_for_status()
notices = r.json()["notices"]
df = pd.DataFrame([{
"publication_number": x.get("publication-number"),
"publication_date": x.get("publication-date"),
"title_en": (x.get("notice-title") or {}).get("eng"),
} for x in notices])
df.to_parquet("ted_notices_2026_11_02.parquet", index=False)
print(len(df), "notices; publication date", df["publication_date"].iloc[0])Run by us on 2026-11-02 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 5 notices; publication date 2026-11-02+01:00
Limits
- Rate limit: Not stated.
- Page-number mode retrieves at most 15,000 notices, with at most 250 notices and 10,000 fields per page.
- Iteration mode has no total-notice cap but retains the 250-notice and 10,000-field per-page limits.
Quirks
- Expert-query syntax uses field names such as publication-date=20261102; invalid syntax returns a structured HTTP 400 response.
- notice-title is a language-code object, so select a language such as eng or retain the full mapping.
- publication-date values can include a UTC offset after a date without a time, such as 2026-11-02+01:00; preserve the source string unless a downstream convention is defined.
Terms and attribution
- TED documentation presents published notices for reuse and analysis without Search API authentication.
- Acknowledge the source and indicate changes for EU-owned editorial content.
- Check individual notices for third-party works, identifiable-person rights and any specific copyright notice.
Sources
- https://docs.ted.europa.eu/api/latest/index.html: “TED API allows anonymous access to all services manipulating published notices (i.e., searching for or retrieving notices already published on TED).”
- https://docs.ted.europa.eu/api/latest/search.html: “The Search API allows access to published procurement notices for analysis and reuse, promoting transparency.”
- https://docs.ted.europa.eu/ODS/latest/reuse/search-api.html: “Maximum number of retrievable notices: 15k.”
- https://docs.ted.europa.eu/ODS/latest/reuse/search-api.html: “Maximum number of notices per page: 250.”
- https://op.europa.eu/en/web/about-us/legal-notices/publications-office-of-the-european-union-copyright: “This means that you can reuse it provided you acknowledge the source and indicate any changes you have made.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer