TED EU Tender Monitor avatar

TED EU Tender Monitor

Pricing

from $3.00 / 1,000 new or amended records

Go to Apify Store
TED EU Tender Monitor

TED EU Tender Monitor

Unofficial tool, not affiliated with the EU, Publications Office or TED. Get only new and amended EU public tenders since your last run, filtered by CPV, NUTS or country. Source: TED, © European Union.

Pricing

from $3.00 / 1,000 new or amended records

Rating

0.0

(0)

Developer

Two Five Labs

Two Five Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Not affiliated with or endorsed by the European Union, the Publications Office of the European Union, or TED (Tenders Electronic Daily). This is an independent tool from Two Five Labs that reads publicly available data. No government seals or logos are used.

What it does

Searches the TED Search API v3 for EU procurement notices published in your look-back window. You can filter by CPV code, NUTS region, country and title keyword, and it returns only what is new or changed since your last run.

Who it's for

Companies that bid on EU public tenders, and bid consultants who track them.

Input

FieldDescription
lookbackDaysinteger, default 3. Days of TED publications to check. On a daily schedule this overlaps earlier runs; already-seen notices are not output again.
cpvlist. CPV codes; trailing zeros act as a prefix (e.g. 45000000 = all construction).
nutslist. NUTS regions, e.g. CZ052 or prefix CZ0. Must be a valid NUTS code; use countries for whole countries.
countrieslist. ISO 3166 alpha-3 codes, e.g. FRA, DEU.
keywordslist. Matches the English title (case-insensitive).
limitinteger, default 100 (TED maximum 250). Notices per page.
maxPagesinteger, default 5.
maxSpendUsd, emitUnchanged, stateStoreNamesee "How runs work".

No API key is needed for this source.

Run it via API

curl -X POST "https://api.apify.com/v2/acts/flamelit_constellation~ted-monitor/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"maxSpendUsd": 1.0}'

Use your own Apify token.

How runs work

  • First run: returns every matching record in the look-back window, all marked changeType: "new".
  • Later runs: return only records that are new, or whose content changed since they were last seen (amended). The actor keeps a content hash per record in a key-value store. A second run over the same data outputs nothing.
  • stateStoreName: give each saved search its own name so each one tracks its own history.
  • emitUnchanged: true also outputs unchanged records (changeType: "same"), which are never charged.
  • Spend cap: maxSpendUsd (default 1.0) is a hard cap. When it is reached, the actor stops charging and stops output. Records not yet output are kept for the next run.
  • Errors and rate limits: network errors, HTTP 429 and 5xx responses are retried up to 3 times with backoff. Retry-After is honoured in both its seconds and date forms; if the source asks for a wait longer than 2 minutes, the run stops instead of waiting.

Output

Tender record : id, source ("ted"), title, buyer, cpv[], naics (null), region, value, currency, posted, deadline, url, changeType, extra{noticeType, attribution, modified}.

Excerpt from a live run (NUTS FR101):

{
"id": "689304-2026",
"source": "ted",
"title": "France – Road transport services – Prestations de transport de fonds",
"buyer": "Monnaie de Paris",
"cpv": [
"60100000"
],
"region": "FR101, FRA, anyw",
"value": 0,
"currency": "EUR",
"posted": "2026-10-07T00:00:00.000Z",
"deadline": "2026-11-05T22:00:00.000Z",
"url": "https://ted.europa.eu/en/notice/-/detail/689304-2026",
"changeType": "new",
"extra": {
"noticeType": "cn-standard",
"attribution": "Source: TED, © European Union, https://ted.europa.eu/en/notice/-/detail/689304-2026",
"modified": "Data transformed: fields normalized, selected and filtered by this actor."
}
}

value, currency and deadline are sometimes empty in live data.

Personal data: contact persons, and tenderers or winners who are named individuals, are removed. Emails and phone numbers in free text are masked. URLs and reference numbers are not masked.

Pricing

Pay per event: one run-start charge per run and one new-item charge per new or amended record output. Current prices are shown on this actor's Apify Store page.

Limits

  • Throttle: at least 1 second between requests, at most 20 requests per run. This is well below TED's fair-usage guidance.
  • Up to limit × maxPages notices per run (default 500). The default run used 5 requests for 500 notices.

Data source and terms

  • Source: TED, © European Union (https://ted.europa.eu).
  • Data has been modified: notices are reformatted, normalized, filtered and compared between runs. Each record carries extra.attribution ("Source: TED, © European Union" plus the notice address) and extra.modified as TED's reuse terms require credit and an indication of changes.
  • No TED logo is used.
  • Not affiliated with or endorsed by the European Union, the Publications Office of the European Union, or TED (Tenders Electronic Daily).

FAQ

Does it return every record? The first run returns everything matching. After that it returns only new or changed records. How often should I run it? Daily is enough. Can I cap spend? Yes. maxSpendUsd is a hard cap, and records it stops are output on the next run. Does it need a key? No.

Support

Questions or problems: please use the Issues tab on this actor's Apify page first. Publisher: Two Five Labs, contact twofivelabs@gmail.com.

Requests to the source identify themselves with a contact address: flamelit-constellation-actors/0.1 (+mailto:twofivelabs@gmail.com).