EU Tenders (TED): Public Procurement Notices avatar

EU Tenders (TED): Public Procurement Notices

Pricing

from $2.10 / 1,000 notice founds

Go to Apify Store
EU Tenders (TED): Public Procurement Notices

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.

Batu T.

Maintained by Community

Actor 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

fieldmeaning
publicationNumberTED notice ID, e.g. 739394-2026
noticeType, noticeTypeLabel, formTypee.g. cn-standard, "Contract or concession notice, standard regime", competition
titleprocedure title (preferred language if the buyer provided it, else original)
noticeTitleTED headline in your language: country, main CPV, title
descriptionshort description of the procedure or first lot
buyerName, buyerCity, buyerPostCode, buyerCountry, buyerNutscontracting authority
placeOfPerformance, placeOfPerformanceCountriesNUTS codes and countries where the work is done
mainCpv, cpvCodesCPV codes with official English labels; mainCpvLabelLocalized in your language
estimatedValue, currencyestimated contract value, when published
awardedValue, awardedCurrencytotal value of award notices
submissionDeadline, deadlinesearliest open deadline for tenders or requests to participate (ISO 8601 with offset) and all deadlines
procedureType, procedureTypeLabel, contractNature, lotCountopen, restricted, negotiated...; services, works, supplies
publicationDate, dispatchDate, officialLanguages
tedUrl, pdfUrl, xmlUrlnotice on ted.europa.eu in your language
documentsUrl, submissionUrl, buyerProfileUrl, buyerWebsitewhere 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; maxResults is 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.