303,525 datasets indexed1,419 publishers
Open Data IndexThe index of open data about the Netherlands
Sources›Economy
Organisatie voor Economische Samenwerking en Ontwikkeling
International, relevant to the Netherlands

OECD Data Explorer

Over 1,500 OECD tables on work, income, taxes, education, health, housing and the environment. Measured the same way for every member country, so good for comparing the Netherlands with countries outside Europe, such as the United States, Japan or Canada.

EconomyWorkEducationHealthOpenAPIDownloadWorld · country (sometimes region)
Behind schedule · updated in August 2026 · checked 17:23
data-explorer.oecd.org
Screenshot of data-explorer.oecd.org
No sample chart yet

This page was built from the catalogue and the daily status check. A full page also gets charts from the source itself, its pitfalls, sample code and sites that use it.

See a full page

Everything that's in it1,550

All dataflows in the OECD Data Explorer, in the OECD's own topic structure, fetched every night. A dataflow can sit under several topics. Every dataflow has its own page with the SDMX call for the latest Dutch observation, the number of observations and the period.

1,550dataflows
2.1 bnobservations in total
1,550with an API or map service
339updated in the past 30 days

What you can build with it1

What can you do with it?4 ideas

Getting started

Do we really work so little?

A worker in the Netherlands worked an average of 1,436 hours in 2025, against 1,332 in Germany, 1,586 in Belgium and 1,800 in the United States (OECD, actual hours worked per worker per year). In 1970 it was still 1,809 hours in the Netherlands.

Getting started

Monthly unemployment next to the neighbours

In August 2026 unemployment in the Netherlands was 4.0 percent, the same as Germany. Belgium was at 5.9 and the OECD average at 5.0 percent (seasonally adjusted, aged 15 and over).

Advanced

Tax burden on wages

The OECD calculates for each country how much tax and social contributions an employee and employer pay. Compare the Netherlands with countries outside the EU, which Eurostat does not cover.

Advanced

One URL per chart

Build a fixed API call with lastNObservations and let a chart update itself as soon as the OECD publishes a new month.

How to process it4 steps

  1. Find the table in the Data Explorer

    Pick a table, set the filters and open 'Developer API'. It shows the SDMX call that fetches exactly your selection.

  2. Or search the list of all tables

    One call returns all 1,550 tables (dataflows) with id, version and issuing directorate (15 Oct 2026, 10 MB).

    https://sdmx.oecd.org/public/rest/dataflow/all
  3. Read which dimensions exist

    The key in the URL has one position per dimension, separated by dots. Empty = everything. Request the structure with references=all to see the order and the codes.

    https://sdmx.oecd.org/public/rest/dataflow/OECD.ELS.SAE/DSD_HW@DF_AVG_ANN_HRS_WKD/1.0?references=all
  4. Fetch data as CSV

    With format=csvfilewithlabels you get codes and names. Separate several countries with a plus: NLD+DEU+BEL.

    https://sdmx.oecd.org/public/rest/data/OECD.SDD.TPS,DSD_LFS@DF_IALFS_UNE_M,1.0/NLD+DEU+BEL+OECD.UNE_LF_M.PT_LF_SUB._Z.Y._T.Y_GE15._Z.M?lastNObservations=1&dimensionAtObservation=AllDimensions&format=csvfilewithlabels

Interesting combinations

Similar sources

What to watch out for

  • Wrong code = 404, not an empty list

    A key without results returns HTTP 404 with the text NoResultsFound. The default view in the metadata even named code UNE_M for monthly unemployment, while the data use code UNE_LF_M (15 Oct 2026). Start with just the country, then fill in the other dimensions.

  • Choose every dimension deliberately

    If you leave a dimension empty you get all variants mixed: for hours worked, e.g., all workers (_T) and employees only (ICSE93_1). For the Netherlands these differ by more than 80 hours a year (2025).

  • Rows come unsorted

    The CSV is not sorted by country or year. Sort it yourself before plotting a series.

  • Website refuses scripts

    On 15 October 2026 www.oecd.org (including the API guide and the terms) returned HTTP 403 to our honest user agent. The API on sdmx.oecd.org did work. The manual is available as a PDF on gitlab.algobank.oecd.org.

APISDMX 2.1 REST (ook SDMX REST 2.0) · read 16 Oct 2026

StandardSDMX 2.1 REST (ook SDMX REST 2.0)docs
Access no key

No key or account needed tested

Size1,550

dataflows (tables) in dataflow/all (16 Oct 2026) tested

Formats

csvjsonxml

Base URL

https://sdmx.oecd.org/public/rest

Endpoints 6

  • GET/data/{agency},{dataflow},{versie}/{sleutel}Data (SDMX API 1). Key: one position per dimension (without time), dots between, + for several codes, empty = all. Example: OECD.SDD.TPS,DSD_LFS@DF_IALFS_UNE_M,1.0/NLD+DEU.UNE_LF_M.PT_LF_SUB._Z.Y._T.Y_GE15._Z.M
  • GET/v2/data/dataflow/{agency}/{dataflow}/{versie}/{sleutel}Data (SDMX API 2): one code per dimension, * as wildcard, time with c[TIME_PERIOD]=ge:2018+le:2024. Version + = latest.
  • GET/dataflow/allAll 1,550 dataflows with id, agency, version and name (10 MB as JSON with Accept application/vnd.sdmx.structure+json).
  • GET/dataflow/{agency}/{dataflow}/{versie}?references=allOne dataflow with data structure, code lists and concepts: the order of the dimensions and all codes.
  • GET/availableconstraint/{agency},{dataflow},{versie}/{sleutel}/all/{dimensie}Which codes of one dimension have data for this key, plus the number of observations (obs_count). Handy to find the right MEASURE code.
  • GET/codelist/{agency}/{codelijst}Code list with names, e.g. /codelist/OECD/CL_AREA (countries and areas, 576 kB JSON).

Filtering tested

Series key in the path: codes in dimension order, dots between, + for several codes, empty for all. Time with startPeriod/endPeriod or lastNObservations.

.+ge:le:

Parameters 10

startPeriodStart (inclusive): 2015, 2015-Q1, 2015-01 or 2015-M01, 2015-01-01.tested
endPeriodEnd (inclusive), same notation.tested
lastNObservationsAt most N observations per series, from the latest. lastNObservations=1 = latest month only.tested
dimensionAtObservationAllDimensions = flat list (handy for JSON); default grouped per time series.from the description
formatcsvfile (CSV file), csvfilewithlabels (codes and names), csv, jsondata, genericdata, structurespecificdata. Without format: SDMX-ML generic.tested
detailFull (default), DataOnly, SeriesKeysOnly, NoData.tested
updatedAfterOnly observations added, changed or deleted since this moment (with time zone, e.g. 2026-10-01T00:00:00+02:00).from the description
firstNObservationsAt most N observations per series, from the oldest.tested
includeHistory, asOfListed among the allowed parameters the API returns for an unknown parameter; not tested further.tested
referencesFor structure queries: all (everything that belongs to it), with detail=referencepartial.from the description

Columns in format=csvfile (monthly unemployment) 9

NameTypeMeaning
DATAFLOWtekstAgency, dataflow en versie, bv. OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0)
REF_AREAcodeLand (ISO3: NLD, DEU, BEL) of groep (OECD, EA20)
MEASUREcodeWat er gemeten is, bv. UNE_LF_M (werkloosheid per maand)
UNIT_MEASUREcodeEenheid, bv. PT_LF_SUB (procent van de beroepsbevolking in dezelfde groep)
ADJUSTMENTcodeY = seizoens- en kalendergecorrigeerd
TIME_PERIODperiodePeriode: 2025, 2026-08, 2026-Q2
OBS_VALUEgetalDe waarde
OBS_STATUScodeStatus van de waarneming (A = normaal)
UNIT_MULTgetalMacht van tien waarmee de waarde vermenigvuldigd is (0 = geen)

Limits and pitfalls

  • Calls in quick succession get a 429. Back off (15, 30, 45 s) and rather ask for several countries at once with +. experience
  • The OECD announced a limit on data downloads in November 2024 (page 'API best practices'; search results mention 60 per hour). That page on www.oecd.org returned 403 to us, so we did not read the number ourselves. experience
  • No key needed. Send Accept-Encoding: gzip; dataflow/all is 10 MB. tested
  • No result = HTTP 404 with the plain text NoResultsFound, not an empty list. tested
  • An unknown parameter (e.g. lang=en) returns 403 with the list of allowed parameters: startPeriod, endPeriod, updatedAfter, firstNObservations, lastNObservations, dimensionAtObservation, detail, includeHistory, asOf (format also works). tested
  • Wrong number of dimensions in the key: availableconstraint returns 403 'Not enough key values in query, expecting 9 got 11'; data just returned NoResultsFound. Count the dots. tested
  • Codes in the default view do not always match the data: the metadata named UNE_M, the data use UNE_LF_M. Ask availableconstraint for the MEASURE dimension. tested
  • Accept-Language: * (the Node fetch default) returns HTTP 500 'Internal server error', on structure and data queries (measured with curl: without that header 200, with it 500; a response already in the OECD cache does get through). Set Accept-Language: en yourself. According to the manual the SDMX-CSV separator also depends on Accept-Language (sometimes ;). tested
  • If you leave a dimension empty you get all variants mixed (for hours worked: all workers and employees only). Choose every dimension deliberately. experience
  • CSV rows are not sorted by country or period. csvfilewithlabels has a different header (STRUCTURE, STRUCTURE_ID, with a name column next to every code). tested
  • Dataflows sometimes point to an older structure version; without a version in the path (SDMX API 1) or with + (API 2) you get the latest, which is not always backwards compatible. from the description
  • The Data Explorer has a 'Developer API' button per table with exactly the call for your selection. from the description

Try it HTTP 200 · 1,242 ms · 16 Oct

https://sdmx.oecd.org/public/rest/data/OECD.SDD.TPS,DSD_LFS@DF_IALFS_UNE_M,1.0/NLD+DEU+BEL.UNE_LF_M.PT_LF_SUB._Z.Y._T.Y_GE15._Z.M?lastNObservations=2&format=csvfile
DATAFLOW,REF_AREA,MEASURE,UNIT_MEASURE,TRANSFORMATION,ADJUSTMENT,SEX,AGE,ACTIVITY,FREQ,TIME_PERIOD,OBS_VALUE,BASE_PER,OBS_STATUS,UNIT_MULT,DECIMALS
OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0),BEL,UNE_LF_M,PT_LF_SUB,_Z,Y,_T,Y_GE15,_Z,M,2026-08,5.9,,A,0,1
OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0),BEL,UNE_LF_M,PT_LF_SUB,_Z,Y,_T,Y_GE15,_Z,M,2026-07,6,,A,0,1
OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0),DEU,UNE_LF_M,PT_LF_SUB,_Z,Y,_T,Y_GE15,_Z,M,2026-08,4,,A,0,1
OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0),DEU,UNE_LF_M,PT_LF_SUB,_Z,Y,_T,Y_GE15,_Z,M,2026-07,4,,A,0,1
OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0),NLD,UNE_LF_M,PT_LF_SUB,_Z,Y,_T,Y_GE15,_Z,M,2026-08,4,,A,0,1
OECD.SDD.TPS:DSD_LFS@DF_IALFS_UNE_M(1.0),NLD,UNE_LF_M,PT_LF_SUB,_Z,Y,_T,Y_GE15,_Z,M,2026-07,4,,A,0,1

Shortened response, saved at harvest time. Click the URL for the real, current response.

Read from OECD Data API documentation (PDF, updated 17 Sep 2026): data and structure queries, parameters, formats · List of all dataflows (SDMX structure). Labels: from the description stated in what the api itself publishes. tested from our own small call. platform applies to every api on this platform, per its documentation. experience learned while building open data index.

How to fetch it

curl "https://sdmx.oecd.org/public/rest/data/OECD.ELS.SAE,DSD_HW@DF_AVG_ANN_HRS_WKD,1.0/NLD+DEU+BEL+USA........_T....?startPeriod=2025&format=csvfilewithlabels"

More from OESO in our index

1,550 datasets in OECD Data Explorer. These changed most recently.

All about OESO

More in this topic

See how this page is built
bron: oecd-data
blokken: []
secties:
  - ideeen
  - verwerken
  - koppelingen
  - vergelijkbaar
  - beperkingen
  - code
cache:
  tag: bron:oecd-data
  ververs: na statuscheck, als de bron nieuwer is
statuscheck:
  methode: nieuwste maand van de werkloosheid in Nederland (SDMX-API)
  verwacht: maandelijks

Source: content/bronnen/oecd-data.yaml · Markdown