EU TED Tenders Scraper icon

Lead generation

EU TED Tenders Scraper

Turn TED's raw EU-wide procurement feed into flat, buyer-ready leads: buyer, CPV code, estimated value, deadline, and award/winner info — no API key needed.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

TED (Tenders Electronic Daily) is the EU-wide official journal for public procurement — every EU/EEA member state's contracting authorities publish notices there, from a Polish ministry's IT framework agreement to a German city's construction tender. TED's own v3 search API is keyless and public, but it returns deeply nested eForms-taxonomy JSON with 24-language multilingual fields ({"eng": [...], "pol": [...]}) that are painful to parse by hand. This Actor queries TED's public search API and flattens every notice into one buyer-ready row — buyer, title, CPV classification, estimated value, deadline, and award/winner info once a contract has been won. No API key, no login, no eForms-schema puzzle.

What we handle for you

  • 🔁 Retries with exponential backoff on 408/429/503/network errors — up to 5 attempts, Retry-After honoured.
  • 🧱 Per-notice fault isolation — one malformed notice is skipped and logged, never crashes the whole run.
  • 🌐 Multilingual-first field extraction — English preferred, falling back through 24 EU languages so a title/buyer name is never silently dropped.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, never the raw eForms JSON blob.
  • 💰 Pay-Per-Event pricing — you only pay for rows that land in your dataset. No data, no charge.

Use cases

  • Bid-team pipeline — pull new EU-wide tenders matching a CPV code or country every day.
  • Market intelligence — track which EU public bodies are buying what, and at what value, across all 27+ member states.
  • Award tracking — monitor closed notices for winner names and countries on contracts you bid on.
  • Lead generation — build a cross-border prospect list of buyers issuing contracts in your sector.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
query string no Raw TED expert-query string (e.g. classification-cpv=72000000 AND buyer-country=POL). When set, used verbatim and overrides every structured filter below. Power-user escape hatch.
cpvCodes array no CPV classification codes, OR-combined (e.g. 72000000 for IT services). Default is a confirmed-live, high-volume code so the prefilled demo returns real rows.
buyerCountries array no Buyer country codes, OR-combined (ISO3, e.g. POL, DEU). Leave empty to match all EU/EEA countries.
noticeTypes array no Notice types, OR-combined (e.g. cn-standard, can-standard). Leave empty to match all notice types; unconfirmed values pass through and surface TED's own rejection rather than being silently dropped.
publishedFrom string no Only include notices published on or after this date, e.g. 2026-01-01.
publishedTo string no Only include notices published on or before this date, e.g. 2026-08-01. Must be on/after publishedFrom when both are set.
maxResults integer no Hard cap on the number of notice rows returned by this run.
useProxy boolean no Route requests through Apify Proxy. TED is EU public infrastructure with no observed anti-bot, so this defaults off — enable only if you see rate-limiting.
{
  "cpvCodes": [
    "72000000"
  ],
  "maxResults": 5,
  "useProxy": true
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

buyer_namebuyer_countrytitleestimated_value_amountestimated_value_currencycpv_codesdeadline_datenotice_typewinner_name

{}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result row emitted$0.0040Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • TED (EU-wide) only — national procurement portals are out of scope (see our UK Contracts Finder Actor for UK-specific coverage).
  • No eForms XML/PDF document downloads, only the structured notice metadata.
  • Real-time per-query only — no historical bulk export and no cross-run deduplication.

FAQ

Do I need a TED account or API key?
No. TED's v3 search API is public and keyless — this Actor calls it directly.
Why does the default CPV code return so many results?
72000000 (IT services) alone matches 396k+ live notices — confirmed on TED. maxResults defaults to 20 to keep a first run fast and cheap; raise it once you've confirmed the filter shape you want.
What if a notice's title isn't in English?
TED's multilingual fields aren't guaranteed to carry an "eng" key. This Actor falls back to the generic "mul" key, then the first available language, so title/buyer_name/description/winner_name are never silently dropped.
Can I write my own TED expert query?
Yes — set query to any raw TED expert-query string (e.g. classification-cpv=72000000 AND buyer-country=POL) and it's sent verbatim, overriding every structured filter.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run