EU Public Tender Search (TED) avatar

EU Public Tender Search (TED)

Pricing

from $3.00 / 1,000 tender notices

Go to Apify Store
EU Public Tender Search (TED)

EU Public Tender Search (TED)

Find open EU public tenders from the official TED API. Filter by keyword, country, value and deadline, then export the buyer, amount, currency and description.

Pricing

from $3.00 / 1,000 tender notices

Rating

0.0

(0)

Developer

Matis Monnin

Matis Monnin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Export current EU public-procurement notices from the official TED Search API into a spreadsheet or JSON feed.

The TED website already lets you search for free. Use this Actor when you need the same public notices as rows you can filter, schedule, and download: buyer, title, description, value, currency, deadline, and the official notice link. It does not log in to TED, scrape the website, or add information TED did not publish.

Why not just use the TED website?

TED is the source, and it stays free. The website is the right place to read one notice. This Actor is the right place to repeat a search:

  • Every keyword has to match the title, unless you widen the search.
  • The default keeps contract notices with a submission deadline that is still open. Award notices and closed notices stay out.
  • Countries can be typed as Germany, DE, or DEU.
  • The result is one row per notice, ready for CSV, Excel, a sheet, or an API call.
  • Missing amounts, currencies, and descriptions stay null. They are never guessed.

What a precise search looks like

{
"keywords": ["software"],
"keywordMatch": "all",
"keywordScope": "title",
"countries": ["Germany"],
"noticePurpose": "competition",
"onlyOpenSubmissions": true,
"minimumValue": 100000,
"publishedWithinDays": 30,
"maxResults": 25
}
InputDefaultWhat it changes
keywordsnonePhrases to find. keywordMatch: all requires every phrase. any keeps a notice when one phrase matches.
keywordScopetitledescription searches the procedure and lot text. fullText is the widest search.
countriesall countriesBuyer country. Names and ISO codes both work.
cpvCodesnoneCPV codes such as 72000000 for IT services.
noticePurposecompetitionaward for results, planning for prior notices, all for every type.
minimumValue0A number above 0 keeps notices with a published estimated or total value at least that high. Notices without a value are left out.
onlyOpenSubmissionstrueTurn off to include closed and historical notices.
publishedWithinDays30Publication window, from 1 to 365 days.
maxResults50Stop after this many unique notices. Maximum 2,000.

Fields

FieldWhen TED publishes it
publicationNumber, tedUrlAlways
title, descriptionIn the language TED provides. English is preferred when it exists. Descriptions longer than 2,000 characters are shortened.
buyerName, buyerCountry, buyerCityBuyer identity
buyerEmail, buyerWebsitePublic buyer contact, when TED includes it
noticeType, procedureTypeFor example cn-standard and open
cpvCodesUnique CPV codes
publicationDate, deadlineYYYY-MM-DD. The deadline is the submission deadline.
estimatedValue, estimatedValueCurrencyProcedure estimate and its currency, often EUR
totalValue, totalValueCurrencyTotal value and its currency

A value without a currency, or a currency without a value, can happen because TED fills those fields separately. Both stay null when TED omits them.

Example

{
"publicationNumber": "650347-2026",
"description": "Vertrag zur besonderen Versorgung zur Verbesserung der digitalen, ärztlichen Versorgung für Patienten durch einen elektronischen Kommunikations- und Vernetzungsprozess nach § 140a SGB V über Videosprechstunde",
"buyerName": "AOK Bayern - Die Gesundheitskasse",
"buyerCountry": "DEU",
"buyerCity": "München",
"buyerEmail": "vergabestelle1@by.aok.de",
"noticeType": "cn-standard",
"procedureType": "open",
"cpvCodes": ["85100000"],
"deadline": "2026-10-05",
"estimatedValue": 2600500,
"estimatedValueCurrency": "EUR",
"totalValue": 2600500,
"totalValueCurrency": "EUR",
"tedUrl": "https://ted.europa.eu/en/notice/-/detail/650347-2026",
"source": "ted.europa.eu"
}

This example comes from fields the official API returned for that publication number. It is not a promise that every notice has an email or a value.

Pricing

This Actor uses pay per event. Platform usage is included in the price.

  • $0.003 per saved notice, which is $3.00 per 1,000 notices
  • $0.00005 when a run starts, once per GB of memory, with a minimum of one event
  • Empty runs and failed searches do not add notice charges
  • Duplicates are not written, so they are not charged

One run that saves 1,000 notices costs $3.00005. One thousand separate runs that each save one notice cost $3.05, because each run has its own start fee.

Examples:

  • 25 notices in one run: $0.07505
  • 100 notices in one run: $0.30005
  • 1,000 notices in one run: $3.00005
  • 10,000 notices, in runs of at most 2,000: $30.00025

Apify keeps 20% of event revenue. A measured 10-notice run used 256 MB for 2.5 seconds and cost $0.00019 of platform usage. From that measurement, about $2.38 of the $3.00 remains after Apify’s share and compute. That margin is an estimate, not a measured result for 1,000 notices.

Limits

  • TED decides which fields exist. Many notices have no value and no email.
  • The default search is deliberately narrow. Set noticePurpose to all, onlyOpenSubmissions to false, or keywordScope to fullText when you want the wider journal.
  • A minimum value excludes notices that do not publish a value, even if the contract is large.
  • Descriptions are shortened at 2,000 characters.
  • Maximum 2,000 notices per run, and the publication window cannot exceed 365 days.
  • You are responsible for your use of the data and for the TED terms of use.

FAQ

Does this replace the TED search page? No. It exports the public search result so you can reuse it. Open tedUrl to read the official notice.

Why are there fewer rows than on TED? The default keeps contract notices whose submission deadline is still open, and it requires every keyword to appear in the title. TED’s own search is broader.

Will every row have a budget? No. estimatedValue and totalValue are filled only when TED sends them. Use minimumValue above 0 if you want to drop notices without a published amount.