Free Central Bank Rates API
Policy rates for 38 economies with a current series (49 in the archive) from the BIS dataset. Latest level per country plus daily history. History starts in 1945; the free API returns the last six months. Updated when the BIS publishes, often several business days after a decision.
Endpoints
/api/markets/ratesLatest rate per country with last-change date.
/api/markets/rates/{country}?from=YYYY-MM-DDDaily history for one economy by BIS code (us, xm for the euro area, gb, jp...), newest first. The free API returns the last six months.
/api/markets/rates/csvAll rate-change events as CSV.
Example
import requests
r = requests.get("https://xoomar.com/api/markets/rates/us")
changes = [d for d in r.json()["data"] if d["changed"]]
print(f"{len(changes)} Fed moves in the window")Response shape
Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs, license, attribution, meta }. In meta, source names who publishes the data and sourceAttribution is the credit line to show with it. The data field is an array of records with these fields:
| Field | Type | Description |
|---|---|---|
| countryCode | string | BIS area code, mostly ISO 3166 (US, XM for the euro area, GB) |
| country | string | Economy name |
| date | string (date) | Observation date |
| rate | string | Policy rate, percent per year |
| lastChanged | string | null | Date of the most recent move (this endpoint) |
| changed | boolean | On /rates/{country}: true on days the rate moved (rows carry date, rate, changed) |
| canonicalUrl | string | The page on xoomar.com for this record (on /rates; the rows of /rates/{country} do not carry it) |
History endpoints return newest first. The euro area is one entry (XM) covering all eurozone members.
Numeric fields typed string in the table carry exact decimals; parse them with your language's decimal type. No key needed to start: 10 requests a minute per IP without a key and 30 a minute with a free account key, with at least six months of history. A 429 response carries a Retry-After header in seconds. Credit XOOMAR with a link to the dataset page when you republish the data; the data terms are on the terms page.
A free account key raises the limit; send it in an X-API-Key header.
Frequently Asked Questions
Where does the data come from?
How much history is there?
How do I get just the rate decisions?
What are the rate limits?
Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.