Dutch Public Procurement — TenderNed Scraper, No Login Required avatar

Dutch Public Procurement — TenderNed Scraper, No Login Required

Under maintenance

Pricing

from $12.00 / 1,000 result scrapeds

Go to Apify Store
Dutch Public Procurement — TenderNed Scraper, No Login Required

Dutch Public Procurement — TenderNed Scraper, No Login Required

Under maintenance

Search 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

Studio Amba

Maintained by Community

Actor 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

ParameterTypeDefaultDescription
searchQueryStringICTKeywords to search in tender titles, descriptions, and organizations
tenderStatusEnumopenFilter: open, closed, or all
contractTypeEnumallFilter: all, services, supplies, or works
scopeEnumallFilter: all, eu, or national
publishedAfterStringOnly tenders published on or after this date (YYYY-MM-DD)
publishedBeforeStringOnly tenders published on or before this date (YYYY-MM-DD)
maxResultsInteger100Maximum number of tenders to return (1–10,000)
proxyConfigurationObjectNL residentialApify proxy settings

What data does this scraper extract?

FieldTypeDescription
titleStringTender title (aanbestedingNaam)
referenceNumberStringTenderNed reference number (e.g., TN-592549)
organizationStringContracting authority name
statusStringTender status (Gepubliceerd, Gesloten, etc.)
publicationDateStringPublication date (YYYY-MM-DD)
deadlineStringBid submission deadline (ISO timestamp, if set)
estimatedValueStringEstimated contract value (when available)
currencyStringAlways EUR
contractTypeStringServices, Supplies, or Works
scopeStringEU or National
procedureTypeStringOpen, restricted, negotiated, etc.
publicationTypeStringAnnouncement type (market consultation, contract notice, etc.)
categoryStringNature of the contract
cpvCodesArrayCPV classification codes with descriptions and primary flag
nutsCodesArrayNUTS region codes with descriptions
regionStringHuman-readable region from NUTS codes
descriptionStringFull tender description
isDigitalBooleanWhether digital submission is available
legalFrameworkStringApplicable procurement law
urlStringDirect link to tender on TenderNed
pdfUrlStringPDF announcement URL
scrapedAtStringISO 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 publishedAfter to 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 sizeEstimated timeEstimated 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 ApifyClient
client = 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 maxResults accordingly.

Other European procurement scrapers

Your feedback

Found a bug or want a feature? Open an issue on the Issues tab.