XOOMAR

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

GET
/api/markets/rates

Latest rate per country with last-change date.

GET
/api/markets/rates/{country}?from=YYYY-MM-DD

Daily 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.

GET
/api/markets/rates/csv

All 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:

FieldTypeDescription
countryCodestringBIS area code, mostly ISO 3166 (US, XM for the euro area, GB)
countrystringEconomy name
datestring (date)Observation date
ratestringPolicy rate, percent per year
lastChangedstring | nullDate of the most recent move (this endpoint)
changedbooleanOn /rates/{country}: true on days the rate moved (rows carry date, rate, changed)
canonicalUrlstringThe 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?
The BIS central bank policy rates dataset, compiled from the central banks themselves. It updates when the BIS publishes, often several business days after a decision.
How much history is there?
History starts in 1945 for the earliest series and in July 1954 for the US; the free API returns the last six months.
How do I get just the rate decisions?
Filter on changed=true in the history endpoint, or download the /csv endpoint which contains only change events.
What are the rate limits?
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. This dataset needs one call a day at most.

Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.