Deutsche Bundesbank Time Series API
Free Deutsche Bundesbank time series API with no key: exchange rates, interest rates and German macro series as CSV, JSON or SDMX-ML. Tested example and live response.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Deutsche Bundesbank Time Series API?
The Deutsche Bundesbank serves its published statistics through a free REST API at api.statistiken.bundesbank.de with no key. Any series is addressed by its Bundesbank key and can be returned as CSV, SDMX-JSON or SDMX-ML.
Everything in the Bundesbank's statistical catalogue is addressable by a structured key, and once you can read a key you can reach any series without hunting through a UI. `BBEX3/D.USD.EUR.BB.AC.000` decomposes into the dataset, the frequency, the currency, the base, the source and the type — so the euro reference rate against sterling is the same key with `GBP` substituted. Learn one key and you have learned several thousand.
The CSV format is not a bare table. Roughly a dozen metadata rows precede the data, carrying the decimal places, unit, category and a bilingual comment, and only then do the dated observations begin. A naive CSV reader will treat the metadata block as rows and produce nonsense. Skip until you reach the first line whose leading field parses as a date, or request SDMX-JSON, which keeps metadata and observations in separate structures.
Quick facts
- Base URL
https://api.statistiken.bundesbank.de/rest/data- Authentication
- No key or registration. Published by the Bundesbank as open statistical data.
- Rate limit
- No documented limit. Daily series update once per working day.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Deutsche Bundesbank Time Series API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Last five daily EUR/USD reference rates
GET https://api.statistiken.bundesbank.de/rest/data/BBEX3/D.USD.EUR.BB.AC.000?lastNObservations=5&format=csv
curl 'https://api.statistiken.bundesbank.de/rest/data/BBEX3/D.USD.EUR.BB.AC.000?lastNObservations=5&format=csv'const res = await fetch("https://api.statistiken.bundesbank.de/rest/data/BBEX3/D.USD.EUR.BB.AC.000?lastNObservations=5&format=csv");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.statistiken.bundesbank.de/rest/data/BBEX3/D.USD.EUR.BB.AC.000?lastNObservations=5&format=csv", timeout=20)
res.raise_for_status()
print(res.json())"";BBEX3.D.USD.EUR.BB.AC.000;BBEX3.D.USD.EUR.BB.AC.000_FLAGS
"";Euro-Referenzkurs der EZB / 1 EUR = ... USD / Vereinigte Staaten;
BBK_UNIT_ENG;;
Dezimalstellen;4;
Dimension;Eins;
Einheit;USD;
Format der Zeitangabe;P1D;
Kategorie;WEDE;
Kommentar;Die EZB veröffentlicht tägliche Referenzkurse, die auf Grundlage der Konzertation zwischen Zentralbanken um 14.15 Uhr ermittelt werden.;
Kommentar (enParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
dataset/key | path segment | Required | Bundesbank dataset code followed by the dotted series key. BBEX3/D.USD.EUR.BB.AC.000 |
format | query | Optional | `csv`, `json` (SDMX-JSON) or `sdmx` (SDMX-ML). Defaults to SDMX-ML. csv |
lastNObservations | query | Optional | Return only the most recent N observations instead of the whole series. 5 |
startPeriod / endPeriod | query | Optional | Restrict the series to a date window, in the series' own period format. 2026-01-01 |
lang | query | Optional | `en` or `de` for metadata labels. en |
Response fields
Header block (CSV)rows- Around a dozen metadata rows before the data — decimal places, unit, category, frequency and comments. Skip them before parsing.
Data rows (CSV)rows- Date, value and a flag column per observation, oldest first.
BBK_UNIT_ENG / Einheitmetadata- The unit the observations are expressed in.
Format der Zeitangabemetadata- ISO 8601 duration giving the observation frequency, `P1D` for daily.
Flags columnstring- Observation status flags; an empty flag means a normal published value.
What you can build with the Deutsche Bundesbank Time Series API
- Pull the ECB euro reference rate for a currency straight from an official source
- Chart German interest rate or macro series without scraping a PDF
- Fetch only the last N observations for a lightweight dashboard refresh
- Load a long series into a spreadsheet using the CSV format
Common errors and how to fix them
Nonsense first rows after CSV parse
The metadata preamble was read as data.
Fix: Skip rows until the first field parses as a date, or use `format=json` where metadata is structurally separate.
404
The dataset or series key does not exist.
Fix: Keys are case-sensitive and positional. Confirm the exact key in the Bundesbank time series database before hard-coding it.
Empty result with HTTP 200
The `startPeriod`/`endPeriod` window contains no observations.
Fix: Widen the window, and remember daily series skip weekends and German public holidays.
Deutsche Bundesbank Time Series API — frequently asked questions
Is the Bundesbank time series API free?
Yes. It needs no key or registration and serves the full published statistics catalogue in CSV, SDMX-JSON and SDMX-ML.
How do I find the key for a series I want?
Browse the Bundesbank time series database and copy the key shown against the series. Keys are structured, so once you have one from a family you can usually derive its siblings by substituting a dimension.
Why does the CSV have text at the top instead of a header row?
The Bundesbank ships series metadata as leading rows in the same file — units, decimals, category and comments. Skip to the first date-shaped row, or switch to `format=json`.
Are the euro reference rates here the same as the ECB's?
The BBEX3 family republishes the ECB reference rates, as the series description in the response states. It is the same fixing reached through a different API.
Tools that pair with this API
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
CSV Viewer & Table
View CSV as a clean HTML table online. Live search filter, row and column counts, delimiter and header options — all processed locally in your browser.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
Deutsche Bundesbank Time Series is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.