TED EU Tenders Scraper: Public Procurement Notices by CPV avatar

TED EU Tenders Scraper: Public Procurement Notices by CPV

Pricing

from $4.00 / 1,000 tender notices

Go to Apify Store
TED EU Tenders Scraper: Public Procurement Notices by CPV

TED EU Tenders Scraper: Public Procurement Notices by CPV

Search EU public procurement notices on TED by country, CPV code, keyword, stage and date. Official TED API, clean JSON with buyer, value, deadline, CPV and winners. No scraping, no proxies.

Pricing

from $4.00 / 1,000 tender notices

Rating

0.0

(0)

Developer

MB AISolution

MB AISolution

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

TED EU Tenders Scraper: Public Procurement Notices by CPV, Country & Keyword

Search EU public procurement notices by country, CPV code, keyword, stage and date - and get clean, flat JSON. The Actor uses the official TED API (Tenders Electronic Daily, Publications Office of the European Union): no scraping, no proxies, no API key. Each result is one notice with title, buyer, CPV codes, estimated or awarded value, submission deadline, procedure type, winners (organisations only) and direct links to TED. Built for bid managers, consultants, B2B sales teams, market analysts and AI agents.

What you can do

  • Find open tenders: noticeStage = competition + onlyOpenForBids = true returns calls for tender you can still bid on.
  • Track awards and competitors: noticeStage = result shows who won what, for which value.
  • Monitor a market: schedule a daily run for your CPV codes and countries and send new notices to Slack, email or your CRM.
  • Feed AI agents / RAG: structured notices with stable field names and links to the XML/PDF.

Input

{
"countries": ["LT", "LV", "EE"],
"cpvCodes": ["72", "48"],
"keywords": ["software"],
"noticeStage": "competition",
"publishedFrom": "2026-09-01",
"onlyOpenForBids": true,
"language": "eng",
"maxItems": 100
}
FieldDescription
countriesBuyer country, ISO-2 or ISO-3 (LT, LTU). Empty = all.
cpvCodesCPV codes or prefixes (2-8 digits). 72 = all IT services. Any match.
keywordsFull-text search, any keyword matches.
noticeStageany, competition (contract notices), result (award notices), planning (prior information).
publishedFrom / publishedToYYYY-MM-DD. Default start: 30 days ago.
onlyOpenForBidsOnly notices with a submission deadline today or later.
languagePreferred 3-letter language for texts (eng, lit, lav, deu...). Falls back to English, then original language.
maxItemsMax notices (newest first). Each is one billed result.

At least one filter is required.

Output

{
"recordType": "tender_notice",
"noticeId": "675226-2026",
"url": "https://ted.europa.eu/en/notice/675226-2026/html",
"pdfUrl": "https://ted.europa.eu/en/notice/675226-2026/pdf",
"xmlUrl": "https://ted.europa.eu/en/notice/675226-2026/xml",
"publicationDate": "2026-10-01",
"noticeType": "cn-standard",
"noticeStage": "competition",
"title": "Lithuania – Data transmission services – Duomenų perdavimo paslaugos",
"lotTitles": ["Duomenų perdavimo paslaugos"],
"buyers": ["Valstybės įmonė Valstybinių miškų urėdija (PV)"],
"buyerCities": ["Kaunas"],
"buyerCountries": ["LTU"],
"cpvCodes": ["72318000"],
"contractNature": ["services"],
"procedureType": "open",
"estimatedValue": { "amount": 354000, "currency": "EUR", "lotCount": 1 },
"awardedValue": null,
"submissionDeadline": "2026-10-22",
"openForBids": true,
"winners": [],
"winnersWithheld": 0,
"placeOfPerformance": ["LTU"],
"legalBasis": ["32014L0024"],
"source": "TED - Tenders Electronic Daily (Publications Office of the EU), https://ted.europa.eu",
"scrapedAt": "2026-10-01T19:32:22.030Z"
}

Use the dataset views Tenders, Awards and Errors in Apify Console. API-level problems (invalid input, TED outage) end the run with a clear message or a free error record.

How much does it cost?

Pay per event: 0.004 USD per notice (4.00 USD per 1,000) plus a start fee of 0.00005 USD per run. error records are free. Platform usage is included in the event price.

ScenarioNoticesApprox. cost
Test run (maxItems 5)50.02 USD
Daily alert; if your filters return 20 new notices a day20 per run0.08 USD/day, about 2.40 USD/month
Market snapshot: all IT-services (CPV 72) notices for 3 countries, 500 notices5002.00 USD
Research export5,00020.00 USD
One run with default settings (maxItems 50)max 50max 0.20 USD

Cost control: maxItems is a hard cap on billed notices per run; the Actor also stops at your run's maximum cost per run setting. Narrow with countries, cpvCodes, publishedFrom and onlyOpenForBids to pay only for relevant notices.

Why this Actor (vs. alternatives)

Other Store Actors also read TED (for example foxlabs/ted-tenders, memo23/ted-tenders-scraper, dltik/ted-europa-scraper). This one focuses on: official TED API only (no scraping or proxies), a notice-stage filter (open calls vs awards vs planning), an onlyOpenForBids switch, preferred-language texts, and winner names limited to organisations (names that may belong to private individuals are withheld). Check the Store pages for each Actor's current price and fields. (Based on public Store listings, 2026-10-02.)

Use it from n8n, Make, code and AI agents

  • n8n / Make: schedule "Run Actor" daily with publishedFrom set to yesterday (expression), then send each item to Slack / Google Sheets / your CRM.
  • API:
curl -X POST "https://api.apify.com/v2/acts/ai_solution~ted-eu-tenders-search/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"countries":["LT"],"cpvCodes":["72"],"noticeStage":"competition","onlyOpenForBids":true,"maxItems":20}'
  • MCP / AI agents: available via the Apify MCP server (https://mcp.apify.com, tool ai_solution/ted-eu-tenders-search). Fully described input schema and stable output fields let an agent answer "which IT tenders are open in the Baltics?" in one call.

Scheduling and webhooks

  1. In Apify Console open Schedules, create e.g. 0 7 * * * (daily 07:00 UTC) and add this Actor with your filters (countries, cpvCodes, noticeStage, onlyOpenForBids).
  2. Add a webhook for ACTOR.RUN.SUCCEEDED (Actor Integrations tab) to your endpoint or an n8n/Make Webhook node; the payload contains resource.defaultDatasetId.
  3. Read GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?token=... and forward new noticeIds to Slack, email or your CRM. A schedule uses a fixed input, so for "since yesterday" set publishedFrom dynamically (n8n expression or API) - otherwise the default window is the last 30 days.

Changelog

  • 1.0.4 - Lower price: 0.004 USD per result (was 0.006 USD). No other changes.
  • 1.0.3 - Clearer README (cost examples, comparison, scheduling), new Store title and description. No changes to input, output fields, behaviour or pricing.
  • 1.0.2 - Output schema (dataset views in the Output tab).
  • 1.0.0 - First release.

Support / Issues

Found a bug or need another field? Open a ticket in this Actor's Issues tab in Apify Console.

Data source, license and attribution

Data comes from TED, the official EU procurement journal, through its public search API. According to the TED legal notice, procurement notices can be freely reused, for commercial and non-commercial purposes; please keep the source reference (source field) when you republish. This Actor is not affiliated with or endorsed by the European Union.

Limitations and privacy

  • Values are as published by buyers (estimatedValue is the sum of lot estimates when all lots use one currency, otherwise null). Many notices omit values.
  • Notices are returned one per notice, not one per lot; lot titles are listed in lotTitles.
  • Winners: only names that look like organisations (company-form markers such as UAB, SIA, GmbH, S.A., Sp. z o.o.) are returned. Names that may belong to private individuals (sole traders) are withheld and only counted in winnersWithheld. Contact persons, emails and phone numbers are never requested.
  • National procurement portals publish more tenders than TED; TED covers notices above EU thresholds and those published voluntarily.
  • Data freshness is that of TED (new notices appear daily, with a short publication delay).