EU Tenders & Contract Awards (TED) - One Row per Procedure avatar

EU Tenders & Contract Awards (TED) - One Row per Procedure

Pricing

from $3.00 / 1,000 results

Go to Apify Store
EU Tenders & Contract Awards (TED) - One Row per Procedure

EU Tenders & Contract Awards (TED) - One Row per Procedure

EU tenders and contract awards from the official TED API, one row per procedure: each call for tender joined with its award notices and corrigenda. Buyer, CPV, estimate, deadline, award value, winning companies. Keyword, country, CPV, value and date filters. Unofficial; not affiliated with the EU.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

JP Open Data

JP Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

EU Tenders & Contract Awards (TED) — One Row per Procedure

Get EU public procurement from TED (Tenders Electronic Daily), the official EU journal for public contracts, as clean rows — one row per procurement procedure, not one row per notice. Each row joins the call for tender with the notices that followed it: corrigenda, contract award notices and contract modifications. So an award row still carries the original estimate and submission deadline, and a tender row shows whether it was corrected or already awarded.

Data comes live from the official TED Search API v3 (Publications Office of the European Union). No login, no API key, no browser.

What you get

  • One row per procedure, linked by TED's own procedure identifier: original contract notice, change notices (corrigenda), award notice(s), modifications, with every notice listed and linked.
  • Tender facts: English title, buyer and buyer country, CPV codes, contract nature, procedure type, estimated value and currency, submission deadline, open/closed status.
  • Award facts: awarded value and currency (summed over the award notices), award decision date, winning companies, winner countries and declared sizes (SME, large, ...).
  • Filters: full-text keywords, buyer countries, CPV codes (whole branch), notice stages, buyer name, value range, publication window, deadline window, "only open for bids".
  • Companies only: winner names are shown only when they are clearly a company, cooperative, foundation or public body. Sole traders, partnerships and anything that may be a private person are withheld and counted (winnersWithheld). No contact names, e-mails, phone numbers or notice descriptions are collected at all.

Quick start — verified input

Open calls and awards for software in Germany from the last 14 days:

{
"keywords": ["software"],
"countries": ["Germany"],
"daysBack": 14,
"maxItems": 20
}

An empty input {} also works: the newest 20 procedures with a notice published in the last 7 days, all countries.

Input

FieldExampleWhat it does
keywords["software", "cloud services"]Full-text search in the notices (original language plus TED's English title). Any keyword matches. Add the local word too ("Reinigung" next to "cleaning").
countries["DE", "France", "POL"]Buyer countries: names, ISO-2 or ISO-3 codes, native names ("Deutschland"). EU, EEA, Switzerland, candidate countries.
cpvCodes["72000000", "45"]CPV codes or prefixes. TED matches the whole branch: 72000000 covers every IT-services code.
stages["tender", "award"]Which notices are searched: planning, tender, award, modification. Empty = all.
buyers["Stadt München"]Part of the buyer's name as written on TED (usually in the local language).
valueMin / valueMax100000 / 5000000Notice value range (estimate for calls, awarded total for awards) in valueCurrency.
valueCurrency"EUR"Currency of the value range. Values are never converted.
daysBack7Publication window: from N days ago up to today (Brussels time).
publishedFrom / publishedTo"2026-09-01"Explicit publication window (at most 366 days).
deadlineFrom / deadlineTo"2026-11-01"Submission-deadline window.
onlyOpentrueOnly calls for tender whose deadline is still ahead and that have no award yet.
linkProcedurestrueRead every other notice of each procedure (about 1 extra request per 50 procedures).
maxItems20Maximum rows (procedures), newest first.
maxApiRequests40Hard request budget for the run.

Common input mistakes

You wroteWrite insteadWhy
"countries": ["Bavaria"]"countries": ["Germany"], "keywords": ["Bayern"]Countries only; regions and cities go in keywords.
"cpvCodes": ["IT services"]"cpvCodes": ["72000000"]CPV codes are digits; put words in keywords.
"valueMin": 1000000 for Polish tendersadd "valueCurrency": "PLN"Values are compared in one currency, never converted.
"stages": ["award"], "onlyOpen": true"onlyOpen": trueOpen calls are tenders, not awards.
"keywords": ["cleaning"] only["cleaning", "Reinigung", "nettoyage"]Notices are written in the buyer's language.

Output example

{
"id": "13f71dbe-a3b4-413c-8c31-fb3acfa95ba1",
"procedureId": "13f71dbe-a3b4-413c-8c31-fb3acfa95ba1",
"stage": "award",
"status": "awarded",
"isOpenForBids": false,
"title": "Spain – Facilities management services for computer systems maintenance – Servicio de asistencia técnica informática, para la administración de Sistemas del Centro Proceso de Datos (CPD) del ISFAS OA",
"originalTitle": "Servicio de asistencia técnica informática, para la administración de Sistemas del Centro Proceso de Datos (CPD) del ISFAS OA",
"mainCpvLabel": "Facilities management services for computer systems maintenance",
"buyerName": "Instituto Social de las Fuerzas Armadas (ISFAS)",
"buyerCountry": "ESP",
"buyerCountryName": "Spain",
"buyerCity": "Madrid",
"buyerType": "Central government authority",
"mainCpvCode": "72514300",
"cpvCodes": ["72514000", "72514300", "72590000"],
"contractNature": "services",
"procedureType": "open",
"procedureTypeLabel": "Open procedure",
"estimatedValue": 1289160,
"estimatedValueCurrency": "EUR",
"tenderDeadline": "2026-08-11T23:59:00+02:00",
"awardedValue": 511200,
"awardedValueCurrency": "EUR",
"awardDecisionDate": "2026-09-09",
"winners": ["Seguel Solutions SRL"],
"winnerCountries": ["ESP"],
"winnerSizes": ["sme"],
"winnersWithheld": 0,
"contractNoticeNumber": "521890-2026",
"awardNoticeNumber": "704141-2026",
"firstPublished": "2026-07-28",
"lastPublished": "2026-10-12",
"noticeCount": 2,
"changeNotices": 0,
"lifecycleLinked": true,
"notices": [
{ "publicationNumber": "704141-2026", "noticeType": "can-standard", "noticeTypeLabel": "Contract award notice", "publicationDate": "2026-10-12", "isChange": false, "valueAmount": 511200, "valueCurrency": "EUR", "url": "https://ted.europa.eu/en/notice/-/detail/704141-2026" },
{ "publicationNumber": "521890-2026", "noticeType": "cn-standard", "noticeTypeLabel": "Contract notice", "publicationDate": "2026-07-28", "isChange": false, "valueAmount": 1289160, "valueCurrency": "EUR", "url": "https://ted.europa.eu/en/notice/-/detail/521890-2026" }
],
"tedUrl": "https://ted.europa.eu/en/notice/-/detail/704141-2026",
"source": "TED - Tenders Electronic Daily (Publications Office of the European Union)",
"sourceUrl": "https://ted.europa.eu/en/",
"license": "© European Union, https://ted.europa.eu. Procurement notices reused under the European Commission reuse policy (Commission Decision 2011/833/EU: commercial and non-commercial reuse, source acknowledged). Changed by this tool: selected fields only, values normalised, notices grouped per procedure; only the notices published in the Supplement to the Official Journal of the EU are authentic. Unofficial tool, not affiliated with or endorsed by the European Union or the Publications Office.",
"retrievedAt": "2026-10-12T18:30:00.000Z"
}

Main fields

FieldMeaning
stageMost advanced stage reached: planning, tender, award.
statusplanned, open (deadline ahead), closed (deadline passed, no award notice yet), awarded, not-awarded (all lots closed without a winner), unknown.
titleTED's English title: country – main CPV label – the title as written by the buyer.
estimatedValueNewest published estimate (procedure value, or the lot values when they share a currency).
awardedValueSum of the values published in the award notices, when they share a currency.
winnersCompany / public-body names that passed the legal-entity gate.
winnersWithheldNumber of winner names withheld (possible private persons, sole traders, partnerships).
matchedNoticesPublication numbers that matched your search window and filters.
noticesEvery notice of the procedure read by the run, newest first, with links.
lifecycleLinkedtrue when all other notices of the procedure were looked up.
idStable row key: the procedure id, or notice:<publication number> for prior information notices (TED gives those no procedure id).

How it works

  1. Searches TED for notices published in your window that match your filters, newest first.
  2. Collects the procedures behind them until it has maxItems procedures.
  3. Looks up every other notice of those procedures (50 procedures per request) and compiles one row per procedure: the newest notice wins for descriptive fields, award notices are combined.

Requests are sent one at a time, at least 2 seconds apart, within a hard request budget. TED's own limits are respected: at most 250 notices per request, at most 15,000 notices per search.

Empty results?

  • Weekends and holidays: TED publishes on working days (around 09:00 Brussels time). A one-day window on a Sunday is empty.
  • Too many filters together: a keyword plus a CPV code plus a country plus a value range often matches nothing in a short window. Widen daysBack first.
  • Language: notices are in the buyer's language; an English-only keyword misses many of them.
  • Value range: notices in other currencies, or without a published value, are skipped when a value range is set.
  • A run that matches nothing ends successfully with 0 rows and a warning in the log; you are not charged for rows.

Personal data (GDPR)

TED notices can contain personal data (contact persons, and occasionally private persons who won a contract). This Actor is built to leave it out:

  • It never requests contact points, e-mail addresses, phone numbers, street addresses or notice descriptions from the API.
  • Winner names are shown only when the name carries a company, cooperative or foundation form (GmbH, s.r.o., Sp. z o.o., S.A., SRL, Kft., Oy, AB, B.V., ...) or names a public body. Sole traders (e.K., OSVČ, PFA, EI, s.p., ...), partnerships (GbR, KG, Sp. j., s.c., v.o.s., ...) and plain names are withheld. Some real companies are withheld too; that is intended.
  • Buyer names are public bodies and are shown, except names that read like a person or a sole trader.
  • Names are shown as published: some buyers type a department or the company's address into the name field.

You remain responsible for how you process the data under the GDPR and local law.

Source, licence and attribution

  • Source: TED – Tenders Electronic Daily, Publications Office of the European Union, https://ted.europa.eu.
  • TED's legal notice: "Unless otherwise noted, the procurement notices published in the Supplement to the Official Journal of the European Union can be freely reused, for commercial or non-commercial purposes" (Commission Decision 2011/833/EU on the reuse of Commission documents). Every row carries the attribution in license. Only the notices published in the Supplement to the Official Journal of the EU are authentic; this dataset is a restructured, partial copy.
  • Do not use TED's logo: the legal notice reserves it.

Disclaimer

This is an unofficial tool. It is not affiliated with or endorsed by the European Union, the European Commission or the Publications Office of the European Union. It reads public data only through TED's public search API. You are responsible for complying with TED's terms and the laws that apply to your use of the data.