EU Public Tenders (TED): One Row per Tender, Not per Notice avatar

EU Public Tenders (TED): One Row per Tender, Not per Notice

Pricing

Pay per event

Go to Apify Store
EU Public Tenders (TED): One Row per Tender, Not per Notice

EU Public Tenders (TED): One Row per Tender, Not per Notice

Open procurement notices from TED, the EU's official journal. Groups every notice about the same procurement into one row and takes the deadline from the newest one, so a corrected tender is not three rows with three closing dates. No key and no login.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Gregory Bolshakov

Gregory Bolshakov

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

EU Public Tenders

Open procurement notices from TED, the EU's official journal. One row per tender, with the deadline that is current.

TED publishes notices, not tenders

Every correction to a procurement is a new notice with a new publication number, because the publication is the legal act. Measured on 2026-08-30: 34% of the contract notices published in the two days before carried a correction code, the families run from two to nine notices, and 85% of those families hold more than one deadline.

So a feed of notices gives you the same tender several times, with several closing dates, and nothing on the row telling you which one still applies. Here is one real family:

536789-2026 published 3 Aug deadline 31 Aug
573864-2026 published 19 Aug deadline 31 Aug
595004-2026 published 28 Aug deadline 7 Sep

This Actor groups them by TED's own procedure identifier and returns one row, with the 7 September deadline, deadlineChanged true, previousDeadline set to 31 August, and the two earlier publication numbers listed in case you already have them on file.

On a run of 200 open German tenders, 55 had more than one notice and 40 carried a deadline that a later notice had already replaced. That is one row in five.

Where each field comes from

The newest notice names the row. Every other field is answered by the newest notice that carries one. That matters because an award notice has no deadline at all, so taking the newest notice wholesale would empty the closing date on exactly the tenders that have finished. deadlineFromPublicationNumber says which notice the date came from, and stage says whether the procurement is planning, tendering or already awarded.

Reading the numbers

estimatedValue is the procedure value as published. lotValues are the per lot values. Neither is derived from the other, because they disagree in both directions: on one Dutch notice the procedure value was 4,600,000 against a single lot of 5,400,000, and on a Croatian one it was the exact sum of three lots.

TED does not convert currencies, so every value carries its own. A minimum value filter compares the number as published, which means a Polish notice is compared in PLN.

Language

Titles exist in all 24 official languages and buyer names do not. Of 250 open notices sampled, every one had an English title and none had an English buyer name. Pick the language you want and the title follows it. The buyer name comes back in the national language, and titleLanguage tells you what you actually got.

Watching for new tenders

Turn on Only new since the last run and each run returns only what was not there before. The first run records a baseline and returns everything with isNew empty, because nothing is new the first time you look.

Nothing is ever reported as closed. A tender leaving your result set has usually just passed its deadline, and a false disappearance in your history cannot be told apart later from a real one.

What is in TED

Every procurement above the EU thresholds, from all 27 member states. It also carries notices from countries outside the EU that publish there, so a run can return Norway or Switzerland alongside the rest. The country code on the row says which.

Access

Free, no key, no login. The API is capped at 250 rows per request and at 15,000 rows per paged window, while the open set alone is 48,731 notices, so this Actor uses TED's iteration mode to read past the window. It paces its requests, because sixteen unpaced ones earned a 429.