ECB Data Portal
The European Central Bank's data portal, with over a hundred dataflows: ECB policy rates, exchange rates, inflation (HICP), bank mortgage and savings rates, bank balance sheets, money supply and payments. For the Netherlands it holds figures that De Nederlandsche Bank reports to the ECB, always next to the other euro countries. All through an open SDMX API, no key needed. In September 2026 inflation was 3.0 percent in the Netherlands and 3.8 percent in the euro area.
Everything that's in it126
All dataflows in the ECB Data Portal (including the Eurostat and IMF ones the ECB distributes), in the portal's categories, fetched every night. Dataflows the ECB has not categorised are listed separately, split into live and discontinued. Every dataflow has its own page with the SDMX call, for the Netherlands when the dataflow has countries.
Niet ingedeeld door de ECB62
Inflation in the Netherlands: 3.0 percent in September 2026, 0.8 percentage points lower than in the euro area (3.8 percent)
Inflation in the Netherlands and the euro area (HICP, ECB Data Portal), January 2015 – September 2026, in percent. The highest point was September 2022 (17.1).
What you can build with it1
What can you do with it?4 ideas
Dutch inflation next to the euro area
Fetch HICP for NL and U2 in one call (key M.NL+U2…). In September 2022 Dutch inflation peaked at 17.1 percent, far above the euro average.
Do the Dutch pay more for a mortgage?
The MIR series give the rate on new mortgages per euro country. In August 2026: Netherlands 3.91%, Belgium 3.7%, Germany 4.0%, France 3.2%, euro area 3.6%.
Savings rate against inflation
Put the interest rate on Dutch household savings accounts (MIR) next to HICP. The difference is what savers gain or lose in purchasing power.
Exchange rate and ECB rate as a timeline
The deposit facility rate (FM, DFR) and the euro-dollar rate (EXR) are daily series. On 16 October 2026 the deposit rate stood at 2.5 percent.
How to process it4 steps
Find the dataflow
The dataflow list (SDMX-XML) names every code: HICP (consumer prices), MIR (bank interest rates), EXR (exchange rates), FM (financial markets), BSI (bank balance sheets).
https://data-api.ecb.europa.eu/service/dataflow/ECB
Fetch a series as CSV
A series is dataflow + key, with dots between dimensions. Use + to ask for several countries at once; detail=dataonly drops the metadata.
https://data-api.ecb.europa.eu/service/data/HICP/M.NL+U2.N.000000.4D0.ANR?startPeriod=2024-01&format=csvdata&detail=dataonly
Mortgage rate per euro country
Rate on new housing loans (A2C) to households, all maturities. lastNObservations=1 gives only the latest month.
https://data-api.ecb.europa.eu/service/data/MIR/M.NL+DE+BE+FR+U2.B.A2C.AM.R.A.2250.EUR.N?lastNObservations=1&format=csvdata&detail=dataonly
Daily euro-dollar rate
ECB reference rate, working days only. On 15 October 2026: 1.1208 dollars per euro.
https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?lastNObservations=5&format=csvdata&detail=dataonly
Interesting combinations


Do house prices follow the mortgage rate?
Put the MIR mortgage rate next to the CBS price index of existing owner-occupied homes per month and see whether a rate drop shows up in prices later.


Interest and debt per country
Combine the mortgage rate per euro country with household debt from Eurostat and see where a rate rise hits hardest.
Similar sources
DNB statistics (De Nederlandsche Bank)DNB publishes the Dutch figures itself and in more detail (pension funds, insurers), but the DNB API needs a key. At the ECB they are open, next to the other euro countries.
EurostatEurostat produces the HICP and covers all EU countries, also outside the euro. The ECB takes over those figures and adds interest-rate and banking statistics.
CBS StatLineCBS has the Dutch CPI (the national inflation measure) and much more detail per product group, but no comparison with other countries.
What to watch out for
- HICP is not the CPI
The European HICP and the Dutch CBS CPI measure inflation slightly differently (owner-occupied housing, among other things). Always name the measure you use.
- Old HICP series stop at the end of 2025
In the ICP dataflow the series ran to December 2025 on 16 October 2026. The current series are in the HICP dataflow, with an extra dimension for the provider (4D0 = Eurostat).
- No asterisk in the key
An * as wildcard triggered a firewall block (HTTP 400, 'access has been blocked'). Leave a dimension empty (two dots in a row) or list codes with +.
- State your transformations
The ECB terms ask for attribution and that you say what you changed yourself, for example seasonal adjustment or growth rates you computed.
- The euro area changes composition
Code U2 is the euro area with changing composition. A long series therefore does not always contain the same countries.
APISDMX 2.1 REST · read 16 Oct 2026
No key or account needed tested
dataflows in /dataflow/ECB (16 Oct 2026) tested
csvjsonxml
Base URL
https://data-api.ecb.europa.eu/service
Endpoints 5
- GET
/data/{dataflow}/{sleutel}Time series. Key = codes in dimension order with dots between; + for several codes, empty for all. E.g. HICP/M.NL+U2.N.000000.4D0.ANR (inflation NL and euro area). - GET
/dataflow/ECBAll dataflows with name and data structure (SDMX-ML): HICP, MIR, EXR, FM, BSI … - GET
/dataflow/ECB/{dataflow}?references=allOne dataflow with data structure, concepts and code lists (HICP: 700 kB). - GET
/datastructure/ECB/{dsd}Data structure, e.g. ECB_EXR1 (exchange rates) or ECB_ICP1 (prices): order of the dimensions. - GET
/codelist/ECB/{codelijst}Code list with names, e.g. CL_AREA (countries and areas), CL_CURRENCY, CL_FREQ.
Filtering tested
Series key in the path: one position per dimension, dots between, + for several codes, empty for all codes. No *. Time with startPeriod/endPeriod or lastNObservations.
Parameters 9
startPeriod | Start: 2024, 2024-Q1, 2024-01, 2024-W01, 2024-01-15 (per frequency). | tested |
endPeriod | End, same notation. | tested |
lastNObservations | At most N observations per series, from the latest. | tested |
firstNObservations | At most N observations per series, from the oldest. | from the description |
updatedAfter | Only what was added, revised or deleted since this moment (percent-encoded, e.g. 2026-10-01T00:00:00%2B01:00). Each row then gets an ACTION column. | tested |
detail | full (default), dataonly (no attributes), serieskeysonly (only which series exist), nodata. | tested |
includeHistory | true also returns earlier versions, with VALID_FROM and VALID_TO per value: shows when a figure appeared or was revised. | tested |
format | csvdata, jsondata (SDMX-JSON), structurespecificdata, genericdata (default, SDMX-ML). Or via the Accept header: text/csv, application/json. | tested |
references | For structure queries: none, parents, children, descendants, all. | from the description |
Columns in format=csvdata (HICP) 9
| Name | Type | Meaning |
|---|---|---|
KEY | tekst | Volledige reekssleutel, bv. HICP.M.NL.N.000000.4D0.ANR |
FREQ | code | D dag, M maand, Q kwartaal, A jaar |
REF_AREA | code | Land (ISO2: NL, DE, BE) of U2 = eurozone (wisselende samenstelling) |
ICP_ITEM | code | HICP: productgroep, 000000 = totaal |
DATA_PROVIDER | code | HICP: leverancier, 4D0 = Eurostat |
ICP_SUFFIX | code | HICP: ANR = jaarmutatie in procent, INX = index |
TIME_PERIOD | periode | 2026-09, 2026-10-15 |
OBS_VALUE | getal · volgt uit de reeks (procent, koers …) | De waarde |
OBS_STATUS | code | Status van de waarneming (alleen met detail=full) |
Limits and pitfalls
- No key and no documented request limit. Compression with Accept-Encoding: gzip, deflate. from the description
- If you keep a local copy, use updatedAfter to fetch only the changes, or send If-Modified-Since (304 if nothing changed). We still got a 200 with If-Modified-Since, because the series had been updated that day. from the description
- An * as wildcard in the key triggered a firewall block (HTTP 400, HTML 'access has been blocked'). Leave a dimension empty or list codes with +. experience
- No series found = 404 with application/problem+json: 'No Series was returned for the query'. tested
- robots.txt (redirected to data.ecb.europa.eu) disallows the user agents curl, Wget, python-requests, axios, Go-http-client and Java, but allows others. Set your own User-Agent with a contact address in your code (curl -A, requests headers). tested
- Dataflow ICP ran to December 2025 on 16 Oct 2026. Current HICP is in dataflow HICP with an extra dimension DATA_PROVIDER (4D0): September 2026 NL 3.0%, euro area 3.8%. tested
- With Accept: application/json and no format you get SDMX-JSON; without Accept and format SDMX-ML (genericdata). Use format=csvdata&detail=dataonly for a small table. tested
- MIR (bank rates per euro country, from DNB for NL): new mortgage rate M.NL.B.A2C.AM.R.A.2250.EUR.N, August 2026 3.91%. Euro-dollar rate: EXR/D.USD.EUR.SP00.A (working days only). tested
Try it HTTP 200 · 559 ms · 16 Oct
https://data-api.ecb.europa.eu/service/data/HICP/M.NL+U2.N.000000.4D0.ANR?lastNObservations=3&format=csvdata&detail=dataonly
KEY,FREQ,REF_AREA,ADJUSTMENT,ICP_ITEM,DATA_PROVIDER,ICP_SUFFIX,TIME_PERIOD,OBS_VALUE HICP.M.NL.N.000000.4D0.ANR,M,NL,N,000000,4D0,ANR,2026-07,3 HICP.M.NL.N.000000.4D0.ANR,M,NL,N,000000,4D0,ANR,2026-08,2.8 HICP.M.NL.N.000000.4D0.ANR,M,NL,N,000000,4D0,ANR,2026-09,3 HICP.M.U2.N.000000.4D0.ANR,M,U2,N,000000,4D0,ANR,2026-07,2.9 HICP.M.U2.N.000000.4D0.ANR,M,U2,N,000000,4D0,ANR,2026-08,3.2 HICP.M.U2.N.000000.4D0.ANR,M,U2,N,000000,4D0,ANR,2026-09,3.8
Shortened response, saved at harvest time. Click the URL for the real, current response.
Read from ECB: data query (key, startPeriod, updatedAfter, lastNObservations, detail, includeHistory, format) · ECB: structure queries (dataflow, datastructure, codelist, references) · ECB: formats via the Accept header and compression · ECB: status codes (304, 400, 404, 406, 501 …). 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://data-api.ecb.europa.eu/service/data/HICP/M.NL+U2.N.000000.4D0.ANR?lastNObservations=3&format=csvdata&detail=dataonly"
More from ECB in our index
106 datasets in ECB Data Portal, data.overheid.nl. These changed most recently.
- Marktrentevoeten (Maand)2022-04-05
More in this topic
See how this page is built
bron: ecb-data blokken: [] secties: - ideeen - verwerken - koppelingen - vergelijkbaar - beperkingen - code cache: tag: bron:ecb-data ververs: na statuscheck, als de bron nieuwer is statuscheck: methode: nieuwste maand van de HICP-reeks voor Nederland (lastNObservations=1) verwacht: dagelijks
Source: content/bronnen/ecb-data.yaml · Markdown



