EU Public Tenders Search
Pricing
$3.00 / 1,000 tender notices
EU Public Tenders Search
Search EU public tender notices by keyword, buyer country, CPV code and publication date through the EU's public procurement-notice API. Clean, typed records with no contact persons and no award winners. No login, no scraping. Pay per record.
Pricing
$3.00 / 1,000 tender notices
Rating
0.0
(0)
Developer
The Sjöstrand Project
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What this Actor returns
Search the public procurement notices that buyers across the EU publish, by keyword, buyer country, CPV code and publication date, and get one clean, typed record per notice. Every record has the same 13 fields, and a value the notice does not have is null, never a missing key.
publication_number,notice_type,publication_date: which notice it is, what kind, and when it was publisheddeadline_date: the earliest deadline for tenders, when the notice has onebuyer_org,buyer_country,performance_nuts_code: who is buying, from which country, and where the work is donecpv_codes,notice_title,estimated_value,currency,procedure_type: what is being bought, its title, its estimated value and the procedurenotice_url: the link to the full notice on the source's website
The Actor reads the EU's public procurement-notice search API and nothing else. It does not scrape any website, and there is no login.
Who it helps
- Businesses that bid for public contracts, who want a daily or weekly list of new tenders in their sector and countries, ready for a spreadsheet or a CRM.
- Analysts and developers who want tidy tender data for market research or their own alerts, through the Apify API, without writing their own client for the source.
Quick start
- Open the Input tab and leave the defaults as they are. They search the notices published on one past day, 1 October 2026, so a first run returns up to 10 records (the default Maximum records).
- Press Start. The default run costs about $0.03: 10 records at $0.003 each, plus Apify's tiny start event (see What it costs). To try it on even less, set Maximum records to 1.
- Open the Output tab, check the records, then set your own keywords, countries, CPV codes and dates.
Input
| Field | What it does | Default |
|---|---|---|
| Keywords | Words to look for anywhere in the notice, in any language. Letters, digits and spaces only. | empty |
| Published from | Only notices published on or after this date. | 2026-10-01 |
| Published to | Only notices published on or before this date. | 2026-10-01 |
| Buyer countries | Three-letter country codes like DEU, FRA or SWE, separated by commas. | empty |
| CPV codes | 8-digit CPV codes like 45000000, separated by commas. A broad code includes the codes under it. | empty |
| Active notices only | Only notices that are still active, such as tenders still open for bids. | off |
| Language | Three-letter code for the title and buyer name, like eng, deu or fra. | eng |
| Maximum records | How many records to return at most, from 1 to 1000. | 10 |
Give at least one of a date, keywords, a country or a CPV code. Results come newest publication first.
Output
One record per notice. The record below is one the default input returned on 12 October 2026, unchanged except for the link.
{"publication_number": "677854-2026","notice_type": "cn-standard","publication_date": "2026-10-01","deadline_date": "2026-11-02","buyer_org": "Landkreis Schaumburg - Vergabestelle","buyer_country": "DEU","performance_nuts_code": "DE928","cpv_codes": ["45431100", "45431200"],"notice_title": "Germany – Floor-tiling work – Sanierung Grundschule Evesen - Fliesen- und Plattenarbeiten","estimated_value": null,"currency": null,"procedure_type": "open","notice_url": "(the notice's page on the source's website)"}
In a real record, notice_url is the full link to the notice.
What it costs
You pay for one event, Tender notice, at $0.003 per record returned. Apify also adds its standard run-start event, $0.00005 per start for an Actor run with up to 1 GB of memory; it is the platform's own event, not ours. The default run of 10 records costs about $0.03. Records the Actor leaves out (see below) are never charged.
For example, a search that returns 200 notices costs $0.60. If your Apify plan includes monthly credit, a small run draws on that credit.
If the source cannot be reached or keeps answering with errors, the run stops with a clear status message, and only the records already returned are charged.
Limits and honest notes
- No contact persons, emails or phone numbers, and no award winners. The Actor never asks the source for those fields, and it leaves out any notice whose title or other output text happens to contain an email address or a phone number.
- Titles are written by the source. A notice title is free text from the buyer's notice, as published.
- One estimate per notice.
estimated_valueis the value of the whole procurement. When a notice gives only separate values per lot, it isnull. - Up to 1000 records per run. For more, split the search by date range or country.
- Pace. The source's fair-use limit is 700 requests per minute. The Actor sends at most one request per second and waits as long as the source asks when it is busy.
- Freshness follows the source, which publishes new notices on working days. The Actor reads each notice as the source gives it at the time of your run.
Questions
Why did my run return fewer records than I asked for? Either fewer notices matched, or some were left out because they had no notice page or lacked a title, a buyer name or a publication date, or held contact details in their text. You were not charged for those.
What does the run say when something is wrong? It says what it found and what to try. "Give at least one of: a publication date, keywords, a buyer country or a CPV code" means the input was empty: add one. A message about country codes, CPV codes or dates names the field to fix and shows the right shape. "Could not be reached" or "kept answering" means the source is busy; wait a few minutes and run again.
How do I find only tenders I can still bid for?
Turn on "Active notices only", and look at deadline_date.
Which country codes and CPV codes do I use?
Countries are three-letter codes such as DEU for Germany or ESP for Spain. CPV codes are the EU's 8-digit codes for what is bought; a broad code such as 45000000 (construction work) includes the codes under it.
Can I run it on a schedule? Yes, with the Apify scheduler or the API. Set the dates to the period you want; each run is independent and charged per record returned.
Data source and AI note
Data source: the Search API of TED (Tenders Electronic Daily), the online version of the Supplement to the Official Journal of the European Union, published by the Publications Office of the European Union; the notices are reused under their licence, the Commission's reuse policy (Commission Decision 2011/833/EU), which allows commercial reuse. publication_date is the date the notice was published on TED, taken from the API's publication-date field; it is not a last-updated date, and the records have no source_updated_at field.
This tool is not affiliated with, endorsed by or sponsored by the Publications Office of the European Union or the European Commission.
This tool was built with the help of AI coding assistants.
Help
Questions, a record that looks wrong, or an idea for a field: please open an issue on the Issues tab. Thank you for the report; every one is read.