EU National Procurement Portals Scraper — 8 Countries
BUSINESSOTHER
EU National Procurement Portals Scraper — 8 Countries
Scrape procurement notices from national portals across 8 countries: France (BOAMP), UK (Contracts Finder), Spain (PCSP), Netherlands (TenderNed), Belgium (e-Procurement), Italy (ANAC), Poland (ezamowienia), and Germany (Evergabe).
Captures sub-threshold contracts that TED/OJEU misses. Returns CPV codes, estimated values, deadlines, authority data, and award-winner details.
What you get
Each record covers a single procurement notice:
| Field | Description |
|---|---|
country |
ISO-2 code (FR, UK, ES, NL, BE, IT, PL, DE) |
source_portal |
Name of the national portal |
notice_id |
Portal-specific notice identifier |
notice_type |
contract_notice, award_notice, prior_info, or modification |
cpv_codes |
Common Procurement Vocabulary codes, comma-separated |
title |
Notice title |
description |
Notice description (up to 500 chars) |
publication_date |
ISO-8601 publication date |
submission_deadline |
ISO-8601 deadline for submissions |
estimated_value_eur |
Estimated contract value in EUR |
currency |
Original currency of the value |
contract_duration |
Contract duration (where available) |
awarding_authority_name |
Contracting authority name |
awarding_authority_country |
Authority country |
awarding_authority_type |
Authority type (ministry, municipality, etc.) |
award_winner_name |
Awarded supplier (award notices only) |
award_winner_country |
Supplier country |
award_value_eur |
Final awarded value in EUR |
num_bidders |
Number of bids received |
procedure_type |
Procurement procedure (open, restricted, negotiated, etc.) |
eu_funded |
Whether EU cohesion/structural funds are involved |
sustainability_criteria |
Green/social procurement criteria |
documents_url |
URL to tender documents |
cross_ref_ted_oj_id |
TED/OJEU reference ID (above-threshold notices) |
source_url |
Direct link to the notice |
Supported portals
| Code | Country | Portal | Data quality |
|---|---|---|---|
| FR | France | BOAMP (ODS API v2.1) | Full — JSON, paginated |
| UK | United Kingdom | UK Contracts Finder | Full — REST/JSON |
| ES | Spain | PCSP Atom feed | Partial — title/date/link only |
| NL | Netherlands | TenderNed | Best-effort |
| BE | Belgium | Belgian e-Procurement | Best-effort |
| IT | Italy | ANAC open data | Best-effort |
| PL | Poland | ezamowienia | Best-effort |
| DE | Germany | Evergabe | No public API — skipped |
Input
{
"countries": ["FR", "UK"],
"mode": "recent_notices",
"lookbackDays": 7,
"maxItems": 100
}
Fields
| Field | Type | Default | Description |
|---|---|---|---|
countries |
array | required | ISO-2 country codes to crawl |
mode |
string | required | Query mode (see below) |
lookbackDays |
integer | 7 | Days to look back (for recent_notices mode) |
dateFrom |
string | — | Start date YYYY-MM-DD (for by_date_range mode) |
dateTo |
string | today | End date YYYY-MM-DD (for by_date_range mode) |
query |
string | — | Search keyword (for by_keyword mode) |
cpvCodes |
array | — | CPV codes to filter by |
noticeTypes |
array | all | Filter by notice type |
minValueEur |
integer | 0 | Minimum estimated value in EUR |
maxItems |
integer | 10 | Maximum records across all portals |
Modes
| Mode | Description |
|---|---|
recent_notices |
Notices published in the last N days |
by_keyword |
Full-text keyword search |
by_cpv_code |
Filter by CPV codes |
award_notices_only |
Only contract award notices |
by_date_range |
Notices within a specific date range |
Examples
Recent notices from France and UK (last 3 days)
{
"countries": ["FR", "UK"],
"mode": "recent_notices",
"lookbackDays": 3,
"maxItems": 50
}
Keyword search across multiple countries
{
"countries": ["FR", "DE", "IT"],
"mode": "by_keyword",
"query": "software development",
"maxItems": 100
}
Award notices from Spain and Belgium
{
"countries": ["ES", "BE"],
"mode": "award_notices_only",
"maxItems": 50
}
All IT contracts above EUR 100k in a date range
{
"countries": ["IT"],
"mode": "by_date_range",
"dateFrom": "2026-01-01",
"dateTo": "2026-03-31",
"minValueEur": 100000,
"maxItems": 500
}
Notes
- Germany (DE) has no accessible public procurement API and returns no records. Include DE only if you need results from the other portals in the same run.
- Spain (ES) data comes from a single Atom/XML feed and contains only title, publication date, and source URL. Full tender details require visiting the linked page.
- Best-effort portals (NL, BE, IT, PL) reflect the field structure of each portal's open-data API. Field availability varies by portal.
- The actor targets nationally-published notices. Notices published directly to TED/OJEU above EU thresholds may also appear if the national portal carries them.
- Set
maxItemsto a reasonable value. Default run memory is 1 GB with a 4-hour timeout.