EU Tender Aggregator (TED) — CPV & Country Filtered
Pricing
from $3.00 / 1,000 results
EU Tender Aggregator (TED) — CPV & Country Filtered
Official EU public procurement notices (TED) as clean, unified JSON. Filter by CPV code, country and date. Keyless official open data.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Onur Hadzhaoglu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Turn the EU's official public-procurement feed into clean, unified JSON you can actually use. This actor queries TED (Tenders Electronic Daily) — the official EU procurement journal — and returns notices filtered by CPV code, country and publication date, newest first, in one consistent schema.
No API key, no scraping tricks, no personal data — TED's search API is official, public and keyless. This actor adds the part TED doesn't: normalization. TED's raw response is deeply nested and multi-lingual; this actor flattens each notice to a single, predictable record.
What you get — one record per notice
{"noticeNumber": "557198-2026","title": "Netherlands – Catering services – Event Catering","buyerName": "Gemeente Den Haag","country": "NLD","cpv": "55520000","noticeType": "can-standard","publicationDate": "2026-08-12","deadlineDate": null,"totalValue": 1200000,"tenderUrl": "https://ted.europa.eu/en/notice/-/detail/557198-2026","source": "TED"}
Input
| Field | Type | Example | Meaning |
|---|---|---|---|
cpvCodes | list | ["55000000"] | CPV sector codes (e.g. 55 = catering/hospitality). Empty = all sectors. |
countries | list | ["NLD","DEU"] | Buyer country, ISO alpha-3. Empty = all EU. |
publishedAfter | string | "20260101" | Only notices on/after this date (YYYYMMDD). |
maxResults | int | 50 | Max notices, newest first (1–250). |
Who this is for
- Bid / tender managers tracking new opportunities in a sector.
- Exporters (e.g. Turkish or non-EU suppliers) watching EU tenders by CPV.
- GovTech / consultancies that need procurement data in a clean schema.
- Catering / facility / construction firms watching their CPV vertical.
Why not just use TED directly?
TED's raw API returns nested, multi-lingual objects (24 languages per title, link maps per format). This actor picks the right language, flattens the structure, and gives you a stable schema that drops straight into a spreadsheet, CRM or database.
Pricing (pay-per-event)
Billed per returned notice (result event). Suggested price point ~$2–4 per 1,000
records — set in the Apify Console when publishing.
Roadmap
sources/ekap.py— Turkey (EKAP) adaptersources/tenderned.py— Netherlands (TenderNed) adapter- Company enrichment join (buyer → registry data)
Legal
Uses only official, public, already-published procurement notices from TED's open API. No login-gated data, no personal data, no ToS circumvention.
Developer notes (running & testing)
The fetch + normalize core is in src/ted_source.py and has no dependency on the
Apify SDK — you can prove it works standalone:
python -m src.ted_source# → prints the query, total matching count, and the first normalized records
The actor wrapper (src/main.py) adds Apify input handling, dataset push and
per-event charging. To run as an actor locally you need the Apify CLI + login:
$apify run
To publish:
$apify push