Financial Literature

European Central Bank

ECB Data Portal — The FRED of Europe: euro-area rates, inflation, money and bank lending, SDMX under the hood

Any euro-area question — the deposit facility rate, HICP, M3, bank lending, government yields, the euro's reference rates — where you want the ECB's own series rather than a mirror. National detail (Germany, Italy, Spain) is here too, keyed by REF_AREA.

macroratespricesfxmoneyeuro areaEuropean Union
Asset classesmacro · rates · prices · fx · money
Frequencydaily → annual
History1999 → today
Limit · costNo key · fair use; long queries can time out
KeyNo key
Formats · pull withcsv · json · sdmx — python, excel, sheets
LicenceECB data are free to use and redistribute with attribution ('Source: ECB').
RedistributeWith attribution; check series notes
Best for“Euro-area policy rate, HICP and money supply from the source” · “ECB reference exchange rates, daily”
When to use it

Reach for it when…

Any euro-area question — the deposit facility rate, HICP, M3, bank lending, government yields, the euro's reference rates — where you want the ECB's own series rather than a mirror. National detail (Germany, Italy, Spain) is here too, keyed by REF_AREA.

Not for: EU statistics that are not monetary (Eurostat: GDP, unemployment, national CPIs), UK data (Bank of England), anything before 1999 (national central banks or FRED's historical series).

How to read it

Units, revisions, traps

Units. Rates in percent, HICP as an annual rate of change (ANR) or an index — the last key segment says which. Exchange rates are units of currency per euro.

Revisions. Monetary aggregates and lending are revised for two months; HICP flash estimates are replaced by final figures two weeks later.

  • Three policy rates (DFR, MRO, MLF); since 2024 the deposit facility rate is the operational one.
  • Series keys are long dotted strings; copy them from the series page URL rather than guessing.
  • csvdata puts the value in OBS_VALUE and the period in TIME_PERIOD; the JSON format is SDMX-JSON and awkward in pandas.

Classic mistake: Quoting the main refinancing rate as 'the ECB rate' after 2024.

How to use it in your own work

Three recipes

Each recipe: Python · Excel · Sheets, with how to read the result. Python recipes run under pandas; recipe 1 is re-run by the weekly check where the source allows it.

How to use it in your own work

Copy the snippet, change the series id, read the result the way the footer says. Replace YOUR_…_KEY with your own key where one is needed.

Recipe 1Euro-area inflation, monthly, as a rate

# HICP all-items, annual rate of change, euro area (already a rate)
import pandas as pd
u = "https://data-api.ecb.europa.eu/service/data/ICP/M.U2.N.000000.4.ANR?format=csvdata&startPeriod=2015-01"
df = pd.read_csv(u)
s = df.set_index(pd.PeriodIndex(df.TIME_PERIOD, freq="M").to_timestamp())["OBS_VALUE"]
print(s.tail(6))
How to read the resultThis series is already a 12-month rate; do not difference it again. The flash estimate lands on the last working day of the month.

Recipe 2The deposit facility rate, daily

import pandas as pd
u = "https://data-api.ecb.europa.eu/service/data/FM/B.U2.EUR.4F.KR.DFR.LEV?format=csvdata&startPeriod=2019-01-01"
df = pd.read_csv(u)
s = df.set_index(pd.to_datetime(df.TIME_PERIOD))["OBS_VALUE"]
print(s.drop_duplicates().tail(8))    # only the changes
How to read the resultSteps, not a line: the series only moves on Governing Council decision days. Compare the level with HICP to get the real policy rate.

Recipe 3Reference exchange rates: dollars per euro

import pandas as pd
u = "https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?format=csvdata&startPeriod=2024-01-01"
df = pd.read_csv(u)
s = df.set_index(pd.to_datetime(df.TIME_PERIOD))["OBS_VALUE"]
print(s.tail())
How to read the resultOne fix per day at about 16:00 CET; the ECB rate is the reference for contracts, not a trading price.

Series → question map

The ids we use from ECB Data Portal, each with the question it answers. The catalog's compare view reads the concept tags behind these rows.

SeriesAnswersRegionConcept
FM.B.U2.EUR.4F.KR.DFR.LEVWhat is the ECB's policy rate? (deposit facility)euro areapolicy_rate
ICP.M.U2.N.000000.4.ANRWhat is euro-area inflation? (HICP, annual rate)euro areacpi
EXR.D.USD.EUR.SP00.ADollars per euro, daily referenceeuro areafx_usd
BSI.M.U2.Y.V.M30.X.1.U2.2300.Z01.EIs M3 growing?euro areamoney_supply
BSI.M.U2.Y.U.A20.A.1.U2.2250.Z01.EAre banks lending to households?euro areabank_lending
IRS.M.U2.L.L40.CI.0000.EUR.N.ZEuro-area 10-year government yieldeuro areayield_10y

Compare with

Same question, different source: FRED, BOK ECOS, Eurostat API. The compare view lines up coverage, frequency, history and access side by side and lists what the combination makes possible.

Open compare: ECB Data Portal · FRED · BOK ECOS →

Curated: Policy rate and inflation for a country.

Questions readers ask

Is the ECB Data Portal free?

Yes, no key. Very long queries can time out — add startPeriod to keep the response small.

Which ECB rate is 'the' rate?

Since the 2024 operational framework change, the deposit facility rate. The main refinancing rate sits 15 basis points above it by design.

How do I find a series key?

Open the series on data.ecb.europa.eu; the key (e.g. ICP.M.U2.N.000000.4.ANR) is in the page URL and the download link.

From the paper

Educational only — we explain, we never advise · snippet licence: public domain · corrections to [email protected], fixed within a day and logged in the changelog.