Dutch Public Procurement — TenderNed Scraper, No Login Required
Under maintenancePricing
from $12.00 / 1,000 result scrapeds
Dutch Public Procurement — TenderNed Scraper, No Login Required
Under maintenanceSearch and extract Dutch public procurement tenders from TenderNed. Filter by keyword, CPV code, contract type, or date range. Returns tender name, contracting authority, deadline, procedure type, and full announcement details. No cookies, no login.
Pricing
from $12.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Dutch Public Procurement Scraper — TenderNed Tenders
Search and extract Dutch public procurement tenders from TenderNed, the Netherlands' official government procurement platform. Filter by keyword, contract type, scope, or date range. Returns tender title, contracting authority, deadline, procedure type, CPV codes, NUTS region codes, and full announcement details. No cookies, no login required.
How to scrape TenderNed data
This actor queries the official TenderNed publication API to deliver structured tender data. TenderNed is the Dutch government's mandatory publication platform — all Dutch authorities are legally required to publish their procurement tenders here. That means this actor gives you access to every public tender in the Netherlands, covering services, supplies, and works contracts across central government, municipalities, provinces, water boards, and public enterprises.
The actor fetches both the list overview and detailed publication pages, extracting CPV classification codes, NUTS region codes, legal framework info, and PDF links that are not available from the list view alone.
Who benefits from this data?
- Government contractors — Monitor new opportunities daily. Filter by your industry CPV codes and never miss a relevant tender.
- Consultancies and advisory firms — Track procurement patterns across Dutch government bodies for market intelligence.
- B2B sales teams — Identify which government bodies are buying what you sell. Build targeted prospect lists.
- Market researchers — Analyze procurement volumes, trends, and seasonal patterns across sectors.
- Compliance and legal teams — Monitor competitor contract awards and procurement procedural compliance.
Search by keyword
Enter any keyword to find relevant tenders. The actor searches across tender titles, descriptions, and contracting authority names. Use Dutch for the best results — "IT diensten", "bouw", "schoonmaak", "software", "advies", "beveiliging".
Filter by status, contract type, and scope
- Status: Open (active tenders you can bid on), closed, or all
- Contract type: Services (diensten), supplies (leveringen), or works (werken)
- Scope: EU tenders (above EU thresholds, ~EUR 215K for services) or national tenders for smaller opportunities
Date range filtering
Set publication date filters to monitor new tenders, or search historically for market research. The publishedAfter and publishedBefore fields accept YYYY-MM-DD format.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | String | ICT | Keywords to search in tender titles, descriptions, and organizations |
tenderStatus | Enum | open | Filter: open, closed, or all |
contractType | Enum | all | Filter: all, services, supplies, or works |
scope | Enum | all | Filter: all, eu, or national |
publishedAfter | String | — | Only tenders published on or after this date (YYYY-MM-DD) |
publishedBefore | String | — | Only tenders published on or before this date (YYYY-MM-DD) |
maxResults | Integer | 100 | Maximum number of tenders to return (1–10,000) |
proxyConfiguration | Object | NL residential | Apify proxy settings |
What data does this scraper extract?
| Field | Type | Description |
|---|---|---|
title | String | Tender title (aanbestedingNaam) |
referenceNumber | String | TenderNed reference number (e.g., TN-592549) |
organization | String | Contracting authority name |
status | String | Tender status (Gepubliceerd, Gesloten, etc.) |
publicationDate | String | Publication date (YYYY-MM-DD) |
deadline | String | Bid submission deadline (ISO timestamp, if set) |
estimatedValue | String | Estimated contract value (when available) |
currency | String | Always EUR |
contractType | String | Services, Supplies, or Works |
scope | String | EU or National |
procedureType | String | Open, restricted, negotiated, etc. |
publicationType | String | Announcement type (market consultation, contract notice, etc.) |
category | String | Nature of the contract |
cpvCodes | Array | CPV classification codes with descriptions and primary flag |
nutsCodes | Array | NUTS region codes with descriptions |
region | String | Human-readable region from NUTS codes |
description | String | Full tender description |
isDigital | Boolean | Whether digital submission is available |
legalFramework | String | Applicable procurement law |
url | String | Direct link to tender on TenderNed |
pdfUrl | String | PDF announcement URL |
scrapedAt | String | ISO timestamp of when the data was scraped |
Example output
{"title": "Marktverkenning ISMS-, PIMS- en risicomanagementtooling (GRC)","referenceNumber": "TN-592549","organization": "Gemeente Emmen","status": "Gepubliceerd","publicationDate": "2026-05-27","deadline": "","estimatedValue": "","currency": "EUR","contractType": "Leveringen","scope": "National","procedureType": "Marktconsultatie","publicationType": "Marktconsultatie","category": "","cpvCodes": [{"code": "48730000","description": "Beveiligingssoftware","isPrimary": true},{"code": "72200000","description": "Softwareprogrammering en -advies","isPrimary": false}],"nutsCodes": [{"code": "NL131","description": "Noord-Drenthe"}],"region": "Noord-Drenthe","description": "De gemeente Emmen organiseert een marktverkenning...","isDigital": true,"legalFramework": "Aanbestedingswet 2012","url": "https://www.tenderned.nl/aankondigingen/overzicht/426684","pdfUrl": "https://www.tenderned.nl/papi/tenderned-rs-tns/v2/publicaties/426684/pdf","scrapedAt": "2026-05-27T14:30:00.000Z"}
Tips for best results
- Daily monitoring: Run on a schedule to catch new tenders within hours of publication. Set
publishedAfterto today's date for fresh opportunities only. - CPV code targeting: After initial results, note the CPV codes relevant to your business. Use them to identify patterns — 72000000 = IT services, 45000000 = construction, 71000000 = architectural services.
- Competitor intelligence: Search by competitor names or specific service descriptions to see what contracts they are pursuing.
- Market sizing: Run without keyword filters to count total active tenders in a category, useful for business development planning.
- Combine with other sources: Pair with EU TED tenders data for full European procurement coverage.
How much does it cost to run?
The actor uses the TenderNed public API, which is free. Your only cost is Apify compute time and proxy usage.
| Search size | Estimated time | Estimated cost |
|---|---|---|
| 20 tenders | ~30 seconds | ~$0.01 |
| 100 tenders | ~3 minutes | ~$0.05 |
| 500 tenders | ~15 minutes | ~$0.20 |
| 1,000 tenders | ~30 minutes | ~$0.40 |
Each tender requires one extra API call to fetch detailed data (CPV codes, NUTS codes, PDF link), so times are higher than a simple list-only scrape.
Use as an API
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/tenderned-scraper").call(run_input={"searchQuery": "software","tenderStatus": "open","contractType": "services","maxResults": 50,})for tender in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{tender['title']} | {tender['organization']} | Deadline: {tender['deadline']}")
Limitations
- No server-side text search: The TenderNed list API does not support keyword filtering. The actor fetches pages and filters client-side by matching against title, description, and organization. For large result sets without keyword filters, the scrape is faster.
- Deadline may be empty: Not all tender types have a submission deadline (e.g., market consultations).
- Estimated value: TenderNed rarely exposes contract values in the API; this field is often empty.
- Detail fetching adds time: Each tender gets an individual API call for CPV/NUTS codes. Set
maxResultsaccordingly.
Other European procurement scrapers
- Check the Studio AMBA actor catalog for more European data scrapers.
Your feedback
Found a bug or want a feature? Open an issue on the Issues tab.