EU & Spain Public Tenders Scraper – TED API avatar

EU & Spain Public Tenders Scraper – TED API

Pricing

Pay per usage

Go to Apify Store
EU & Spain Public Tenders Scraper – TED API

EU & Spain Public Tenders Scraper – TED API

Extract real-time public procurement tenders and government contracts across Spain and the EU (licitaciones públicas) from official TED open data with CPV filters and MCP AI integration.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Leonardo Martins Da Silva

Leonardo Martins Da Silva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

🏛️ EU & Spain Public Tenders Scraper – TED Procurement API (CPV Filters)

Apify Actor Open Data Pricing MCP Compatible

Extract, monitor, and automate real-time public tenders, government contracts, RFPs, and public procurement opportunities (licitaciones públicas) across Spain and the 27 European Union member states. Powered by the official EU Tenders Electronic Daily (TED v3) open data architecture.


🎯 Why This Scraper?

Every day, public administrations, city halls, regional ministries, and European agencies publish millions of euros in lucrative tenders for software development, IT maintenance, infrastructure, medical supplies, and consulting.

Traditional HTML scrapers break constantly due to Cloudflare firewalls, require costly residential proxies, and suffer from CAPTCHAs. This Actor eliminates those issues completely:

  • ⚡ Zero Residential Proxy Costs: Directly queries official EU high-availability open data infrastructure. 0% ban rate, 100% compliant.
  • 🔄 Incremental Monitoring Mode (onlyNew): Automatically remembers previously extracted tenders across scheduled runs (e.g. daily/hourly cron) and only delivers brand-new notices without duplicate charges.
  • 💶 Filtered by Budget Threshold: Exclude micro-contracts and focus solely on high-margin tenders (e.g., minimum €50,000 or €100,000+).
  • 🏷️ Standardized CPV Taxonomy: Filter by official Common Procurement Vocabulary (e.g., 72000000 for IT services, 45000000 for Construction, 33000000 for Medical Equipment).
  • 🔗 Direct Official Document Links: Instant direct links to the official notice HTML and PDF pliegos for rapid proposal submission.
  • 🌐 Multilingual Normalization: Automatically resolves multilingual procurement titles into Spanish, English, French, or German.

💼 Ideal Use Cases

  1. B2B Agencies & IT Consultancies: Get daily Slack/email alerts of new government software, cloud, and cybersecurity tenders in Spain and Europe.
  2. Construction & Engineering Contractors: Monitor municipal infrastructure tenders by minimum budget and province.
  3. GovTech SaaS & Data Providers: Build automated feeds, CRM integrations, or tender analytics dashboards for enterprise clients.
  4. Competitor & Market Intelligence: Track which government bodies are buying what and which vendors are winning awards.

⚙️ Input Parameters

ParameterTypeRequiredDefaultDescription
countryStringYes"ESP"3-letter ISO country code (ESP for Spain, DEU for Germany, FRA for France, ITA for Italy, or ALL).
keywordStringNo""Search keywords in tender title (e.g. "software", "ciberseguridad", "limpieza").
cpvCodeStringNo""CPV classification code (e.g. 72000000 for Computer and Related Services).
minAmountEurIntegerNo0Minimum contract value in EUR. Excludes smaller tenders below this threshold.
maxItemsIntegerYes50Maximum number of tenders to extract per run (1 to 5,000).
preferredLanguageStringNo"spa"Preferred language for tender titles ("spa", "eng", "fra", "deu").
onlyNewBooleanNofalseWhen true, skips previously seen notices from past runs (ideal for scheduled alerts).

📋 Ready-to-Copy Input Profiles

Preset 1: Spanish IT, Software & Cybersecurity Tenders (> €50,000)

{
"country": "ESP",
"keyword": "software",
"cpvCode": "72000000",
"minAmountEur": 50000,
"maxItems": 100,
"preferredLanguage": "spa",
"onlyNew": true
}

Preset 2: Pan-European Construction & Infrastructure (> €250,000)

{
"country": "ALL",
"cpvCode": "45000000",
"minAmountEur": 250000,
"maxItems": 200,
"preferredLanguage": "eng",
"onlyNew": false
}

Preset 3: Medical Supplies & Healthcare Equipment in France & Germany

{
"country": "FRA",
"cpvCode": "33000000",
"minAmountEur": 100000,
"maxItems": 100,
"preferredLanguage": "fra",
"onlyNew": true
}

📊 Sample Output Record

Each item pushed to the dataset is normalized into clean, typed JSON:

{
"noticeId": "108-2026",
"title": "España – Servicios TI: consultoría, desarrollo de software, Internet y apoyo – Proyectos de mejora tecnológica, y la gestión integral informática de la Fundación AIC.",
"buyer": "Fundación AIC Automotive Intelligence Center - Fundación AIC",
"estimatedValueEur": 748000,
"currency": "EUR",
"publicationDate": "2026-01-02",
"submissionDeadline": "2026-01-30T12:00:00+01:00",
"cpvCode": "72000000",
"country": "ESP",
"directNoticeUrl": "https://ted.europa.eu/es/notice/108-2026/html",
"officialPdfUrl": "https://ted.europa.eu/es/notice/108-2026/pdf",
"source": "EU Tenders Electronic Daily (TED) v3 Official Open Data",
"scrapedAt": "2026-09-30T16:14:26.080Z"
}

🤖 AI Agents & MCP Server Integration

This Actor is 100% compatible with the Model Context Protocol (MCP). You can connect it directly to Cursor, Claude Desktop, or Windsurf using Apify's MCP server:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/mcp-server@latest"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
}

Once connected, your AI assistant can run real-time queries like:

"Find all public software tenders published in Spain this month with budget over 100,000 € and summarize the deadlines."


💰 Pricing & Economics

  • Model: Pay-Per-Event (PPE)
  • Cost: $4.00 per 1,000 tenders extracted ($0.004 per notice).
  • Free Allowance: Apify provides $5.00 in free usage credits every month on all accounts, allowing users to extract over 1,200 tenders at zero cost before paying.
  • Net Margin: Because this Actor uses direct high-speed HTTP open data with zero proxies, platform compute cost is ~$0.15-$0.20 per 1,000 items, leaving ~75%+ net developer margin.

💻 API & Integration Code

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"country": "ESP",
"keyword": "software",
"minAmountEur": 50000,
"maxItems": 50,
"onlyNew": True,
}
run = client.actor("your-username/eu-public-tenders-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"[{item['estimatedValueEur']} €] {item['title']} | Buyer: {item['buyer']}")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
country: 'ESP',
keyword: 'software',
minAmountEur: 50000,
maxItems: 50,
onlyNew: true,
};
const run = await client.actor('your-username/eu-public-tenders-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} new public tenders.`);

All data is accessed in accordance with Directive (EU) 2019/1024 on open data and the re-use of public sector information. All notices are public domain government records intended for transparent commercial and civil re-use.