EU Tender Alerts
Pricing
from $1.50 / 1,000 tender notice returneds
EU Tender Alerts
New EU public procurement notices from TED by keyword, CPV code or country, with a true monitoring mode that only returns and bills for notices new since your last run.
Pricing
from $1.50 / 1,000 tender notice returneds
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
EU Tender Alerts: New Public Procurement Notices
Get new EU public tender notices by keyword, CPV code, or country, as soon as they're published. Search TED (Tenders Electronic Daily), the EU's own procurement notice database, by one or more keywords matched against the notice title, by CPV procurement codes, by country, or any combination. Turn on monitoring mode and run it on a schedule to get only the notices that are new since your last run, charged per notice and free on a quiet day.
TED covers EU/EEA public-sector procurement only — contracting authorities across the EU member states plus EEA/EFTA countries publishing above the EU procurement thresholds. It does not cover US federal contracts (SAM.gov) or UK government contracts, which are a different, unbuilt scope.
How to use
- In the Apify Console. Open the actor page and click Start — the
queriesfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~eu-tender-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"queries":["renewable energy"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"queries": ["renewable energy"]}
One keyword or phrase per line, matched against the notice title. Combine with CPV codes and/or countries below (optional). Leave empty to search by CPV code or country alone. Accepted formats: renewable energy, road construction, "waste management".
One combined search runs per call: queries are OR'd together and matched against the notice title;
optional cpvCodes and countries are each OR'd internally and AND'd with the keywords and with
each other. At least one of queries, cpvCodes, or countries must be set. minValueEur only
narrows the subset of notices that publish an estimated value at all — most TED notices don't, and
this filter never excludes a notice for a missing value by itself. The search run itself is free;
you're billed per notice actually returned.
Output
One row per item, for example:
| query | found | status | searchSummary | noticeCount | truncated | monitorStatus | notices | publicationNumber | title | buyerName | publicationDate | deadlineDate | estimatedValue | estimatedValueCurrency | country | noticeUrl | isNew | firstSeenAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| renewable energy | true | OK | <all notices (full list)> | <buyer / contracting authority> | <place of performance (country)> | <is this notice new?> | 1970-01-01T00:00:00.000Z |
A miss comes back as a row with "found": false and is never charged.
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
Example runs
Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.
Renewable energy tenders, last 7 days, EU-wide. The default shape.
{"queries": ["renewable energy"]}
Road construction tenders in Germany, last 30 days.
{"queries": ["road construction"],"countries": ["DE"],"sinceDays": 30}
All tenders under CPV 09300000 (electricity, heating, solar, nuclear energy) over 100,000 EUR.
{"cpvCodes": ["09300000"],"minValueEur": 100000,"sinceDays": 30}
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~eu-tender-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"queries":["renewable energy"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~eu-tender-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"queries":["renewable energy"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~eu-tender-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"queries":["{{search}}"]}, mapping the row's search into the queries array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "eu tender alerts: new procurement notices by keyword" — the agent will find and run this actor.