TED Europa Tenders Scraper
Pricing
Pay per event + usage
TED Europa Tenders Scraper
Find EU public procurement tenders from TED by keyword, country, CPV code, buyer, deadline, and value. Export clean tender leads.
Pricing
Pay per event + usage
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract public procurement opportunities from TED (Tenders Electronic Daily), the official EU public procurement portal. Search by keyword, buyer, country, CPV code, publication date, and deadline, then export clean tender records to JSON, CSV, Excel, or your data pipeline.
What does TED Europa Tenders Scraper do?
TED Europa Tenders Scraper queries the public TED notices API and saves structured tender notice data.
It helps you collect:
- 🔎 Tender publication numbers
- 🏛️ Buyer and public authority names
- 🧾 Tender titles and notice text matches
- 📅 Submission deadlines when available
- 💶 Estimated contract values when available
- 🏷️ CPV procurement category codes
- 🌍 Country/location indicators
- 🔗 Direct TED HTML, PDF, and XML links
Who is it for?
This scraper is built for procurement and public-sector sales teams that need repeatable EU tender monitoring.
Typical users include:
- B2G sales teams tracking opportunities in target countries
- Bid managers watching deadline-driven tender pipelines
- Market-intelligence analysts measuring public-sector demand
- Consultants monitoring buyer activity and CPV categories
- Agencies building lead lists from public procurement notices
- Data teams feeding tender alerts into CRMs or warehouses
Why use it?
TED is high-value but manual searching is slow. This Actor turns repeat searches into structured exports that can be scheduled, filtered, and integrated.
Benefits:
- ✅ API-first collection from a public EU source
- ✅ No browser automation required for the main extraction
- ✅ No login or private token required
- ✅ Works well for scheduled searches
- ✅ Exports to Apify datasets, API, webhooks, and integrations
What data can you extract?
| Field | Description |
|---|---|
publicationNumber | TED publication number, e.g. 399019-2026 |
noticeTitle | Localized notice title when present |
buyerName | Buyer or public authority name |
deadlineDate | Tender/deadline date returned by TED |
estimatedValue | Numeric estimated value when available |
estimatedValueCurrency | Currency text when available |
cpvCodes | CPV category codes |
countryCodes | Country/location codes returned by TED |
tedUrl | Direct TED HTML notice URL |
pdfUrl | TED PDF URL when available |
xmlUrl | TED XML URL when available |
sourceApiUrl | Public TED API endpoint used by the Actor |
How much does it cost to scrape TED Europa tenders?
This Actor uses pay-per-event pricing: a small run-start event plus a per-tender result event.
Configured pricing:
| Event | When charged | Price |
|---|---|---|
| Run start | Once per Actor run | $0.005 |
| Tender scraped — FREE tier | Per tender notice saved | $0.000115 |
| Tender scraped — BRONZE tier | Per tender notice saved | $0.000100 |
| Tender scraped — SILVER tier | Per tender notice saved | $0.000078 |
| Tender scraped — GOLD tier | Per tender notice saved | $0.000060 |
| Tender scraped — PLATINUM tier | Per tender notice saved | $0.000040 |
| Tender scraped — DIAMOND tier | Per tender notice saved | $0.000028 |
Example cost formula before Apify platform credits or plan-specific discounts:
| Saved tender notices | FREE tier estimate | BRONZE tier estimate |
|---|---|---|
| 25 | 0.005 start + 25 × 0.000115 = 0.007875 USD | 0.005 start + 25 × 0.000100 = 0.007500 USD |
| 100 | 0.005 start + 100 × 0.000115 = 0.016500 USD | 0.005 start + 100 × 0.000100 = 0.015000 USD |
| 1,000 | 0.005 start + 1,000 × 0.000115 = 0.120000 USD | 0.005 start + 1,000 × 0.000100 = 0.105000 USD |
For most users, the cost scales with the number of tender notices saved. Small test searches can be run cheaply by setting a low maxItems value. With Apify's free monthly platform credits, typical small checks of 25-100 tender notices should fit comfortably inside the free allowance unless you run many searches or combine them with other paid Actor usage.
Quick start
- Open the Actor on Apify.
- Enter one or more keywords such as
software,construction, ormedical equipment. - Optionally add country codes such as
DEU,FRA, orESP. - Optionally add CPV codes such as
48000000. - Set
maxItemsto the number of tenders you want. - Run the Actor.
- Export results from the dataset.
Input options
Keywords
Use keywords for simple full-text searches. Multiple keywords are joined with OR logic inside the generated TED query.
Example:
{"keywords": ["software", "cloud services"],"maxItems": 25}
Countries
Use TED country codes, for example:
DEUGermanyFRAFranceESPSpainITAItalyNLDNetherlandsPOLPoland
CPV codes
CPV codes target procurement categories. For example, 48000000 is commonly used for software package and information systems.
Buyer name
Use buyerName to find tenders where the public buyer/authority matches a text fragment.
Dates
Use:
publicationDateFromfor notices published on or after a datedeadlineDateFromfor notices with a deadline on or after a date
Dates must use YYYY-MM-DD format.
Expert query mode
Advanced users can pass expertQuery to use TED expert search syntax directly. When expertQuery is set, it overrides the generated keyword/country/CPV/date filters.
Example:
{"expertQuery": "FT ~ \"software\" AND CY = \"DEU\" SORT BY PD DESC","maxItems": 50}
Example input
{"keywords": ["software"],"countries": ["DEU"],"sortBy": "publication-date-desc","language": "eng","maxItems": 25,"pageSize": 50,"includeRawNotice": false}
Example output
{"publicationNumber": "399019-2026","noticeTitle": "Software services and related services","buyerName": "Example public authority","deadlineDate": "2026-07-15","estimatedValue": 250000,"estimatedValueCurrency": "EUR","cpvCodes": ["48000000"],"countryCodes": ["DEU"],"tedUrl": "https://ted.europa.eu/en/notice/399019-2026/html","pdfUrl": "https://ted.europa.eu/en/notice/399019-2026/pdf","xmlUrl": "https://ted.europa.eu/en/notice/399019-2026/xml","sourceApiUrl": "https://api.ted.europa.eu/v3/notices/search"}
Tips for better results
- Start with broad keywords, then narrow with countries or CPV codes.
- Use
publicationDateFromfor fresh market monitoring. - Use
deadlineDateFromfor bid pipeline searches. - Keep
maxItemslow while testing a new query. - Use
expertQueryonly when you know TED expert syntax.
Integrations
You can connect tender data to:
- CRM lead queues for public-sector sales
- Slack or email alerts for bid teams
- Google Sheets for weekly tender reviews
- BI dashboards for market intelligence
- Data warehouses for procurement analytics
- MCP-enabled agent workflows for natural-language tender research
Scheduling workflows
Schedule the Actor daily or weekly to watch new TED notices.
A common workflow:
- Run one Actor task per target country or CPV group.
- Use
publicationDateFromor a rolling expert query. - Send new dataset items to a webhook.
- Deduplicate by
publicationNumberin your system. - Route matching opportunities to the right sales owner.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/ted-europa-tenders-scraper').call({keywords: ['software'],countries: ['DEU'],maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('automation-lab/ted-europa-tenders-scraper').call(run_input={'keywords': ['software'],'countries': ['DEU'],'maxItems': 25,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~ted-europa-tenders-scraper/runs?token=MY-APIFY-TOKEN' \-H 'Content-Type: application/json' \-d '{"keywords":["software"],"countries":["DEU"],"maxItems":25}'
MCP usage
Use the Apify MCP server to run this Actor from AI tools.
MCP endpoint:
https://mcp.apify.com/?tools=automation-lab/ted-europa-tenders-scraper
Claude Code setup:
$claude mcp add apify-ted-tenders https://mcp.apify.com/?tools=automation-lab/ted-europa-tenders-scraper
Claude Desktop JSON configuration:
{"mcpServers": {"apify-ted-tenders": {"url": "https://mcp.apify.com/?tools=automation-lab/ted-europa-tenders-scraper"}}}
Example prompts:
- “Find recent German software tenders on TED and summarize the buyers.”
- “Search TED for medical equipment tenders in France and list deadlines.”
- “Run the TED Europa Tenders Scraper for CPV 48000000 and export top results.”
Data quality notes
TED notices vary by notice type, country, buyer, and publication year. Some notices do not include all fields.
For example:
- Estimated value may be missing.
- Deadline may be missing for some historical or award notices.
- CPV codes may be nested or unavailable in certain records.
- Localized titles can differ across languages.
FAQ
Can I scrape TED tenders without an account?
Yes. The Actor uses the public TED notices API and does not require a TED login for the supported search/export workflow.
Does it download every tender attachment?
No. The Actor returns TED HTML, PDF, and XML links. Full attachment parsing is intentionally outside the MVP to keep runs fast and inexpensive.
Troubleshooting
Why did I get no results?
Your filters may be too narrow. Try removing CPV or country filters, reducing date constraints, or using a broader keyword.
Why is a value or deadline empty?
TED does not provide every field for every notice. Empty fields usually mean the source notice did not include that value in the selected API fields.
Why did my expert query fail?
TED expert syntax is strict. Test a simpler query such as FT ~ "software" first, then add filters one by one.
Legality and compliance
This Actor extracts publicly available procurement notice data from TED. You are responsible for using the data in compliance with applicable laws, platform terms, and your organization’s procurement policies.
Related scrapers
Explore related Automation Lab actors:
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/company-info-scraper
- https://apify.com/automation-lab/linkedin-company-scraper
- https://apify.com/automation-lab/yellow-pages-scraper
Limits
The Actor is designed for structured TED notice search, not full attachment parsing. It returns direct TED document links so you can fetch PDFs/XML separately if needed.
Support
If a query that works on the TED website fails in this Actor, include your input JSON and the TED query you expected so the issue can be reproduced quickly.