XOOMAR

Free Central Bank Rates API

Policy rates for 49 economies from the BIS dataset. Latest level per country plus full daily history back decades. Updated daily.

Endpoints

GET
/api/markets/rates

Latest rate per country with last-change date.

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

Full daily history for one country (us, xm, gb, jp...).

GET
/api/markets/rates/csv

All rate-change events as CSV.

Example

import requests

r = requests.get("https://xoomar.com/api/markets/rates/us", params={"from": "2020-01-01"})
changes = [d for d in r.json()["data"] if d["changed"]]
print(f"{len(changes)} Fed moves since 2020")

Response Shape

Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs }. The data field is an array of records with these fields:

FieldTypeDescription
countryCodestringISO-ish BIS area code (US, XM = euro area, GB...)
countrystringEconomy name
datestring (date)Observation date
ratestringPolicy rate, percent per year
changedbooleanTrue on days the rate moved (history endpoint)
lastChangedstring | nullDate of the most recent move (hub endpoint)

History endpoints return newest first. The euro area is one entry (XM) covering all eurozone members.

Numeric values arrive as strings where precision matters (prices, rates); parse with your language's decimal type for accounting-grade math. Rate limiting is fair-use per IP; a 429 response includes a Retry-After header. No authentication or API key needed. Attribution is appreciated: xoomar.com/markets.

Need more headroom? A free account raises your limit to 120 requests a minute with an X-API-Key header.

Frequently Asked Questions

Where does the data come from?
The BIS central bank policy rates dataset, the standard reference compiled from central banks themselves. We sync the public bulk file daily.
How much history is there?
Decades of daily observations for most economies. The US series starts in 1946.
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?
30 requests per minute per IP keyless, 120 with a free account key. 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.