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

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

Metadata Score Breakdown

Estimated from metadata — endpoint not independently tested

This score is estimated from observable metadata — HTTPS support, authentication model, declared CORS, and documentation reachability — because the API requires authentication or exposes no publicly testable endpoint. The five-signal breakdown is only shown for live-tested APIs.

Metadata estimate · endpoint not independently tested

Technical Specifications

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

Similar APIs

View All →