API MDL.md

Бесплатный REST API курсов валют, кредитов и депозитов Молдовы.

Все ответы в формате JSON. API публичный, не требует ключа и может вызываться прямо из браузера или сервера. Пожалуйста, указывайте источник «MDL.md» при использовании данных.

Основные сведения

Базовый URL https://mdl.md/api/v1
Формат JSON (Content-Type: application/json; charset=utf-8)
Аутентификация Не требуется — публичный API.
CORS Access-Control-Allow-Origin: * · открыт для всех источников.
Версия X-API-Version: v1

Каждый ответ содержит булево поле success. При ошибке поле error описывает проблему, а HTTP-код равен 4xx или 5xx.

{
  "success": true,
  ...
}

{
  "success": false,
  "error": "Currency not found or no rates for this date"
}

Ограничение запросов

Лимит составляет 300 запросов в час на один IP-адрес. Каждый ответ содержит заголовки ниже.

Заголовок Описание
X-RateLimit-Limit Максимум запросов в час (300).
X-RateLimit-Remaining Осталось запросов в текущем окне.
X-RateLimit-Reset Unix-время сброса лимита.
Retry-After Секунды ожидания (отправляется только при коде 429).

При превышении лимита API отвечает кодом HTTP 429 и заголовком Retry-After: 3600.

Эндпоинты

GET /api/v1/rates

Официальный курс НБМ на сегодня или указанную дату.

ПараметрТипОписание
datestringДата, необязательно (YYYY-MM-DD). По умолчанию: сегодня.

Поля ответа: success, date, source (BNM), rates[]currency, rate, nominal, change, change_percent.

curl "https://mdl.md/api/v1/rates"
curl "https://mdl.md/api/v1/rates?date=2026-07-01"
GET /api/v1/rates/{date}

Официальный курс НБМ на конкретную дату, с названиями валют.

ПараметрТипОписание
datestringДата в пути запроса (YYYY-MM-DD)

Поля ответа: success, date, source, rates[]currency, rate, nominal, change_value, change_percent, name_ro, name_ru, name_en.

curl "https://mdl.md/api/v1/rates/2026-07-01"
GET /api/v1/rates/commercial

Коммерческие курсы банков (покупка/продажа) по типу операции.

ПараметрТипОписание
datestringДата, необязательно (YYYY-MM-DD). По умолчанию: сегодня.
regionstringФильтр по региону, необязательно.
typestringcash | card | transfer. По умолчанию: cash.

Поля ответа: success, date, type, count, data[].

curl "https://mdl.md/api/v1/rates/commercial?type=cash"
GET /api/v1/convert

Конвертирует сумму из одной валюты в другую по курсу НБМ.

ПараметрТипОписание
fromstringИсходная валюта (EUR). По умолчанию: EUR
tostringЦелевая валюта (MDL). По умолчанию: MDL
amountnumberСумма для конвертации, должна быть положительной. По умолчанию: 1
datestringДата, необязательно (YYYY-MM-DD). По умолчанию: сегодня.

Поля ответа: success, data. Возвращает 400, если сумма не положительна, и 404, если валюта не найдена или нет курсов на дату.

curl "https://mdl.md/api/v1/convert?from=EUR&to=MDL&amount=100"
GET /api/v1/banks

Список активных банков и обменных касс с координатами для карты.

Без параметров.

Поля ответа: success, count, data[]id, name, slug, type, website, city, region, latitude, longitude, is_24h.

curl "https://mdl.md/api/v1/banks"
GET /api/v1/history/{currency}

История курса НБМ и коммерческое среднее по валюте.

ПараметрТипОписание
currencystringКод валюты в пути запроса (EUR, USD…)
daysintegerКоличество дней (1–365). По умолчанию: 30

Поля ответа: success, currency, days, bnm[], commercial_avg[].

curl "https://mdl.md/api/v1/history/EUR?days=30"
GET /api/v1/credits

Кредитные продукты банков с фильтрами и сортировкой.

ПараметрТипОписание
typestringcredit | mortgage | auto | express | all. По умолчанию: all
amountintegerСумма кредита (минимум 1000), необязательно.
termintegerСрок в месяцах, необязательно (1–360)
term_daysintegerТочный срок в днях (экспресс-продукты), необязательно (1–365)
sortstringdae | rate | payment | overpayment. По умолчанию: dae
salary_cardboolean1 для клиентов с зарплатной картой, необязательно.

Поля ответа: success, count, filters, data[].

curl "https://mdl.md/api/v1/credits?type=credit&amount=100000&term=36&sort=dae"
GET /api/v1/deposits

Депозитные продукты банков с фильтрами и сортировкой.

ПараметрТипОписание
currencystringMDL | USD | EUR. По умолчанию: MDL
typestringterm | savings | demand | accumulative | children | all. По умолчанию: all
amountintegerСумма депозита (минимум 100), необязательно.
termintegerСрок в месяцах, необязательно (1–360)
sortstringeffective | rate | term | amount | bank. По умолчанию: effective

Поля ответа: success, count, filters, data[].

curl "https://mdl.md/api/v1/deposits?currency=MDL&type=term&sort=effective"
POST /api/v1/track-click

Регистрирует событие клика (внутреннее использование, вызывается сайтом).

Тело JSON (Content-Type: application/json):

ПараметрТипОписание
event_typestringОбязательно: ad | credit_detail | credit_apply
target_idintegerНеобязательно
target_labelstringНеобязательно
target_urlstringНеобязательно
page_urlstringНеобязательно

Поля ответа: success.

curl -X POST "https://mdl.md/api/v1/track-click" \
  -H "Content-Type: application/json" \
  -d '{"event_type":"ad","target_label":"leaderboard","page_url":"/ro"}'