NBRB Exchange Rate API: Official Belarusian Ruble Rates as JSON

Reviewed by Madhushan, Fintech Developer — August 2026

The National Bank of the Republic of Belarus publishes the official exchange rates that accounting, tax, and customs practice in Belarus reference — published official rates, not moving market prices. This guide shows how to pull them as JSON: via a REST endpoint or the zero-dependency nbrb-exchange-rate npm package.

USD → BYN — official National Bank of the Republic of Belarus official rate
Weekly observations, Aug '25 – Aug '26 · undefineds per 1 US dollar
2.8003Aug '25Nov '25Feb '26May '26Aug '262.9832025-08-24: 2.974 BYN2025-08-31: 2.977 BYN2025-09-07: 2.999 BYN2025-09-14: 3.097 BYN2025-09-21: 3.049 BYN2025-09-28: 3.037 BYN2025-10-05: 2.989 BYN2025-10-12: 3.003 BYN2025-10-19: 2.949 BYN2025-10-26: 2.983 BYN2025-11-02: 2.977 BYN2025-11-09: 2.978 BYN2025-11-16: 2.967 BYN2025-11-23: 2.959 BYN2025-11-30: 2.915 BYN2025-12-07: 2.896 BYN2025-12-14: 2.934 BYN2025-12-21: 2.962 BYN2025-12-28: 2.913 BYN2025-12-31: 2.903 BYN2026-01-04: 2.903 BYN2026-01-11: 2.955 BYN2026-01-18: 2.907 BYN2026-01-25: 2.847 BYN2026-02-01: 2.850 BYN2026-02-08: 2.862 BYN2026-02-15: 2.864 BYN2026-02-22: 2.852 BYN2026-03-01: 2.852 BYN2026-03-08: 2.901 BYN2026-03-15: 2.926 BYN2026-03-22: 3.018 BYN2026-03-29: 2.965 BYN2026-04-05: 2.937 BYN2026-04-12: 2.889 BYN2026-04-19: 2.833 BYN2026-04-26: 2.819 BYN2026-05-03: 2.823 BYN2026-05-10: 2.819 BYN2026-05-17: 2.770 BYN2026-05-24: 2.732 BYN2026-05-31: 2.760 BYN2026-06-07: 2.827 BYN2026-06-14: 2.772 BYN2026-06-21: 2.786 BYN2026-06-28: 2.823 BYN2026-07-05: 2.906 BYN2026-07-12: 2.861 BYN2026-07-19: 2.885 BYN2026-07-26: 2.885 BYN2026-08-02: 2.913 BYN2026-08-09: 2.939 BYN2026-08-16: 2.977 BYN2026-08-21: 2.983 BYN
Source: National Bank of the Republic of Belarus published rates · chart data from the AllRatesToday API (/api/v1/central-bank/nbrb/history?source=USD&target=BYN).

Set today, official tomorrow

The NBRB sets official rates each business day and they take effect the next calendar day — Friday’s setting is already Monday’s official rate, published in advance. Belarusian accounting and tax legislation convert at this official rate, so date attribution matters: the API stores each rate under the date it is official for, exactly as the bank publishes it.

Why official rates, not market rates

A live mid-market feed answers "what is USD/BYN trading at right now?" — the right tool for checkouts and dashboards. But accountants, auditors, and tax authorities ask a different question: "which rate were you required to use for this date?" That answer comes from the National Bank of the Republic of Belarus’s published rates, and it never changes after publication.

Get the latest rates (REST)

curl "https://allratestoday.com/api/v1/central-bank/nbrb/latest" \
  -H "Authorization: Bearer YOUR_API_KEY"

The response is the bank's most recent published table — every rate and the publication date. The latest rates are available on every plan, including the free tier (300 requests/month, no credit card).

The npm SDK

npm install nbrb-exchange-rate
import { getRate, getLatestRates } from 'nbrb-exchange-rate';

// One pair at the official rate
const pair = await getRate('USD', 'BYN', { apiKey: 'art_live_...' });
console.log(pair.rate, pair.rate_date);

// The bank's full published table
const table = await getLatestRates({ apiKey: 'art_live_...' });
console.log(table.rate_date, table.rates.length);

Zero dependencies, TypeScript types included, and it runs anywhere fetch exists — Node 18+, Bun, Deno, and edge runtimes.

Historical rates for an invoice date

import { getRatesForDate, getHistory } from 'nbrb-exchange-rate';

const day = await getRatesForDate('2026-08-18', { apiKey: 'art_live_...' });

const series = await getHistory(
  { source: 'USD', target: 'BYN', from: '2026-01-01' },
  { apiKey: 'art_live_...' }
);

Historical dates and time series need a paid plan; the latest rates stay free.

Published vs derived pairs

If the National Bank of the Republic of Belarus does not print a pair directly, the API resolves it from the bank's published rates — an inverse, or a cross via BYN — and flags it derived: true with the method used. Official and computed values are never silently mixed, which is exactly the distinction an auditor will ask about.

The archive

The archive is loaded from July 2016 — the start of the current (post-redenomination) ruble, so the stored series is one continuous unit with no 10,000:1 breaks inside it.

FAQ

Does the National Bank of the Republic of Belarus have an official exchange rate API?

The bank publishes its official rates on its own site, and AllRatesToday serves the same published rates as clean JSON via REST or the nbrb-exchange-rate npm package. The latest table is free.

How do I get the official Belarus exchange rate for a past date?

The rates-for-date endpoint returns the official table for any archived date; non-publication days resolve to the most recent published date and are flagged, so audit trails stay honest. Historical dates require a paid plan; latest rates are free.

Why does the API sometimes return a rate dated tomorrow?

Because the bank publishes it today: NBRB rates are set in the afternoon and are official for the following calendar day. The forward-dated value is the official rate for that date.

Official National Bank of the Republic of Belarus rates, as JSON

The latest rates are free — 300 requests/month, no credit card.

Get your free API key

Related Articles