EU Tender Alerts avatar

EU Tender Alerts

Pricing

from $1.50 / 1,000 tender notice returneds

Go to Apify Store
EU Tender Alerts

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

Adrian Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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

  1. In the Apify Console. Open the actor page and click Start — the queries field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. 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"]}'
  3. 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:

queryfoundstatussearchSummarynoticeCounttruncatedmonitorStatusnoticespublicationNumbertitlebuyerNamepublicationDatedeadlineDateestimatedValueestimatedValueCurrencycountrynoticeUrlisNewfirstSeenAtscrapedAt
renewable energytrueOK<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.