💱 API Курсов Валют НБТ

Официальные курсы иностранных валют к таджикскому сомони

📋 Обзор API

База URL: https://nbt.tj/ru/kurs/rate_export.php

Метод: GET (только чтение)

Формат: JSON (UTF-8)

Частота обновления: Ежедневно

🔒 Правила использования:
  • API имеет ограничения по частоте запросов
  • Рекомендуется использовать HTTPS
  • При превышении лимита запросов вернётся ошибка
  • Не рекомендуется делать частые повторные запросы

🚀 Быстрый старт

Примеры запросов:

Последний курс Только USD За месяц

🔗 Конечные точки (Endpoints)

GET /rate_export.php

Описание: Все валюты за последнюю дату

GET /rate_export.php?date={DD.MM.YYYY}

Пример: ?date=05.02.2026

GET /rate_export.php?currency={код}

Пример: ?currency=840 (USD)

GET /rate_export.php?period={period}

Периоды: year, half_year, quarter, month, week

GET /rate_export.php?date_from={DD.MM.YYYY}&date_to={DD.MM.YYYY}

Пример: ?date_from=01.01.2026&date_to=31.01.2026

⚙️ Параметры запроса

Параметр Описание Пример
date Дата в формате DD.MM.YYYY 05.02.2026
currency Код валюты (3 цифры) 840, 978, 810
period Период: year, half_year, quarter, month, week month
date_from / date_to Диапазон дат 01.01.2026 / 31.01.2026

💰 Примеры кодов валют

Код Валюта
840 Доллар США (USD)
978 Евро (EUR)
810 Российский рубль (RUB)

Полный список доступен на сайте НБТ

📦 Структура ответа

Успешный ответ:

{
  "success": true,
  "period_info": {
    "type": "single",
    "date": "05.02.2026"
  },
  "currency": "TJS",
  "total_records": 35,
  "data": [
    {
      "id": 12345,
      "Code": "840",
      "CcyNm_RU": "Доллар США",
      "Nominal": "1",
      "Rate": "12.5432",
      "Date": "05.02.2026"
    }
  ]
}

⚠️ Коды ответов

Код Описание
200 Успешный запрос
400 Неверные параметры
404 Данные не найдены
429 Слишком много запросов
500 Ошибка сервера

💻 Примеры использования

JavaScript:

fetch('https://nbt.tj/ru/kurs/rate_export.php?currency=840')
  .then(response => response.json())
  .then(data => {
    if (data.success) {
      console.log('Курс USD:', data.data[0].Rate);
    }
  });

Python:

import requests

r = requests.get('https://nbt.tj/ru/kurs/rate_export.php?period=week')
data = r.json()

if data['success']:
    for rate in data['data']:
        print(f"{rate['CcyNm_RU']}: {rate['Rate']}")
⚠️ Важное примечание: Курс установлен без учёта обязательств Национального банка Таджикистана о покупке или продаже указанных валют по этой цене.

💱 NBT Exchange Rates API

Official foreign currency exchange rates to Tajik Somoni

📋 API Overview

Base URL: https://nbt.tj/en/kurs/rate_export.php

Method: GET (read-only)

Format: JSON (UTF-8)

Update frequency: Daily

🔒 Usage Rules:
  • API has rate limiting in place
  • HTTPS recommended
  • Error returned when limit exceeded
  • Avoid frequent repeated requests

🚀 Quick Start

Example Requests:

Latest Rates USD Only Monthly

🔗 Endpoints

GET /rate_export.php

Description: All currencies for latest date

GET /rate_export.php?date={DD.MM.YYYY}

Example: ?date=05.02.2026

GET /rate_export.php?currency={code}

Example: ?currency=840 (USD)

GET /rate_export.php?period={period}

Periods: year, half_year, quarter, month, week

GET /rate_export.php?date_from={DD.MM.YYYY}&date_to={DD.MM.YYYY}

Example: ?date_from=01.01.2026&date_to=31.01.2026

⚙️ Request Parameters

Parameter Description Example
date Date in DD.MM.YYYY format 05.02.2026
currency Currency code (3 digits) 840, 978, 810
period Period: year, half_year, quarter, month, week month
date_from / date_to Date range 01.01.2026 / 31.01.2026

💰 Example Currency Codes

Code Currency
840 US Dollar (USD)
978 Euro (EUR)
810 Russian Ruble (RUB)

Full list available on NBT website

📦 Response Structure

Successful Response:

{
  "success": true,
  "period_info": {
    "type": "single",
    "date": "05.02.2026"
  },
  "currency": "TJS",
  "total_records": 35,
  "data": [
    {
      "id": 12345,
      "Code": "840",
      "CcyNm_RU": "Доллар США",
      "Nominal": "1",
      "Rate": "12.5432",
      "Date": "05.02.2026"
    }
  ]
}

⚠️ Response Codes

Code Description
200 Successful request
400 Invalid parameters
404 Data not found
429 Too many requests
500 Server error

💻 Usage Examples

JavaScript:

fetch('https://nbt.tj/en/kurs/rate_export.php?currency=840')
  .then(response => response.json())
  .then(data => {
    if (data.success) {
      console.log('USD Rate:', data.data[0].Rate);
    }
  });

Python:

import requests

r = requests.get('https://nbt.tj/en/kurs/rate_export.php?period=week')
data = r.json()

if data['success']:
    for rate in data['data']:
        print(f"{rate['CcyNm_RU']}: {rate['Rate']}")
⚠️ Important: Exchange rates are set without NBT obligations to buy or sell currencies at these prices.