Central banks set official rates and the market sets the live mid-market rate, but customers transact at neither. They get their bank's board rate: the buy and sell prices each bank shows on its own website, updated through the day.
AllRatesToday reads those boards every hour from 1,219 banks in 124 countries and serves them as JSON.
What a board looks like
curl -H "Authorization: Bearer $KEY" \ "https://allratestoday.com/api/v1/bank-rates/sg/dbs?ccy=USD" { "bank": "dbs", "name": "DBS Bank", "country": "sg", "quote_ccy": "SGD", "basis": "Telegraphic transfer", "captured_at": "2026-11-13T19:37:59.620Z", "ccy": "USD", "buy": 1.276833, "sell": 1.300169, "mid": 1.288501, "spread_pct": 1.811, "official": 1.2863, "vs_official_pct": 0.171 } Every price is home currency per 1 unit of foreign currency. Banks that quote per 100 units (common for JPY) are converted to per-unit values.
Why boards differ
- Transfer vs cash. Banks print separate prices for electronic transfers and for bank notes, and cash spreads are usually wider. Each response has a
basisfield, and every bank in a country is compared on the same basis. - Margins. Each bank sets its own spread, and it can vary by currency.
- Timing. Some banks reprice every few minutes, others once a day.
bank_updated_atcarries the bank's own timestamp when it shows one.
Safety checks
Every captured figure is checked against the central bank's official rate before it is stored. A parsing error can't reach the API: a bank whose numbers fail the check keeps its last good board, with that board's capture time.
Finding codes
Country codes are ISO 3166 (sg, in, ae, gb...). Bank codes are listed on the bank codes page. Past boards are available with ?date=YYYY-MM-DD, and daily history is available on paid plans.
One of three layers
Bank boards make most sense alongside the other two layers, and AllRatesToday serves both from the same key:
- Official rates from 123 central banks and 6 tax authorities.
- Real-time mid-market rates for 160+ currencies, refreshed every 60 seconds.
As far as we know, no other API puts all three side by side.
Free key: allratestoday.com/register