EU Tenders (TED) Scraper — Public Procurement Notices
Pricing
from $1.00 / 1,000 tender notices
EU Tenders (TED) Scraper — Public Procurement Notices
Scrape EU public procurement tenders from TED (Tenders Electronic Daily). Filter by CPV code, country, notice type, keywords and date — get buyer, title, value, currency, CPV, deadline, country and notice/PDF/XML links as clean JSON/CSV. One row per notice. Official open API, no browser.
Pricing
from $1.00 / 1,000 tender notices
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
12
Monthly active users
2 hours ago
Last modified
Categories
Share

Pull EU public-procurement tenders from TED (Tenders Electronic Daily) — the official EU journal of contract notices and awards. Filter by CPV code, country, keyword, notice type and date, and get one clean row per notice: buyer, title, value, currency, CPV, deadline, country and links to the notice, PDF and XML. Runs on TED's official open API — no key, no browser.
Why use this scraper
- The official source — reads TED's own v3 API (
api.ted.europa.eu), so the data is complete and authoritative across all EU member states. - Powerful filtering — CPV product/service codes, buyer country, full-text keywords, notice type, and publication date range — or paste a raw TED expert query for total control.
- Drains the full result set — token-based pagination pages past the web UI's limits; set
maxItems: 0to pull everything that matches. - Clean, English-first output — multilingual titles/buyers resolved to English where available, one row per notice, JSON or CSV.
- No key, no browser, no anti-bot — plain HTTP against an open government API. Fast and cheap.
Supported inputs
| Filter | Example |
|---|---|
| CPV codes | 72000000 (IT services), 45000000 (construction) |
| Buyer country (ISO-3) | DEU, FRA, POL, ESP |
| Keywords (full-text) | cloud hosting |
| Notice type | cn-standard (call for tenders), can-standard (award) |
| Date range | publishedAfter: 2026-01-01 |
| Expert query | classification-cpv=72000000 AND buyer-country=DEU |
Use cases
- Bid discovery — find live tenders in your sector/country to bid on.
- Competitive intelligence — track contract awards (who won, how much) in a market.
- Lead generation — build a list of public-sector buyers by category and geography.
- Market sizing — aggregate tender values by CPV, country or time.
How it works

- Your filters are composed into a TED expert query (or your raw query is used as-is).
- The actor calls TED's official
/v3/notices/searchAPI and pages through results with token pagination. - Each notice is mapped to a flat, English-first row and pushed to the dataset.
Input configuration
| Field | Description |
|---|---|
cpvCodes | CPV category codes to match (OR'd together). |
countries | Buyer countries, ISO-3166 alpha-3 (OR'd). |
keywords | Full-text search across notice content. |
noticeTypes | TED notice types (e.g. cn-standard, can-standard). |
publishedAfter / publishedBefore | Publication date bounds (YYYY-MM-DD). |
expertQuery | Raw TED expert query — overrides all the filters above. |
maxItems | Max notices per run (0 = unlimited). |
flatten | Flatten nested fields for CSV/Excel. Default on. |
Output — key fields
| Field | Description |
|---|---|
publicationNumber | TED notice id (e.g. 161-2026). |
title | Notice title (English where available). |
noticeType, formType, contractNature | Notice classification (tender vs award; supplies/services/works). |
buyerName, buyerCountry | Contracting authority and its country. |
publicationDate, deadlineDate | Published date and tender-submission deadline. |
totalValue, currency | Contract value and currency. |
cpvCodes | CPV category codes on the notice. |
placeOfPerformance | Where the contract is performed. |
noticeUrl, pdfUrl, xmlUrl, htmlUrl | Links to the full notice in each format. |
Output sample
{"portal": "ted","type": "tender-notice","publicationNumber": "161-2026","title": "Germany – IT services: consulting, software development, Internet and support","noticeType": "can-standard","buyerName": "Bundesagentur für Arbeit (BA)","buyerCountry": "DEU","publicationDate": "2026-01-02+01:00","totalValue": null,"currency": "EUR","cpvCodes": ["72000000"],"contractNature": "services","noticeUrl": "https://ted.europa.eu/en/notice/-/detail/161-2026","pdfUrl": "https://ted.europa.eu/en/notice/161-2026/pdf"}
🤖 For AI Agents & LLM Apps
Purpose: Query the official EU public-procurement register (TED) and return structured tender notices. No key, no browser.
Minimal input (tested):
{ "cpvCodes": ["72000000"], "countries": ["DEU"], "publishedAfter": "2026-01-01", "maxItems": 50 }
Output fields (flat): publicationNumber, title, noticeType, formType, buyerName, buyerCountry, publicationDate, deadlineDate, totalValue, currency, cpvCodes[], contractNature, placeOfPerformance[], noticeUrl, pdfUrl, xmlUrl, htmlUrl.
Behaviors agents should know:
- Filters (
cpvCodes,countries,noticeTypes,keywords, date bounds) are AND-combined; multiple values within one filter are OR'd.expertQueryoverrides them with raw TED syntax. noticeTypedistinguishes calls for tenders (cn-standard) from awards (can-standard).- Multilingual titles/buyers are resolved to English when available.
- Billing is per notice row plus one
apify-actor-startper run. Cap withmaxItems.
Support
Found a bug or want an extra TED field surfaced? Open an issue on the actor's Issues tab.
⚠️ Disclaimer
This actor reads publicly available data from the European Union's official TED open API. TED data is EU public-sector information; use it in compliance with the EU's reuse terms and applicable law. You are responsible for how you use the data.
SEO Keywords
TED scraper, EU tenders scraper, Tenders Electronic Daily, public procurement API, EU procurement data, contract notices scraper, contract award scraper, CPV code search, government tenders, bid discovery, tender leads, ted.europa.eu API, EU public sector data, JSON CSV tenders, Apify TED.