EU Tenders (TED): Public Procurement Notices
Pricing
from $2.10 / 1,000 notice founds
EU Tenders (TED): Public Procurement Notices
EU public tenders from TED (Tenders Electronic Daily) as clean JSON. Filter by keywords, CPV codes, countries, NUTS regions, notice type, dates and open deadlines. Buyer, values, deadlines, CPV labels and document links per notice. Official TED API, no browser.
Pricing
from $2.10 / 1,000 notice founds
Rating
0.0
(0)
Developer
Batu T.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
EU Tenders Scraper (TED): Public Procurement by CPV, Country and Region
Find open public tenders from all EU and EEA countries in TED (Tenders Electronic Daily), the official journal for EU public procurement. Filter by industry (CPV codes or keywords), country, NUTS region, notice type, publication date and open deadline. Every notice comes back as one flat JSON row with the buyer, the estimated value, the deadline and direct links to the notice and the tender documents.
The actor uses the official TED Search API (no browser, no login), so runs are fast and cheap.
What you get per notice
| field | meaning |
|---|---|
publicationNumber | TED notice ID, e.g. 739394-2026 |
noticeType, noticeTypeLabel, formType | e.g. cn-standard, "Contract or concession notice, standard regime", competition |
title | procedure title (preferred language if the buyer provided it, else original) |
noticeTitle | TED headline in your language: country, main CPV, title |
description | short description of the procedure or first lot |
buyerName, buyerCity, buyerPostCode, buyerCountry, buyerNuts | contracting authority |
placeOfPerformance, placeOfPerformanceCountries | NUTS codes and countries where the work is done |
mainCpv, cpvCodes | CPV codes with official English labels; mainCpvLabelLocalized in your language |
estimatedValue, currency | estimated contract value, when published |
awardedValue, awardedCurrency | total value of award notices |
submissionDeadline, deadlines | earliest open deadline for tenders or requests to participate (ISO 8601 with offset) and all deadlines |
procedureType, procedureTypeLabel, contractNature, lotCount | open, restricted, negotiated...; services, works, supplies |
publicationDate, dispatchDate, officialLanguages | |
tedUrl, pdfUrl, xmlUrl | notice on ted.europa.eu in your language |
documentsUrl, submissionUrl, buyerProfileUrl, buyerWebsite | where to download the tender documents and submit |
Inputs
- Keywords: words or phrases in any EU language, with stemming. By default only titles and descriptions are searched, which avoids hits in boilerplate text.
- CPV codes: industry codes. TED includes the whole branch below a code, e.g. 90910000 finds all cleaning services. Turn off sub-codes to keep exact codes only.
- Countries (DE or DEU) and NUTS regions (DE2 = Bavaria), matched against the place of performance, the buyer address or both.
- Notice types: contract notices (default), prior information, award notices, direct award pre-announcements, modifications.
- Dates: last N days (default 30) or a from/to range, plus Only open deadlines (default on).
- Output language: titles, descriptions and links in one of the 24 EU languages with fallback to the original language.
- Expert query: any TED expert search query for power users, combined with the filters above.
Example: cleaning tenders in Germany
{ "cpvCodes": ["90910000"], "countries": ["DE"], "lastDays": 30, "language": "de" }
Example: locksmith tenders across Europe
{ "cpvCodes": ["98395000", "44521000"], "openDeadlineOnly": true, "lastDays": 90 }
Pricing
You pay per notice delivered. Errors and filtered-out notices are not charged.
Limits and notes
- Results are paged with the TED API iteration mode, so there is no 15,000 notice cap;
maxResultsis your safety limit. - Requests are paced well below the TED fair usage limit (700 requests per minute) and retried with backoff on rate limits or server errors.
- Values, deadlines and links are only as complete as the buyer filled them in. Older notices (before the eForms switch in 2023) have fewer fields.
- TED data is published by the Publications Office of the European Union and may be reused for commercial and non-commercial purposes (Commission Decision 2011/833/EU). Source: TED, ted.europa.eu.
Not affiliated with the Publications Office of the European Union or TED.
FAQ
Do I need a TED account, an API key or a proxy? No. The Actor calls the public TED Search API without login. The proxy is off by default and only needed if your network is blocked.
What am I charged for? One event per notice delivered. Error items and notices removed by the post-filters (exact CPV codes, deadline already passed) are not charged.
Why do I get fewer notices than TED reports? By default only notices with a deadline still in the future are kept (openDeadlineOnly), and maxResults (default 200, maximum 50,000) stops the run. Turn off sub-codes and only exact CPV codes are kept. TED's total count is written to the STATS record in the key-value store.
What happens when the TED API fails? Rate limits (429), timeouts (408) and server errors are retried up to 6 times with backoff. If the API still fails, or answers with a non-retryable error such as an invalid query, the run pushes one item with error and the query that was sent. Notices delivered before that stay in the dataset. Invalid input produces one item with error and the input.
Does it include award notices and prior information notices? Only if you select them in noticeTypes and turn off openDeadlineOnly, because most of these notices have no deadline. The default is contract notices (competition). Award values are in awardedValue, estimated values in estimatedValue.
Use with AI agents (MCP)
This Actor works as a tool for Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server. Add only this Actor:
https://mcp.apify.com?tools=webify-lab/eu-tenders-ted
On first use the server signs you in with OAuth. Alternatively send the header Authorization: Bearer <APIFY_TOKEN>. Agents on the default Apify MCP setup can also find this Actor with search-actors and run it with call-actor. Pricing is the same as in Apify Console: you pay per result.