EU Tenders Scraper: TED Public Procurement | $1/1K
Pricing
from $1.00 / 1,000 results
EU Tenders Scraper: TED Public Procurement | $1/1K
$1 per 1,000 results, platform usage included. EU public procurement notices from TED (Tenders Electronic Daily): title, buyer, country, publication date, deadline, CPV codes, value and notice links. Filter by keyword, country, CPV code and date. No API key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
One Dollar Store
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
EU Tenders Scraper: public procurement notices from TED
$1 per 1,000 notices. Platform usage included. No rental, no minimum.
New to Apify? [Create a free account](https://www.apify.com?fpr=ymnoit) (referral link). Runs from a free plan account return the first 10 results; any paid plan returns everything you ask for, up to your limit.What it costs
| Notices | This actor |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |
Plus $0.001 per run. One flat price, platform usage included, so there is no separate compute or proxy bill. A daily run of 200 new notices costs about $0.20, or about $6 a month.
Why use it
- The official source. Rows come from TED (Tenders Electronic Daily), the EU's journal for public procurement, through its own open search API. No key and no web page scraping.
- Open calls and results. Contract notices (open calls for tenders), results (contract awards, with the winner names) and planning notices (prior information).
- Filters done by TED. Keywords, buyer country, CPV code (a short code such as 72 matches everything under it), date range, value range and "still open" run on TED's side, so you pay only for the notices you keep.
- Big pulls are fast. A 1,000 notice run took about 85 seconds in our tests.
Quick start
- Open the actor, type a keyword, press Start.
- Or paste this input:
{ "keywords": ["software"], "countries": ["DE", "FR"], "cpvCodes": ["72"], "noticeKind": "competition", "onlyOpen": true, "daysBack": 14, "maxItems": 100 }
- Download the results as JSON, CSV or Excel, or read them through the API.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~eu-tenders-ted-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["cloud"], "daysBack": 7, "maxItems": 50}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("one_dollar_store/eu-tenders-ted-scraper").call(run_input={"countries": ["Germany"], "cpvCodes": ["72"], "daysBack": 7, "maxItems": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["publishedOn"], item["buyerCountry"], item["buyerName"], item["title"], item.get("value"))
Use it from an AI assistant
Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:
https://mcp.apify.com?tools=one_dollar_store/eu-tenders-ted-scraper
Then ask, for example: "Find open EU tenders for IT services published in the last 10 days with a value above 200,000 euros."
Switching from another TED actor
Most take a search text, a country and a result limit. Here they are keywords (a list), countries (two letter codes, three letter codes or names) and maxItems, with daysBack or publishedFrom and publishedTo for dates. The core fields are noticeId, title, buyerName, buyerCountry, cpvCodes, value, deadline and noticeUrl.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
keywords | list of text | none | Full text search in the notice (title, description, buyer). A notice is kept when it matches any line. |
countries | list | none | Buyer countries as two letter codes (DE), three letter codes (DEU) or English names (Germany). |
cpvCodes | list | none | CPV codes. A short code such as 72 or 7222 also matches every code that starts with it. |
noticeKind | text | any | competition (open calls), result (contract awards) or planning (prior information). |
daysBack | number | 7 | Notices published in the last N days (up to 3,650). |
publishedFrom, publishedTo | text | none | Dates such as 2026-09-01. They replace daysBack. |
onlyOpen | true or false | false | Only notices whose submission deadline has not passed. |
minValue, maxValue | number | none | Keep notices whose estimated or total value is in this range, in the notice's own currency. |
maxItems | number | 100 | Total notices for the run. Minimum 10. |
Example:
{"keywords": ["software", "cloud services"],"countries": ["DE", "FR"],"cpvCodes": ["72"],"noticeKind": "competition","minValue": 100000,"onlyOpen": true,"daysBack": 14,"maxItems": 100}
Output fields
| Field | Meaning |
|---|---|
noticeId | TED publication number, for example 700338-2026. |
title, sector | The buyer's own title and the main CPV label TED shows in front of it. |
noticeType, contractNature, procedureType | TED notice type (cn-standard, can-standard, pin-only...), works, services or supplies, and the procedure (open, restricted...). |
buyerName, buyerCountry, buyerCountryName | Contracting authority (English text when TED has it, else the original language) and its country. |
cpvCodes | CPV codes of the notice, without repeats. |
publishedOn, deadline | Publication date and the earliest submission deadline among the lots. |
value, valueCurrency, valueKind | Estimated value for open calls and the awarded total for results, in the notice's currency. valueKind says which. |
winners | For result notices: the winning company names (up to 100). |
noticeUrl, pdfUrl, xmlUrl | Links to the notice on TED, its PDF and its XML. |
scrapedAt | Collection time. |
Sample results
Real rows from test runs on 9 October 2026 (titles and winner lists shortened).
[{"noticeId": "700338-2026","title": "Mobilier de bibliothèque et rayonnage - 2 lots","sector": "Furniture","noticeType": "cn-standard","contractNature": "supplies","procedureType": "open","buyerName": "Conseil Départemental de l'Essonne","buyerCountry": "FRA","buyerCountryName": "France","cpvCodes": ["39100000","39120000","39131100"],"publishedOn": "2026-10-09","deadline": "2026-11-09","value": 3000000,"valueCurrency": "EUR","valueKind": "estimated","noticeUrl": "https://ted.europa.eu/en/notice/-/detail/700338-2026"},{"noticeId": "700330-2026","title": "Vispārīgā vienošanās kokskaidu granulu piegādei Madonas novada pašvaldībai","sector": "Wood fuels","noticeType": "can-standard","contractNature": "supplies","procedureType": "open","buyerName": "Madonas novada pašvaldība","buyerCountry": "LVA","buyerCountryName": "Latvia","cpvCodes": ["09111400"],"publishedOn": "2026-10-09","value": 500000,"valueCurrency": "EUR","valueKind": "total","winners": ["Sabiedrība ar ierobežotu atbildību \"AKVARIUS\"","Sabiedrība ar ierobežotu atbildību \"Latgales Granulas\""],"noticeUrl": "https://ted.europa.eu/en/notice/-/detail/700330-2026"},{"noticeId": "700335-2026","title": "Umbau Alte Weberei zum KreativCampus - Los 09 Trockenbau","sector": "Construction work","noticeType": "cn-standard","contractNature": "works","procedureType": "open","buyerName": "Stadt Finsterwalde","buyerCountry": "DEU","buyerCountryName": "Germany","cpvCodes": ["45000000"],"publishedOn": "2026-10-09","deadline": "2026-11-10","noticeUrl": "https://ted.europa.eu/en/notice/-/detail/700335-2026"}]
Limits
- One row per notice. A notice with many lots is one row. Lot titles and lot values are not listed separately.
- Value is often missing. Many open calls give no value at notice level, and TED shows values per lot instead. In a 50 notice test run about half the rows had a value.
minValueandmaxValuedrop notices with no stated value. - Deadline is the earliest submission deadline among the lots. Result notices have none. Dates have no time of day.
- Language. Titles and buyer names come in the language the buyer used. The English text is used when TED has it.
- Keywords are matched by TED's full text search. Quotes and backslashes in keywords are removed before the search.
- Coverage. TED holds notices above the EU thresholds and some below them. Contracts a country publishes only on its own portal are not here.
- Pace. The actor makes about two requests a second and reads up to 250 notices per request. A 1,000 notice run took about 85 seconds in our tests.
FAQ
How much does it cost to scrape 10,000 EU tenders? $10, plus $0.001 for each run.
Do I pay for compute or proxy on top? No. Platform usage is included in the $1 per 1,000 price. The actor needs no proxy.
Where does the data come from? From the search API of TED (Tenders Electronic Daily), the EU's official procurement journal. The API is open to everyone and needs no key. The actor uses no login.
Can I see who won a contract?
Yes. Set noticeKind to result. Result notices list the winners in winners and the awarded total in value.
How do I get only tenders I can still bid on?
Set noticeKind to competition and turn on onlyOpen.
Can I watch for new tenders every day?
Yes. Schedule a daily run with daysBack set to 1 and use noticeId to drop notices you already have.
Is it legal? The actor reads public data only, with no login. TED notices are published for reuse by the EU. How you use them is up to you: follow the reuse conditions on TED, data protection law for any personal data, and the law where you live.
Is this an official EU product? No. It is an independent tool and is not affiliated with or endorsed by the European Union or the Publications Office of the EU.
Do I need an Apify account? Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can sign up here. This is a referral link and it costs you nothing.
Is there a limit on the free plan? Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.
More from The One Dollar Store
Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store
Tenders and grants
- UK Contracts Finder Scraper: UK public tenders and awards.
- USAspending Scraper: US federal contracts and awards.
- Grants.gov Scraper: US federal grant opportunities.
Google and search
- Google News Scraper: News articles by keyword, topic or country.
Changelog
- October 2026: first release.