VOOZH about

URL: https://apify.com/bikram07/eu-tenders-feed

⇱ EU Tenders Feed: TED Procurement API & Alerts Β· Apify


πŸ‘ EU Tenders Feed β€” TED Public Procurement Search & Daily Alerts avatar

EU Tenders Feed β€” TED Public Procurement Search & Daily Alerts

Pricing

from $1.00 / 1,000 tender records

Go to Apify Store

EU Tenders Feed β€” TED Public Procurement Search & Daily Alerts

EU tenders & public procurement data from the official TED API. Filter by CPV code, country, keyword and EUR value; get clean JSON tender records. Alert mode delivers only new tenders for scheduled daily monitoring β€” no XML parsing, no API key.

Pricing

from $1.00 / 1,000 tender records

Rating

0.0

(0)

Developer

πŸ‘ Bikram

Bikram

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

11 days ago

Last modified

Share

EU Tenders Feed β€” TED Procurement Search & Daily Alerts API (CPV, Country, Keyword, Value)

Search EU public procurement tenders from the official TED API (Tenders Electronic Daily, the EU's procurement journal at ted.europa.eu) without parsing XML or building your own integration. Filter by CPV code, buyer country, keyword, publication window and contract value, and get back clean, normalized JSON tender records ready for spreadsheets, CRMs, dashboards, BI pipelines or AI agents.

Turn on alert mode, put it on an Apify Schedule, and get a daily feed of only the tenders you haven't seen yet β€” tender alerts without a SaaS subscription.

What it does

  • Queries the official public TED Search API (POST https://api.ted.europa.eu/v3/notices/search) β€” the same data behind ted.europa.eu. No scraping, no stale mirrors, no API key required for published notices.
  • Compiles your simple filters (CPV codes, countries, keywords, date window, minimum EUR value) into a TED expert query for you.
  • Flattens TED's multilingual nested notices into one tidy record per notice with stable field names. Fields TED doesn't provide come back as null β€” never guessed.
  • In alert mode, remembers which notice IDs it already output for your exact filter combination and emits only new ones β€” built-in dedupe for scheduled monitoring.

How it works

  1. You set filters in the input (at least one of keywords, cpvCodes or countries is required).
  2. The Actor builds a TED expert query and calls the official TED Search API, paging through results up to your maxRecords limit.
  3. Each notice is normalized into a flat JSON record and written to the dataset.
  4. If alertMode is on, notices already seen for this filter combination are skipped (and not charged); only new ones are output.
  5. Export the dataset as JSON / CSV / Excel, or wire an integration (email, Slack, webhook, Make, Zapier) to push new tenders into your workflow.

Input

FieldTypeDefaultDescription
keywordsstringnoneFull-text phrase matched against the whole notice (TED FT field)
cpvCodesarraynoneCPV codes, e.g. 72000000 (IT services), 45000000 (construction works). A parent code also matches its subcategories.
countriesarraynoneBuyer country ISO codes β€” DE or DEU both accepted
publishedSincestring7dLookback window (7d, 30d) or an absolute date (2026-06-01)
maxRecordsinteger100Max records to output per run (1–5000)
alertModebooleanfalseOutput only notices not seen in previous runs with the same filters
minValueintegernoneMinimum contract value in EUR (EUR-denominated values only β€” see FAQ)

At least one of keywords, cpvCodes or countries is required.

Input example

{
"keywords":"software development",
"cpvCodes":["72000000"],
"countries":["DE","FR"],
"publishedSince":"7d",
"maxRecords":100,
"alertMode":false,
"minValue":100000
}

Output fields

Each notice becomes one dataset item with these fields:

FieldTypeDescription
noticeIdstringTED publication number, e.g. 402921-2026
titlestringNotice title (prefers the English variant when TED provides one)
buyerNamestringName of the contracting authority / buyer
buyerCountrystringBuyer's country (3-letter ISO, e.g. DEU)
cpvCodesarrayCPV classification codes on the notice
valueEurnumber / nullAwarded total, else estimated value β€” only when stated in EUR, otherwise null
publicationDatestring / nullDate the notice was published on TED (YYYY-MM-DD)
deadlineDatestring / nullEarliest tender-receipt deadline across the notice's lots; null for notice types without one
procedureTypestring / nullTED procedure type, e.g. neg-w-call
tedUrlstringDirect link to the notice on ted.europa.eu
descriptionstring / nullNotice description, truncated to 500 characters (full text on the TED page)

Output example

A real record returned by the TED API during development (June 2026):

{
"noticeId":"402921-2026",
"title":"Germany – Programming services of application software – Beschaffung einer KI-Plattform",
"buyerName":"Hamburgische Investitions- und FΓΆrderbank (IFB)",
"buyerCountry":"DEU",
"cpvCodes":["72212000"],
"valueEur":null,
"publicationDate":"2026-06-12",
"deadlineDate":null,
"procedureType":"neg-w-call",
"tedUrl":"https://ted.europa.eu/en/notice/-/detail/402921-2026",
"description":"Die IFB Hamburg mΓΆchte mit der EinfΓΌhrung einer KI-Plattform auf Basis von Large Language Models (LLM) die Potenziale dieser innovativen Technologie nutzen…"
}

Field notes:

  • noticeId is TED's publication number β€” open the notice at https://ted.europa.eu/en/notice/-/detail/<noticeId>.
  • title, buyerName and description prefer the English variant when TED provides one, otherwise the first available language.
  • valueEur is the awarded total value, or the estimated value when no award value exists β€” only when stated in EUR. Values in other currencies are not converted (no made-up exchange rates) and yield null.
  • deadlineDate is the earliest tender-receipt deadline across the notice's lots; null for notice types without one (e.g. award notices).

Use cases

  • B2B vendors & bid teams β€” monitor new government contract opportunities in your sector (by CPV) and country, and act before the deadline.
  • Sales / business development β€” feed normalized tender leads straight into a CRM or spreadsheet instead of checking ted.europa.eu by hand.
  • Market & competitive researchers β€” pull award notices to analyze who is buying what, from whom, and at what value across EU member states.
  • Data & BI engineers β€” get a stable JSON schema for procurement dashboards and ETL pipelines without writing a TED XML parser.
  • AI agents (MCP) β€” let an agent search EU tenders on demand and reason over the results.

Tender alerts: alert mode + Apify Schedules

  1. Set your filters (e.g. cpvCodes: ["72000000"], countries: ["DE"]) and alertMode: true.
  2. Create an Apify Schedule that runs the Actor daily.
  3. Each run outputs only notices that previous runs with the same filters haven't output yet β€” every run's dataset is purely "what's new since last time".
  4. Add an integration (email, Slack, webhook, Make/Zapier) on the Actor run to deliver new tenders wherever you work.

How it works under the hood: seen notice IDs are stored in a named key-value store (eu-tenders-seen-<hash>), one per filter combination β€” the hash covers keywords, cpvCodes, countries and minValue, so changing publishedSince or maxRecords won't reset your alert history, while changing the actual filters starts a fresh one. IDs are remembered for 400 days. A run that outputs zero new tenders succeeds (a normal alert outcome) and charges nothing.

Pricing β€” $1 per 1,000 tender records

This Actor uses Apify's pay-per-event model with one simple event:

EventPriceWhen it's charged
tender-record$0.001Once per tender record written to the dataset

That's $1 per 1,000 tender records. You are never charged for a record that wasn't written to the dataset: a run that delivers nothing charges nothing, and in alert mode already-seen notices are skipped for free β€” you pay only for records you actually receive. You can also set a maximum cost per run in Apify Console; the Actor stops gracefully when the limit is reached and does not mark unpushed notices as seen, so they arrive in the next run.

This is not a subscription β€” there is no monthly fee. You pay per run, only for the records that run produces.

Use from Claude, Cursor & other AI agents (MCP)

This Actor works as a tool over the Model Context Protocol. Add Apify's MCP server to your client and your agent can search EU tenders on demand:

{
"mcpServers":{
"apify":{
"url":"https://mcp.apify.com/sse?actors=bikram07/eu-tenders-feed",
"headers":{
"Authorization":"Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Then ask your agent things like: "Find IT-services tenders published in Germany this week with a value above €500k and summarize the top five" β€” the agent calls this Actor, gets normalized tender records back, and works with them directly.

You can also call it from code via the Apify API:

curl-X POST "https://api.apify.com/v2/acts/bikram07~eu-tenders-feed/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN"\
-H"Content-Type: application/json"\
-d'{"cpvCodes": ["72000000"], "countries": ["DE"], "publishedSince": "7d", "maxRecords": 50}'

What it does NOT do (limitations)

  • No currency conversion. valueEur and the minValue filter only match notices stated in EUR. Notices priced in SEK, PLN, etc. are not converted (and are excluded when minValue is set) β€” this Actor never invents exchange rates.
  • No enrichment or guessing. Fields TED doesn't return are null. The Actor normalizes TED's data; it doesn't add contacts, company data or scoring.
  • English isn't guaranteed. Text fields prefer English when TED provides it, otherwise the original language is returned.
  • Coverage matches TED. Only notices published on TED are returned (EU/EEA public procurement above EU thresholds, plus what member states choose to publish). Sub-threshold national tenders not on TED are out of scope.
  • description is truncated to 500 characters; the full text lives on the TED notice page.

Data source & honesty notes

All data comes from the official, public TED Search API operated by the Publications Office of the European Union, openly accessible for published notices (no API key required). This Actor adds filtering convenience, normalization and alert-mode dedupe on top β€” it does not modify, enrich or guess any values; missing fields are null. This Actor is not affiliated with or endorsed by the European Union or the Publications Office; TED data is reusable under the EU's open-data policy (check TED's legal notice for reuse conditions).

FAQ

Is this a subscription? No. There is no monthly fee. You pay per run under Apify's pay-per-event model β€” $1 per 1,000 tender records actually written to the dataset. A run that returns nothing costs nothing.

How does the pricing / charging work, and what about refunds? You are charged $0.001 per record the moment it is written to your dataset, and never for records that aren't written. In alert mode, already-seen notices are skipped for free. You can cap the maximum cost per run in Apify Console. Refunds for pay-per-event usage are handled under Apify's standard platform billing policy.

Does this use the official TED API? Yes. It queries the official public TED Search API (api.ted.europa.eu/v3/notices/search) β€” the same source as ted.europa.eu. No scraping and no third-party mirrors.

How do I get EU tender data via API without registering for an API key? TED's Search API is open for published notices, and this Actor handles the request format, expert-query syntax, pagination and field normalization for you. Set your filters, run, and export as JSON, CSV or Excel β€” or call the Actor through the Apify API or MCP.

What are CPV codes and which one should I use? CPV (Common Procurement Vocabulary) is the EU's procurement classification: e.g. 72000000 = IT services, 45000000 = construction works, 33600000 = pharmaceuticals. Searching a parent code also matches its subcategories on TED. The full list is on EU Vocabularies.

Why is valueEur null on some notices, and how does minValue work? Many notices simply don't state a value, and TED does not normalize currencies. valueEur is filled only when the notice states a value in EUR (awarded total preferred, otherwise the estimate). So minValue only matches notices with an EUR-denominated value at or above your threshold β€” notices priced in other currencies are excluded when the filter is set, because converting them would mean inventing exchange rates.

How fresh is the data and how often should I schedule alerts? Notices are published on TED on working days (typically by 09:00 CET). A daily schedule with publishedSince: "7d" and alertMode: true is the sweet spot: the 7-day window safely covers weekends and late indexing, while dedupe guarantees each notice still arrives only once.

Related searches this Actor answers

TED API Β· EU tenders API Β· public procurement data EU Β· tender alerts Β· TED Tenders Electronic Daily search Β· CPV code tender search Β· EU government contracts feed Β· procurement notices API Europe Β· TED scraper


Built on the official TED Search API (Publications Office of the EU). Not affiliated with the European Union.

You might also like

TED Europa Tenders Scraper

automation-lab/ted-europa-tenders-scraper

Find EU public procurement tenders from TED by keyword, country, CPV code, buyer, deadline, and value. Export clean tender leads.

πŸ‘ User avatar

Stas Persiianenko

2

TED Europa Scraper: EU Public Procurement Tenders

dltik/ted-europa-scraper

Scrape EU public procurement tenders from TED (Tenders Electronic Daily). 28 EU countries + UK + EEA. Filter by keywords, country, CPV code, deadline, value, buyer. Get buyer, deadline, contract value, winner, document URLs. For procurement intelligence, B2B public-sector sales. $5/1K tenders.

TED EU Procurement Scraper β€” Public Tenders

studio-amba/ted-eu-procurement-scraper

Scrape EU public procurement notices from TED (Tenders Electronic Daily). Search by keyword, country, or CPV code. Extract tender titles, buyers, deadlines, estimated values, and award details. Covers all EU/EEA member states.

EU TED Tenders β€” Public Procurement Notice Scraper

foxlabs/ted-tenders

Fetches structured public procurement notices from the official EU TED (Tenders Electronic Daily) API. Filter by country, CPV code, date, value, and notice type. Free, unauthenticated API; clean JSON output ready for CRM/dashboard ingestion.

8

5.0

TED EU Tenders Scraper

moving_beacon-owner1/ted-eu-tenders-scraper

Searches Tenders Electronic Daily (TED) β€” the EU procurement notices database β€” via the official v3 search API. No auth required for read-only.

2

TED EU Procurement Notices Scraper

alwaysprimedev/ted-eu-procurement-scraper

Structured EU public procurement data: tenders, contract awards, notices from ted.europa.eu β€” filter by country, CPV code, date or free text. Built on the official TED API.