Bank of Russia API

Free to Use Varies (check documentation)

Overview

The Bank of Russia XML API provides official daily exchange rates for foreign currencies against the Russian Ruble, published by the Central Bank of the Russian Federation. No authentication is required and the data is freely accessible via a simple XML endpoint. It is ideal for Russian financial applications, accounting software, or compliance tools that need official CBR exchange rates.

💡

Beginner Tip

The API returns XML not JSON. Use an XML parser in your language of choice. The main endpoint returns today's rates at https://www.cbr.ru/scripts/XML_daily.asp. For a specific date, add the parameter ?date_req=DD/MM/YYYY.

Available Data

exchange rate between currencies
conversion result
supported currency list
historical rates

Example Response

JSON Response
{
  "base": "USD",
  "date": "2025-01-15",
  "rates": {
    "EUR": 0.92,
    "GBP": 0.79,
    "JPY": 149.5,
    "CAD": 1.35
  }
}

Field Reference

Valute.CharCode Three-letter ISO currency code (e.g. USD, EUR).
Valute.Name Full name of the currency in Russian (e.g. US Dollar).
Valute.Value Exchange rate of one unit of the foreign currency in Russian Rubles, using a comma as the decimal separator.
Valute.Nominal The number of foreign currency units the rate applies to (e.g. 1 for USD, 100 for JPY).

Implementation Example

const url = "https://www.cbr.ru/development/SXML/";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

Cannot parse response as JSON The API returns XML format, not JSON
Use an XML parsing library such as xml2js in Node.js or ElementTree in Python. Do not call JSON.parse on the response.
Wrong date format returns error or empty data The date parameter requires DD/MM/YYYY format, not YYYY-MM-DD
Use the format 15/04/2024 not 2024-04-15 when querying historical rates.
CORS error in browser cbr.ru does not set CORS headers for browser requests
Fetch the data from your own backend server and expose the rates as JSON to your front end.

Matrix Score Breakdown

🌐 Reachability 30/30
⚡ Speed 10/20
🔒 Security 15/15
🛠 Developer XP 15/20
✓ Reliability 7/15
Response Time 653ms

Fully tested on Apr 5, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Difficulty Beginner
Verified: 2026-04-04

Similar APIs

View All →