EU Public Procurement Contract Awards (TED) — value vs estimate
Pricing
from $2.00 / 1,000 award returneds
EU Public Procurement Contract Awards (TED) — value vs estimate
Awarded EU public procurement contracts from TED: one flat JSON row per contract award notice with the awarded value, the pre-tender estimate and the ratio between them, by buyer country and CPV. No winner names.
Pricing
from $2.00 / 1,000 award returneds
Rating
0.0
(0)
Developer
EU Data Feeds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Every public contract award above the EU thresholds is published on TED (Tenders Electronic Daily), the official EU public procurement journal. The official API returns an eForms tree: multilingual arrays, the awarded value in one field, the pre-tender estimate in another, currencies in two more, and personal data mixed into the contact blocks. This Actor turns TED into one flat row per contract award — with the arithmetic already done.
Its sibling Actor, EU Public Procurement Notices (TED), answers "what is open right now". This one answers "what was actually bought, from where, and for how much against the estimate."
Who buys this
- Bid teams benchmarking prices before they quote on a public tender.
- Market analysts sizing public spend by CPV division, buyer country or year.
- Procurement and GovTech products that need an EU contract-award feed without an eForms parser.
- Researchers studying how far EU procurement awards land from their pre-tender estimates.
Coverage (measured, not claimed)
A 1,000-award sample of the last 30 days, taken 2026-09-05, carried buyers from all 27 EU member
states plus Norway, Iceland, Switzerland, Moldova and North Macedonia — 32 countries in one month's
window. In that same sample 919 of 1,000 awards carried a published awarded value, and 428 carried
both an awarded value and a pre-tender estimate in the same currency, which is when the ratio is
computed. Where TED has no number, the field is null — never a guess.
What you get
One row per award notice:
| Field | Example |
|---|---|
publicationNumber | 00612345-2026 |
publicationDate | 2026-09-02+02:00 |
noticeType / formType / procedureType | can-standard / result / open |
title | Supply of laboratory equipment |
buyerName / buyerCountry / buyerCity | Univerzita Karlova / CZE / Praha |
cpvCodes / cpvDivision | ["38000000","38900000"] / 38 |
awardedValue / awardedCurrency | 1180000 / CZK |
estimatedValue / estimatedCurrency | 1250000 / CZK |
awardedToEstimatedRatio | 0.944 |
winnerCountry / crossBorderAward | DEU / true |
placeOfPerformance | ["CZ010"] |
noticeUrl | link to the official notice |
Every run also writes a RUN_SUMMARY record to the key-value store: award count, counts by buyer country
and CPV division, total awarded value grouped by currency, and the median awarded/estimated ratio.
Input
| Option | Meaning |
|---|---|
days | Lookback window, 1–365. Default 30. |
cpv | CPV codes or prefixes — 72000000 for IT services, or just 45 for all construction. |
countries | Buyer country codes: CZ, DE, PL, … |
awardTypes | Award notice types. Default can-standard. |
minAwardedValue | Only awards at or above this value, in the notice's own currency. |
maxResults | Hard cap on rows returned — and therefore on what you pay. |
Leave everything empty and you get the last 30 days of EU public procurement contract awards.
Running it on a schedule
Set days to match your interval, add your CPV codes and buyer countries, and put the Actor on an Apify
schedule. Each run writes a dataset you can pull from the Apify API, export as JSON/CSV/Excel, or push
onward with an integration; RUN_SUMMARY gives you the aggregates without reading every row.
Two things this Actor deliberately does not do
- No currency conversion. Values stay in the currency TED published them in, and the awarded/estimated ratio is computed only when both figures share a currency. A single mixed EUR+HUF total would be a made-up number, so you get sums grouped by currency instead.
- No winner names. See below.
Personal data
TED award notices contain named contact persons, and the "winning company" can be a sole trader — a natural person. This Actor never requests or emits winner names, winner identifiers or winner addresses; only the winner's country code, which identifies nobody. Contact names, e-mail addresses and phone numbers are dropped in code before anything is written to the dataset, and free-text fields are scrubbed for inlined addresses. You get organisations and countries, not people. The open-data licence permits reuse; it does not waive the GDPR, so the personal data simply never leaves the pipeline.
If you need the winner's legal name, use the official notice at noticeUrl — it is public there, under
the Publications Office as controller, not under us.
Pricing
Pay per event, and both numbers are here so you never have to open the Pricing tab to budget a run:
| Event | Price | When it fires |
|---|---|---|
| Actor start | $0.005 | Once per run, never more. |
| Award returned | $0.002 | Once per contract award actually pushed to the dataset. |
A default run (maxResults: 100) therefore costs $0.005 + 100 x $0.002 = $0.205 at most. maxResults
is a hard cap on rows and so is your hard cap on spend: 500 awards is $1.005, 5,000 is $10.005.
A run that finds nothing costs $0.005 — the start event only. Charging happens after each row is
pushed, so a run that fails halfway never bills you for data you did not receive, and the RUN_SUMMARY
record written at the end tells you exactly how many rows you were charged for.
Source and attribution
Source: Tenders Electronic Daily (TED), ted.europa.eu, © European Union. Editorial content reused under CC BY 4.0, metadata under CC0 1.0. Data normalized, enriched and filtered by this Actor; personal data removed. This is not an official EU publication — for anything legally binding, use the linked original notice.
Support and refunds
E-mail support, first reply within 1 business day. Not happy? Email us within 14 days for a full refund.
Limits
- Coverage and freshness are whatever TED publishes; if an award is not in TED, it is not here.
- Below-threshold contracts that never reach TED are out of scope — national portals are not read.
- Not every award notice carries a published value or a pre-tender estimate. See the measured numbers in
the coverage section above; where TED has no number, the field is
nulland the ratio isnull. - Very large windows across all of the EU take longer and cost more — narrow by CPV or country first.
- No human consulting, no custom fields on request, no SLA beyond the reply time above.
FAQ
Does this cover all 27 EU member states? Yes — see the measured coverage above. TED is the single EU-wide publication point for above-threshold public procurement.
How is this different from the notices Actor? Notices are tenders that are open for bidding. Awards are the result: who bought, in which country, at what value against the estimate.
Why is awardedToEstimatedRatio sometimes null? Because TED published only one of the two figures,
or published them in different currencies. Inventing the missing half would be a made-up number.
Do I get the winner's company name? No — only the winner's country code. The official notice at
noticeUrl carries the legal name, published by the EU Publications Office.