EU Public Tender Search (TED)
Pricing
from $3.00 / 1,000 tender notices
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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, orDEU. - 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}
| Input | Default | What it changes |
|---|---|---|
keywords | none | Phrases to find. keywordMatch: all requires every phrase. any keeps a notice when one phrase matches. |
keywordScope | title | description searches the procedure and lot text. fullText is the widest search. |
countries | all countries | Buyer country. Names and ISO codes both work. |
cpvCodes | none | CPV codes such as 72000000 for IT services. |
noticePurpose | competition | award for results, planning for prior notices, all for every type. |
minimumValue | 0 | A number above 0 keeps notices with a published estimated or total value at least that high. Notices without a value are left out. |
onlyOpenSubmissions | true | Turn off to include closed and historical notices. |
publishedWithinDays | 30 | Publication window, from 1 to 365 days. |
maxResults | 50 | Stop after this many unique notices. Maximum 2,000. |
Fields
| Field | When TED publishes it |
|---|---|
publicationNumber, tedUrl | Always |
title, description | In the language TED provides. English is preferred when it exists. Descriptions longer than 2,000 characters are shortened. |
buyerName, buyerCountry, buyerCity | Buyer identity |
buyerEmail, buyerWebsite | Public buyer contact, when TED includes it |
noticeType, procedureType | For example cn-standard and open |
cpvCodes | Unique CPV codes |
publicationDate, deadline | YYYY-MM-DD. The deadline is the submission deadline. |
estimatedValue, estimatedValueCurrency | Procedure estimate and its currency, often EUR |
totalValue, totalValueCurrency | Total 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
noticePurposetoall,onlyOpenSubmissionstofalse, orkeywordScopetofullTextwhen 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.