EU & UK Public Tenders: TED and Find a Tender
Pricing
from $1.50 / 1,000 tender notices
EU & UK Public Tenders: TED and Find a Tender
Search EU (TED) and UK (Find a Tender, Contracts Finder) public tenders in one schema: CPV, NUTS, value, deadline, lots and awards. New-only daily alerts. No contact names, emails or phones.
Pricing
from $1.50 / 1,000 tender notices
Rating
0.0
(0)
Developer
OpenFeeds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What does EU & UK Public Tenders do?
EU & UK Public Tenders searches the three official public-procurement portals – TED (Tenders Electronic Daily, EU/EEA), UK Find a Tender and UK Contracts Finder – and returns one clean dataset of public tenders, planned procurements and contract awards in a single schema. Think of it as a TED API and Find a Tender API alternative with one schema: buyer, CPV and NUTS codes, estimated value, deadline, procedure, lots and award winners, plus a link to the official notice.
No personal data: the Actor never outputs contact names, e-mail addresses or phone numbers. Structured contact fields are never requested, and contact details in free text are removed.
Why use EU & UK Public Tenders?
- 🇬🇧 Complete UK coverage. Find a Tender has a server-side "tender" filter that misses about 9 out of 10 Procurement Act 2023 tenders (on 9 October 2026 it returned 8 tender notices; reading every notice of that day found 77). This Actor reads every notice and filters itself, so new UK4 tender notices are not lost.
- 🇪🇺 EU and UK in one schema – lots, CPV, NUTS, values, deadlines, procedure type, SME suitability, framework flag and award winners, with the same field names for all three portals.
- 🔔 Daily "only new" alerts. Schedule the Actor and get only notices you have not seen yet. Connect the results to e-mail, Slack, Google Sheets, webhooks, Make or Zapier with Apify integrations.
- 🛡️ GDPR-friendly. Organisation data only: no contact persons, e-mails or phone numbers.
- ✅ Reliable. Official, keyless APIs; each portal is handled separately, so if one is down you still get the others. Rate limits are respected (Retry-After, Contracts Finder lockout protection), and partial results are kept.
- 🤖 Works for AI agents and MCP. Flat camelCase fields, ISO dates, stable ids such as
ted:707427-2026.
Use cases
- Bid and tender teams – a daily list of new open tenders in your CPV codes, countries and keywords.
- Bid-writing agencies and consultants – monitor several clients' markets with one alert profile per client (
stateName). - Market analysts – pull contract award notices to see who wins what, at which value, in which country.
- Sales intelligence – spot upcoming demand early with planned procurements (prior information and pipeline notices).
What data can you get?
| Field | Example | Description |
|---|---|---|
title | CPF Digital Project Evaluation | Procedure title (preferred language when TED has it) |
buyerName | British Council | Contracting authority (organisation only) |
buyerCountry | GB | ISO country code of the buyer |
cpvCodes | ["73200000"] | All CPV codes (8 digits) |
nutsCodes | ["FRD22"] | NUTS codes of the place of performance |
estimatedValue | 2039000 | Estimated value (net unless valueIncludesVat) |
currency | EUR | Currency as published |
deadline | 2026-11-30T16:00:00+01:00 | Earliest open submission deadline |
isOpen | true | Deadline still in the future when fetched |
procedureType | open | Open, restricted, negotiated, selective … |
lots | [{…}] | Per-lot title, value, deadline, region, duration |
awards | [{…}] | Contract award notices: winner, country, size, value |
noticeUrl | https://ted.europa.eu/en/notice/-/detail/707427-2026 | Official notice page |
documentsUrl | https://… | Where to get the procurement documents |
licence | © European Union, https://ted.europa.eu – … | Attribution to keep when you reuse the data |
Never included: contact names, e-mail addresses, phone numbers, street addresses of suppliers.
How to search EU and UK public tenders
- Open the Actor and choose the Sources (TED, Find a Tender, Contracts Finder).
- Choose the Notice types: open tenders, planned procurements and/or contract awards.
- Narrow the search with CPV codes, keywords, buyer countries or NUTS regions (all optional).
- Set the date window with Published within (days) or fixed dates.
- Click Start. Small runs such as the prefilled 30 notices usually take a few seconds; large runs that read many Find a Tender pages take a few minutes (see Tips).
- Download the tender notices as JSON, CSV, Excel or HTML, or read them through the Apify API.
How much does it cost to get EU and UK public tenders?
The Actor uses pay-per-event pricing. You pay for each tender notice delivered to the dataset, plus a tiny fee per run:
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Tender notice (per notice delivered) | $0.0025 ($2.50 per 1,000) | $0.0022 | $0.0019 | $0.0015 |
| Actor start (per run) | $0.00005 | $0.00005 | $0.00005 | $0.00005 |
Examples (Free-plan prices):
- Test run with 30 tender notices: 30 × $0.0025 ≈ $0.08.
- Daily alert with about 30 new notices a day: about $0.075 a day, about $2.25 a month.
- One-off export of 10,000 notices: about $25.
You are never charged for notices that were filtered out, duplicates, notices already returned by an earlier "only new" run, notices that failed to convert, or for failed runs. Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached. If that maximum is lower than the price of one notice, nothing is delivered and the status message tells you to raise it.
Input
See the Input tab for every option. The most important ones:
- Sources –
ted,fts(Find a Tender),cf(Contracts Finder). - Notice types –
tender(open tenders),planning(planned procurements),award(contract awards). - Keywords, CPV codes (prefixes), Buyer countries, NUTS regions (prefixes) – all optional filters.
- Published within (days) or Published from / to – the date window (at most 366 days). An end date in the future counts as today.
- Only open tenders – keep only tenders whose deadline has not passed (on by default).
- Only new since last run and Alert name – for daily alerts.
- Max notices – the upper limit across all sources (you pay per notice).
The prefilled input returns 30 open tenders from TED and Find a Tender published in the last 7 days:
{"sources": ["ted", "fts"],"noticeTypes": ["tender"],"publishedWithinDays": 7,"openOnly": true,"maxItems": 30}
Preset: IT tenders in Germany, Austria and Switzerland
{"sources": ["ted"],"countries": ["DE", "AT", "CH"],"cpvCodes": ["72", "48"],"publishedWithinDays": 7,"maxItems": 500}
Preset: all new UK tenders every day
{"sources": ["fts", "cf"],"noticeTypes": ["tender"],"publishedWithinDays": 2,"onlyNew": true,"stateName": "uk-daily","maxItems": 1000}
Preset: contract awards for construction in the Nordics
{"sources": ["ted"],"noticeTypes": ["award"],"cpvCodes": ["45"],"countries": ["SE", "NO", "DK", "FI"],"publishedWithinDays": 30,"maxItems": 1000}
Output
You can download the dataset in various formats such as JSON, HTML, CSV or Excel. The dataset has two views: Overview (one row per tender notice) and Contract awards (one row per winner of a contract award notice; see the notes below the example). These two items come from a local run with the prefilled input (descriptions and lots shortened):
[{"id": "ted:707427-2026","source": "ted","sourceName": "TED (EU)","noticeId": "707427-2026","procedureId": "3f80fb8c-2c0e-490c-9df2-50dbf1ec06dd","noticeType": "tender","noticeTypeCode": "cn-standard","isUpdate": false,"legalBasis": "32014L0024","legalBasisLabel": "Directive 2014/24/EU","title": "Travaux portant sur le traitement des pathologies structurelles affectant le gros oeuvre et les revêtements extérieurs (façades) des EPLE - Phase 1 (76 et 27) - AO","headline": "France – Facade work – Travaux portant sur le traitement des pathologies structurelles affectant le gros oeuvre et les revêtements extérieurs (façades) des EPLE - Phase 1 (76 et 27) - AO","language": "fr","description": "Travaux portant sur le traitement des pathologies structurelles affectant le gros oeuvre et les revêtements extérieurs (façades) des EPLE - Phase 1 (76 et 27) -…","buyerName": "REGION NORMANDIE - DIRECTION DES BATIMENTS REGIONAUX","buyerId": "80553","buyerCountry": "FR","buyerCity": "Caen","buyerType": "la","buyerWebsite": "http://normandie.fr","performanceCountry": "FR","nutsCodes": ["FRD22"],"cpvCodes": ["45443000", "45223220"],"mainCpvCode": "45443000","contractNature": "works","procedureType": "open","procedureDetails": null,"estimatedValue": 2039000,"currency": "EUR","valueIncludesVat": false,"publishedDate": "2026-10-13","publishedAt": null,"deadline": "2026-11-30T16:00:00+01:00","deadlineType": "tender","isOpen": true,"smeSuitable": null,"isFramework": false,"lotCount": 3,"lots": [{"lotId": "LOT-0001","title": "Département de l'Eure","description": "Département de l'Eure","estimatedValue": null,"currency": null,"deadline": "2026-11-30T16:00:00+01:00","nutsCodes": ["FRD22"],"smeSuitable": null,"durationMonths": 7}],"awards": null,"awardedTotalValue": null,"awardedCurrency": null,"noticeUrl": "https://ted.europa.eu/en/notice/-/detail/707427-2026","pdfUrl": "https://ted.europa.eu/en/notice/707427-2026/pdf","documentsUrl": "https://www.marches-publics.info/mpiaws/index.cfm?fuseaction=dematEnt.login&type=DCE&IDM=1887175","submissionUrl": "https://www.marches-publics.info/mpiaws/index.cfm?fuseaction=demat.termes&IDM=1887175","licence": "© European Union, https://ted.europa.eu – free reuse (Decision 2011/833/EU)","licenceUrl": "https://ted.europa.eu/en/legal-notice","fetchedAt": "2026-10-13T00:58:44.206Z"},{"id": "fts:096303-2026","source": "fts","sourceName": "Find a Tender (UK)","noticeId": "096303-2026","procedureId": "ocds-h6vhtk-078611","noticeType": "tender","noticeTypeCode": "UK4","isUpdate": false,"legalBasis": "2023/54","legalBasisLabel": "Procurement Act 2023 (UK)","title": "CPF Digital Project Evaluation","headline": "CPF Digital Project Evaluation","language": "en","description": "Evaluating the Impact of the CPF digital project pilot","buyerName": "British Council","buyerId": "GB-PPON-PHTN-1551-GCQH","buyerCountry": "GB","buyerCity": "London","buyerType": "publicAuthoritySubCentralGovernment","buyerWebsite": "http://www.britishcouncil.org","performanceCountry": "GB","nutsCodes": ["UK"],"cpvCodes": ["73200000"],"mainCpvCode": "73200000","contractNature": "services","procedureType": "open","procedureDetails": "Below threshold - open competition","estimatedValue": 20833,"currency": "GBP","valueIncludesVat": false,"publishedDate": "2026-10-12","publishedAt": "2026-10-12T17:25:11+01:00","deadline": "2026-10-30T10:00:00Z","deadlineType": "tender","isOpen": true,"smeSuitable": null,"isFramework": true,"lotCount": 1,"lots": [{"lotId": "1","title": null,"description": null,"estimatedValue": 20833,"currency": "GBP","deadline": "2026-10-30T10:00:00Z","nutsCodes": ["UK"],"smeSuitable": null,"durationMonths": 4.2}],"awards": null,"awardedTotalValue": null,"awardedCurrency": null,"noticeUrl": "https://www.find-tender.service.gov.uk/Notice/096303-2026","pdfUrl": null,"documentsUrl": null,"submissionUrl": "https://tap.tcsapps.com/tap2/#/bc-supplier-registration","licence": "Contains public sector information licensed under the Open Government Licence v3.0.","licenceUrl": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/","fetchedAt": "2026-10-13T00:58:45.393Z"}]
A contract award notice additionally has awards (one entry per winner: lotId, winnerName, winnerId, winnerCountry, winnerSize, value, currency, awardDate), awardedTotalValue and awardedCurrency.
Notes on the Contract awards view:
- It lists one row per winner of each contract award notice. Notices of other types (open tenders, planned procurements) also appear, with empty winner columns. For a winners-only table, run with
"noticeTypes": ["award"]. - When several winners share one award, which is common for frameworks, each winner row shows the same full award value. Do not add up the Value column; use
awardedTotalValuefor the total of a notice. valueandcurrencystay empty when the portal does not say which value belongs to which winner.
Each run also writes a RUN_SUMMARY record to the key-value store: per source the status (ok, empty, skipped, stopped, rate-limited, error) with a reason, pages, notices fetched, matched and delivered, and the date window. stopped means the source ended early without an error, for example because maxItems or the maximum cost was reached first, the run was aborted, or its timeout was near.
Field reference
| Field | Description |
|---|---|
id | Unique id <source>:<noticeId>, stable across runs |
source, sourceName | ted / fts / cf; TED (EU), Find a Tender (UK), Contracts Finder (UK) |
noticeId | TED publication number, Find a Tender notice id or Contracts Finder release id |
procedureId | TED procedure identifier or OCDS ocid; links notices of the same procedure |
noticeType | tender, planning or award |
noticeTypeCode | TED notice type (cn-standard, can-standard, pin-only …), UK notice type (UK4, UK6 …) or OCDS tag |
isUpdate | True for changed or corrected versions |
legalBasis, legalBasisLabel | CELEX id or UK act id, and a readable label (e.g. Directive 2014/24/EU, Procurement Act 2023 (UK)) |
title, headline, language | Title, TED's translated headline (country – main CPV – title) and the language of the title |
description | Procedure description, contact details removed, at most 10,000 characters |
buyerName, buyerId, buyerCountry, buyerCity, buyerType, buyerWebsite | The contracting authority (organisation data only) |
performanceCountry, nutsCodes | Place of performance (country and NUTS codes; Contracts Finder has no NUTS codes) |
cpvCodes, mainCpvCode | CPV codes (8 digits, no check digit) |
contractNature | works, supplies or services |
procedureType, procedureDetails | Procedure type; UK procurement method details |
estimatedValue, currency, valueIncludesVat | Estimated value as published (no currency conversion) |
publishedDate, publishedAt | Publication date; exact time for UK notices |
deadline, deadlineType, isOpen | Submission deadline (tenders or requests to participate; a deadline published without a time is set to 23:59:59 of that day) and whether it is still open |
smeSuitable, isFramework | SME suitability and framework agreement flags |
lotCount, lots | Number of lots and per-lot details (lotId, title, description, estimatedValue, currency, deadline, nutsCodes, smeSuitable, durationMonths) |
awards, awardedTotalValue, awardedCurrency | Contract award notices only |
noticeUrl, pdfUrl, documentsUrl, submissionUrl | Official notice page, TED PDF, procurement documents, submission page |
licence, licenceUrl | Attribution to keep when reusing the data |
fetchedAt | When the record was fetched |
What is a CPV code?
The Common Procurement Vocabulary is the EU's 8-digit classification of what is being bought, for example 72000000 (IT services) or 45000000 (construction work). Enter a prefix such as 72 or 7226 to get everything below it; trailing zeros are ignored, so 72000000-5 means the same as 72.
What is a NUTS code?
NUTS codes identify EU regions, for example DE1 (Baden-Württemberg) or FR10 (Île-de-France). Find a Tender uses UK codes such as UKI (London). Contracts Finder publishes region names instead of NUTS codes, so it is skipped when you filter by NUTS.
Notice types
tender– calls for competition you can bid on (TED contract notices, UK4 tender notices on Find a Tender, Contracts Finder opportunities).planning– prior information, pipeline and preliminary market engagement notices (e.g. UK2/UK3).award– contract award notices (TED result notices, UK5/UK6/UK7 on Find a Tender, Contracts Finder awards).
Tips
- Daily alerts: turn on Only new since last run, keep Published within (days) small (1–3) and create an Apify schedule. Each alert profile can have its own Alert name so the "already seen" memories do not mix.
- Power filters: use TED expert query for anything the form does not offer, e.g.
procedure-type=open AND buyer-legal-type=la. - Language: Preferred language picks the TED title and headline language and the language of the TED links.
- Order: results come newest first per source, but sources run in parallel, so sort by
publishedDateif you need one order. - Speed: TED and Contracts Finder are fast. Find a Tender pauses a caller for 2 minutes after roughly 20 quick requests (each request reads 100 notices of all types). In runs of more than 100 notices the Actor waits and continues automatically, so large UK windows take longer: a run with the default settings (1,000 notices from all three portals) usually takes 3 to 5 minutes. Runs of up to 100 notices that include TED and have no keyword, CPV, NUTS or expert-query filter (such as the prefilled input) do not wait for Find a Tender: if it asks for a pause longer than 30 seconds or answers too slowly (15-second timeout, one retry), TED fills the remaining notices. Filtered runs wait, so their UK results stay complete. Use filters,
maxItemsor a smaller window to keep runs short; daily alerts are rarely affected.
FAQ
Is it legal to use public tender data?
Yes. TED notices may be freely reused, also commercially, under the EU reuse policy (Commission Decision 2011/833/EU). Find a Tender and Contracts Finder data are published under the Open Government Licence v3.0. Keep the attribution in the licence field when you republish the data.
Our Actors are ethical and do not extract private contact data such as e-mail addresses or phone numbers. However, results may contain the names of sole traders that won a contract (award notices are published by law) or a name mentioned in free text. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You are responsible for using the results lawfully; if you are unsure, consult your lawyers.
Why are there no contact e-mails or phone numbers?
To protect personal data (GDPR). Open noticeUrl to see the official contact details on the portal.
How fresh is the data?
TED publishes new notices Monday to Friday; the UK portals publish continuously. The Actor reads the live APIs on every run, so schedule it as often as you like.
Why does a TED keyword search find more than a UK keyword search?
TED's own full-text search covers the whole notice in all languages (with stemming). For Find a Tender and Contracts Finder the Actor matches your keywords in the title, description and lot titles.
Contracts Finder was skipped or rate-limited – why?
Contracts Finder is skipped when you filter by NUTS codes (it has none) or by non-UK countries. If it answers with its rate-limit error, it locks the caller out for 5 minutes; the Actor then stops Contracts Finder for that run and keeps the results from the other sources. The run summary shows the status of every source.
Which countries are covered?
All EU member states, the EEA countries (Iceland, Liechtenstein, Norway), Switzerland and other countries that publish on TED, plus the United Kingdom.
Are values converted to one currency?
No, values are returned as published, with their ISO currency code.
Are there limits?
The date window can be up to 366 days per run and a run can return up to 100,000 notices. Very large exports can take longer than the run's timeout (1 hour by default) because of Find a Tender's pauses. About 90 seconds before the timeout the Actor stops loading new pages, delivers what it already has and finishes as SUCCEEDED; the source shows stopped in RUN_SUMMARY. Raise the timeout in the run options, or split the window, for complete exports.
Data sources and attribution
- TED: © European Union, https://ted.europa.eu
- Find a Tender and Contracts Finder: Contains public sector information licensed under the Open Government Licence v3.0.
Support
Found a problem or missing a field? Open an issue in the Issues tab. To call the Actor from your own code, see the API tab.
Changelog
- 1.0 (2026-10-13) – First release: TED, Find a Tender and Contracts Finder in one schema; open tenders, planned procurements and contract awards; lots and award winners; only-new daily alerts; contact data removed.