API MDL.md
API REST gratuit pentru cursuri valutare, credite si depozite din Moldova.
Notiuni de baza
| URL de baza | https://mdl.md/api/v1 |
|---|---|
| Format | JSON (Content-Type: application/json; charset=utf-8) |
| Autentificare | Nu este necesara — API public. |
| CORS | Access-Control-Allow-Origin: * · deschis pentru toate originile. |
| Versiune | X-API-Version: v1 |
Fiecare raspuns contine campul boolean success. In caz de eroare, campul error descrie problema, iar codul HTTP este 4xx sau 5xx.
{
"success": true,
...
}
{
"success": false,
"error": "Currency not found or no rates for this date"
}
Limita de cereri
Limita este de 300 cereri pe ora pentru fiecare adresa IP. Fiecare raspuns include anteturile de mai jos.
| Antet | Descriere |
|---|---|
X-RateLimit-Limit |
Numarul maxim de cereri pe ora (300). |
X-RateLimit-Remaining |
Cereri ramase in fereastra curenta. |
X-RateLimit-Reset |
Timestamp Unix cand se reseteaza limita. |
Retry-After |
Secunde de asteptare (trimis doar la codul 429). |
La depasirea limitei, API-ul raspunde cu codul HTTP 429 si antetul Retry-After: 3600.
Endpoint-uri
/api/v1/rates
Cursul oficial BNM pentru ziua curenta sau o data specificata.
| Parametru | Tip | Descriere |
|---|---|---|
date | string | Data, optional (YYYY-MM-DD). Implicit: ziua curenta. |
Campuri in raspuns: 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"
/api/v1/rates/{date}
Cursul oficial BNM pentru o data anume, cu denumirile valutelor.
| Parametru | Tip | Descriere |
|---|---|---|
date | string | Data ceruta in cale (YYYY-MM-DD) |
Campuri in raspuns: 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"
/api/v1/rates/commercial
Cursurile comerciale ale bancilor (cumparare/vanzare) pe tip de operatiune.
| Parametru | Tip | Descriere |
|---|---|---|
date | string | Data, optional (YYYY-MM-DD). Implicit: ziua curenta. |
region | string | Filtrare dupa regiune, optional. |
type | string | cash | card | transfer. Implicit: cash. |
Campuri in raspuns: success, date, type, count, data[].
curl "https://mdl.md/api/v1/rates/commercial?type=cash"
/api/v1/convert
Converteste o suma dintr-o valuta in alta la cursul BNM.
| Parametru | Tip | Descriere |
|---|---|---|
from | string | Valuta sursa (EUR). Implicit: EUR |
to | string | Valuta tinta (MDL). Implicit: MDL |
amount | number | Suma de convertit, trebuie sa fie pozitiva. Implicit: 1 |
date | string | Data, optional (YYYY-MM-DD). Implicit: ziua curenta. |
Campuri in raspuns: success, data. Returneaza 400 daca suma nu este pozitiva si 404 daca valuta lipseste sau nu exista cursuri pentru data.
curl "https://mdl.md/api/v1/convert?from=EUR&to=MDL&amount=100"
/api/v1/banks
Lista bancilor si caselor de schimb active, cu coordonate pentru harta.
Fara parametri.
Campuri in raspuns: success, count, data[] → id, name, slug, type, website, city, region, latitude, longitude, is_24h.
curl "https://mdl.md/api/v1/banks"
/api/v1/history/{currency}
Istoricul cursului BNM si media comerciala pentru o valuta.
| Parametru | Tip | Descriere |
|---|---|---|
currency | string | Codul valutei in cale (EUR, USD…) |
days | integer | Numarul de zile (1–365). Implicit: 30 |
Campuri in raspuns: success, currency, days, bnm[], commercial_avg[].
curl "https://mdl.md/api/v1/history/EUR?days=30"
/api/v1/credits
Produse de creditare de la banci, cu filtre si sortare.
| Parametru | Tip | Descriere |
|---|---|---|
type | string | credit | mortgage | auto | express | all. Implicit: all |
amount | integer | Suma creditului (minim 1000), optional. |
term | integer | Termen in luni, optional (1–360) |
term_days | integer | Termen exact in zile (produse express), optional (1–365) |
sort | string | dae | rate | payment | overpayment. Implicit: dae |
salary_card | boolean | 1 pentru clienti cu card salarial, optional. |
Campuri in raspuns: success, count, filters, data[].
curl "https://mdl.md/api/v1/credits?type=credit&amount=100000&term=36&sort=dae"
/api/v1/deposits
Produse de depozit de la banci, cu filtre si sortare.
| Parametru | Tip | Descriere |
|---|---|---|
currency | string | MDL | USD | EUR. Implicit: MDL |
type | string | term | savings | demand | accumulative | children | all. Implicit: all |
amount | integer | Suma depozitului (minim 100), optional. |
term | integer | Termen in luni, optional (1–360) |
sort | string | effective | rate | term | amount | bank. Implicit: effective |
Campuri in raspuns: success, count, filters, data[].
curl "https://mdl.md/api/v1/deposits?currency=MDL&type=term&sort=effective"
/api/v1/track-click
Inregistreaza un eveniment de click (uz intern, apelat de site).
Corp JSON (Content-Type: application/json):
| Parametru | Tip | Descriere |
|---|---|---|
event_type | string | Obligatoriu: ad | credit_detail | credit_apply |
target_id | integer | Optional |
target_label | string | Optional |
target_url | string | Optional |
page_url | string | Optional |
Campuri in raspuns: 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"}'
