EU Tender Aggregator (TED) — CPV & Country Filtered avatar

EU Tender Aggregator (TED) — CPV & Country Filtered

Pricing

from $3.00 / 1,000 results

Go to Apify Store
EU Tender Aggregator (TED) — CPV & Country Filtered

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

Onur Hadzhaoglu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

23 days ago

Last modified

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

FieldTypeExampleMeaning
cpvCodeslist["55000000"]CPV sector codes (e.g. 55 = catering/hospitality). Empty = all sectors.
countrieslist["NLD","DEU"]Buyer country, ISO alpha-3. Empty = all EU.
publishedAfterstring"20260101"Only notices on/after this date (YYYYMMDD).
maxResultsint50Max 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) adapter
  • sources/tenderned.py — Netherlands (TenderNed) adapter
  • Company enrichment join (buyer → registry data)

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

Who uses this

  • Sales / BD teams selling to the public sector — get every new tender in your CPV sector and countries, daily, as leads.
  • Bid managers — stop checking TED manually; pipe new notices into Slack, Sheets or your CRM with an Apify schedule.
  • Market analysts — track how much the EU buys in a sector, by country and date.
  • Agencies building procurement dashboards for clients.

Pricing — pay only for what you get

This actor uses Apify's pay-per-event model: you pay $3 per 1,000 results (plus a negligible $0.00005 per start). No subscription, no minimum.

Concretely: a daily run pulling 50 fresh notices costs about $0.15/day (~$4.50/month) — cheaper than any tender-alert SaaS subscription.

Tip: start with maxResults: 10 to see the data shape for ~$0.03, then scale up.

Quick start

  1. Click Try for free (Apify gives new accounts free usage credit).
  2. Adjust the input (defaults already work) and press Start.
  3. When the run finishes, open the Dataset tab and export as JSON, CSV or Excel — or fetch it via the Apify API on a schedule.

Support

Found an issue or need an extra field / another data source? Open an issue on the actor's Issues tab — I actively maintain this actor and usually respond within a day.