← APIs / TenderNed
Verified

TenderNed

Apiosk Basicsby Apiosk Basics · General

The Dutch national public procurement platform. Every tender notice published by the Dutch state, provinces, municipalities, water boards, hospitals, universities and housing corporations — around 145,000 notices and counting. Search by keyword, CPV code, procedure type, contract type (works, supplies, services), publication date or closing date; open any notice for its full detail, its attached documents and its official PDF; or follow the live feed of what was published today. Data is published by PIANOo under CC-0.

dataapi
Price per request
$0.03
About

TenderNed is where Dutch contracting authorities are legally required to publish their tenders, so it is the single authoritative feed of Dutch public-sector buying intent. `publicaties` is the flagship resource: search the whole archive with `search` (free text), `cpvCodes` (the EU Common Procurement Vocabulary, with check digit — e.g. 85000000-9 for health and social work), `procedure` (OPE openbaar, NOP niet-openbaar, OH open house, and nine more), `typeOpdracht` (W werken, L leveringen, D diensten), and date windows on either publication or closing (`publicatieDatumVanaf`/`publicatieDatumTot`, `sluitingsDatumVanaf`/`sluitingsDatumTot`, or the `publicatieDatumPreset` shorthands AF7 and AF30). Append a publicatieId to the same path for that notice's full record — awarding authority, description, CPV and NUTS codes, procedure, legal framework, start and completion dates, closing date, whether it is European or national, whether it was awarded or terminated early — and append /documenten or /pdf for the tender documents themselves. `nutscodes` resolves the NUTS region codes those notices carry down to the municipalities they cover. `rss/laatste-publicatie.rss` is an Atom feed of the most recent publications, for an agent that wants to watch rather than search. Upstream is free and unauthenticated; Apiosk meters and charges per call so an agent needs no TenderNed integration of its own.

Base URL
https://gateway.apiosk.com/tenderned
Technical Specs
Auth Methodnone
Response FormatJSON
Endpoints3
Endpoints
MethodPathDescriptionCost
GET /rss/laatste-publicatie.rss The most recent TenderNed publications as an Atom feed — title, awarding authority, publication date and a link to each notice. The way to watch for new Dutch tenders without re-running a search. Returns application/atom+xml, not JSON.
$0.03 default
View details
GET /v2/nutscodes The NUTS region code tree used by every notice's nutsCodes field, from NL (Nederland) down through the four landsdelen and twelve provinces to the COROP regions — each leaf listing the municipalities it covers. What turns a code like NL112 in a notice into "Delfzijl en omgeving: Appingedam, Delfzijl, Loppersum".
$0.02 default
View details
GET /v2/publicaties Search Dutch public tender notices, or look one up in full. Search the whole archive (~145,000 notices) with any combination of search (free text over title, buyer and description), cpvCodes, procedure, typeOpdracht, and a window on either the publication date or the closing date. Supply publicatieId instead to fetch that one notice's complete record: awarding authority, full description, CPV and NUTS codes, procedure and legal framework, start/completion dates, closing date, national or European, and whether it was awarded or terminated early. A caller building the raw request path directly (not through structured parameters) can also append further segments after the publicatieId at the same price: /documenten for the list of tender documents with their download links, and /pdf for the official publication PDF. Results are paged with page/size and come back with totalElements and totalPages.
$0.05 default
View details
Endpoint documentation
GET/rss/laatste-publicatie.rss
$0.03 default
Description

The most recent TenderNed publications as an Atom feed — title, awarding authority, publication date and a link to each notice. The way to watch for new Dutch tenders without re-running a search. Returns application/atom+xml, not JSON.

Pricing
$0.03 default
Parameters
{}
GET/v2/nutscodes
$0.02 default
Description

The NUTS region code tree used by every notice's nutsCodes field, from NL (Nederland) down through the four landsdelen and twelve provinces to the COROP regions — each leaf listing the municipalities it covers. What turns a code like NL112 in a notice into "Delfzijl en omgeving: Appingedam, Delfzijl, Loppersum".

Pricing
$0.02 default
Parameters
{}
Example response
[
  {
    "childnutscodes": [
      {
        "childnutscodes": [
          {
            "childnutscodes": [],
            "gemeentes": [
              "Appingedam",
              "Delfzijl",
              "Loppersum"
            ],
            "nutscode": {
              "code": "NL112",
              "omschrijving": "Delfzijl en omgeving"
            }
          }
        ],
        "nutscode": {
          "code": "NL1",
          "omschrijving": "NOORD-NEDERLAND"
        }
      }
    ],
    "nutscode": {
      "code": "NL",
      "omschrijving": "NEDERLAND"
    }
  }
]
GET/v2/publicaties
$0.05 default
Description

Search Dutch public tender notices, or look one up in full. Search the whole archive (~145,000 notices) with any combination of search (free text over title, buyer and description), cpvCodes, procedure, typeOpdracht, and a window on either the publication date or the closing date. Supply publicatieId instead to fetch that one notice's complete record: awarding authority, full description, CPV and NUTS codes, procedure and legal framework, start/completion dates, closing date, national or European, and whether it was awarded or terminated early. A caller building the raw request path directly (not through structured parameters) can also append further segments after the publicatieId at the same price: /documenten for the list of tender documents with their download links, and /pdf for the official publication PDF. Results are paged with page/size and come back with totalElements and totalPages.

Pricing
$0.05 default
Parameters
{
  "cpvCodes": {
    "description": "EU Common Procurement Vocabulary code, INCLUDING the check digit, e.g. 85000000-9 (health and social work). An eight-digit code without the check digit is rejected.",
    "required": false,
    "type": "string"
  },
  "page": {
    "description": "Zero-based page number.",
    "required": false,
    "type": "integer"
  },
  "procedure": {
    "description": "Procedure code.",
    "enum": [
      "OPE",
      "NOP",
      "CCD",
      "OMB",
      "OZB",
      "OHP",
      "OH",
      "INP",
      "CA",
      "APM",
      "APE",
      "VUB"
    ],
    "required": false,
    "type": "string"
  },
  "publicatieDatumPreset": {
    "description": "Shorthand window on the publication date: AF7 for the last 7 days, AF30 for the last 30. Any other value is rejected.",
    "enum": [
      "AF7",
      "AF30"
    ],
    "required": false,
    "type": "string"
  },
  "publicatieDatumTot": {
    "description": "Only notices published up to this date, ISO yyyy-mm-dd.",
    "required": false,
    "type": "string"
  },
  "publicatieDatumVanaf": {
    "description": "Only notices published on or after this date, ISO yyyy-mm-dd.",
    "required": false,
    "type": "string"
  },
  "publicatieId": {
    "description": "A known publication id to fetch that notice's full detail directly, e.g. 438729. Omit to search instead using the parameters below.",
    "required": false,
    "type": "string",
    "x-parameter-location": "path"
  },
  "search": {
    "description": "Free-text search over the notice title, the awarding authority and the contract description, e.g. zorg or wegonderhoud.",
    "required": false,
    "type": "string"
  },
  "size": {
    "description": "Results per page (the site itself uses 50).",
    "required": false,
    "type": "integer"
  },
  "sluitingsDatumTot": {
    "description": "Only notices closing up to this date, ISO yyyy-mm-dd.",
    "required": false,
    "type": "string"
  },
  "sluitingsDatumVanaf": {
    "description": "Only notices closing on or after this date, ISO yyyy-mm-dd — the filter for finding tenders still open to bid on. Note the capital D.",
    "required": false,
    "type": "string"
  },
  "typeOpdracht": {
    "description": "Contract type: W werken (works), L leveringen (supplies), D diensten (services).",
    "enum": [
      "W",
      "L",
      "D"
    ],
    "required": false,
    "type": "string"
  }
}
Example response
{
  "content": [
    {
      "aanbestedingNaam": "Toelatingsprocedure Wmo Safehouses Gelderland-Zuid",
      "europees": false,
      "link": {
        "href": "https://www.tenderned.nl/aankondigingen/overzicht/438729",
        "title": "self"
      },
      "opdrachtgeverNaam": "gemeente Nijmegen",
      "procedure": {
        "code": "OH",
        "omschrijving": "Open House"
      },
      "publicatieDatum": "2026-09-04",
      "publicatieId": "438729",
      "typeOpdracht": {
        "code": "D",
        "omschrijving": "Diensten"
      },
      "typePublicatie": {
        "code": "AAO",
        "omschrijving": "Aankondiging opdracht"
      }
    }
  ],
  "number": 0,
  "size": 50,
  "totalElements": 145300,
  "totalPages": 2906
}