EU TED Tenders — Public Procurement Notice Scraper
Pricing
from $4.00 / 1,000 results
EU TED Tenders — Public Procurement Notice Scraper
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.
Pricing
from $4.00 / 1,000 results
Rating
5.0
(1)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
What does EU TED Tenders do?
EU TED Tenders fetches structured public procurement notices from the official TED (Tenders Electronic Daily) API run by the European Union Publications Office. It outputs clean JSON rows for every notice matching your filters — country, CPV code, date range, notice type, value — ready to be loaded into a CRM, dashboard, or Slack alert.
TED is the single source of truth for public contracts published by EU member states above the EU thresholds. Every business that sells to government in the EU needs this data; this Actor turns the official but gnarly XML/JSON API into a flat dataset you can ingest in seconds. Try it from the Apify Console, schedule daily runs, hit the API, or pipe into Make/Zapier/n8n.
Why use EU TED Tenders?
- Sales pipelines — bid teams chasing public contracts get every relevant tender published in the last 24 hours, filtered to their CPV codes.
- Market intelligence — track competitor wins via contract award notices (CAN), aggregate by buyer or sector.
- Compliance & monitoring — watch buyer behaviour across member states; build alerts on procurement irregularities.
- Research — feed TED data into LLMs or BI dashboards without writing your own EU-procurement parser.
How to use EU TED Tenders
- Open the Actor's Input tab in the Apify Console.
- Either paste a native TED expert query (e.g.
publication-date>=20260101 AND buyer-country=DEU) into the TED Expert Search Query field, or fill in the structured filters (date, countries, CPV codes, notice types). - Pick your preferred output language (defaults to English).
- Click Start. The dataset will populate in real time.
- Download as JSON, CSV, or Excel from the Dataset tab.
Input
The Actor accepts either:
- A raw TED expert query string (full power of TED's query DSL), or
- Structured filters: date range, ISO-3 country codes, CPV codes, notice types.
Plus output controls: language, max results, page size.
{"publicationDateFrom": "20260420","countries": ["DEU", "FRA"],"cpvCodes": ["72000000"],"noticeTypes": ["cn"],"language": "ENG","maxResults": 500}
Output
Each dataset row represents one published notice:
{"publicationNumber": "265768-2026","publicationDate": "2026-04-20","title": "Supply of cloud infrastructure services","noticeType": "cn","procedureType": "open","buyerName": "Bundesministerium für Digitales","buyerCountry": "DEU","buyerCity": "Berlin","buyerEmail": "vergabe@bmdv.bund.de","buyerUrl": "https://www.bmdv.bund.de","totalValue": 2400000,"totalValueCurrency": "EUR","cpvCodes": ["72000000", "72200000"],"deadlineDate": "2026-05-20","description": "Multi-year framework for IaaS provision...","placeOfPerformanceCountry": "DEU","placeOfPerformanceCity": "Berlin","detailUrl": "https://ted.europa.eu/en/notice/-/detail/265768-2026","xmlUrl": "https://ted.europa.eu/en/notice/265768-2026/xml","scrapedAt": "2026-04-24T08:00:00.000Z"}
You can download the dataset in JSON, CSV, Excel, HTML, RSS, or XML formats.
Data table
| Field | Description |
|---|---|
publicationNumber | TED canonical notice ID (e.g. 265768-2026) |
publicationDate | Date the notice was published in TED |
title | Notice title in the requested language |
noticeType / noticeSubtype | TED notice classification (cn, can-standard, pin-only, ...) |
procedureType | open, restricted, negotiated, ... |
buyerName / buyerCountry / buyerCity | Contracting authority |
buyerEmail / buyerUrl | Contact channels |
totalValue / totalValueCurrency | Estimated or awarded value |
cpvCodes | Common Procurement Vocabulary classifications |
deadlineDate | Deadline for tender submission (when present) |
description | Free-text description from the lot or procedure |
placeOfPerformance* | Where the contract is to be executed |
detailUrl / xmlUrl | Links to the official TED notice page and XML |
Pricing / Cost estimation
This Actor uses pay-per-result pricing: $4 per 1,000 notices (≈ $0.004 per notice). TED's underlying API is free, so there are no third-party fees on top.
Apify's free tier includes $5/month of platform credits, which covers roughly 1,250 notices/month free of charge before you pay anything. Beyond that you only pay for what you fetch — there is no monthly minimum or seat fee.
Typical runs:
- Daily incremental ingest (one day of EU-wide notices ≈ 1,500–3,000 rows): $6–$12/month at daily cadence.
- Targeted niche (one CPV code in one country, daily): often under $1/month.
- Initial backfill (a month of EU-wide notices ≈ 50,000–80,000 rows): one-off $200–$320, then daily increments are cheap.
Tips
- Schedule daily runs with a
publication-datefilter equal to today's date for incremental ingestion. - Use
maxResultswhen exploring — TED can return tens of thousands of notices for broad queries. - Native query syntax is the most flexible; the structured filters are convenience wrappers.
- Multilingual fields —
title,description,buyerNamecome in many EU languages; the Actor picks yourlanguageand falls back to English.
FAQ
Is TED data free to use? Yes — TED notices are official EU publications under Decision (EU) 2017/1873. Standard attribution and ToS apply for commercial reuse.
Why are some fields missing? TED notices vary by type — a planning notice (PIN) won't have an awarded value; a contract award (CAN) won't have a tender deadline. Empty fields are returned as null.
Can I get notice details beyond the search API? v0.1 returns search-API fields and links to the full XML/HTML. A future version may parse the XML for full lot-level detail.
For feedback and feature requests, open an issue in the Actor's Issues tab.