Documentație API Public
Acces programatic la datele cursului valutar BNR.
Acest API public oferă o metodă simplă de a prelua cele mai recente cursuri de schimb valutar sau cursuri istorice pentru o anumită dată.
URL de bază: https://cursbnr.servicii-informatice.ro/api_public.php
Pentru a asigura o disponibilitate ridicată pentru toți utilizatorii, API-ul este limitat la 1 cerere pe secundă per adresă IP.
Limita se aplică pe adresa IP a apelantului și nu depinde de cookie-uri sau de sesiune.
Dacă depășiți această limită, veți primi un răspuns HTTP cu status 429 Too Many Requests, un antet Retry-After cu numărul de secunde de așteptare și un mesaj de eroare în format JSON.
{
"error": "Limită de cereri atinsă. Vă rugăm să așteptați o secundă."
}
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
action |
string | Nu | Acțiune specifică. Folosiți valoarea get_symbols pentru a obține lista tuturor simbolurilor disponibile. |
simbol |
string | Nu | Codul valutei de 3 litere (ex: EUR, USD, XAU). Dacă lipsește, se vor returna toate cursurile pentru data specificată. |
data |
string | Nu | Data pentru care se dorește cursul, în format YYYY-MM-DD. Dacă lipsește, se va folosi cea mai recentă dată disponibilă. |
suma |
number | Nu | Suma de convertit. Prezența acestui parametru activează modul conversie. Se acceptă și virgula ca separator zecimal. Alias: amount. |
din |
string | La conversie | Valuta din care se convertește (ex: EUR). Se acceptă și RON. Aliasuri: from, simbol. |
in |
string | Nu | Valuta în care se convertește. Implicit RON. Alias: to. |
1. Preluare ultimul curs pentru EUR
Cerere:
https://cursbnr.servicii-informatice.ro/api_public.php?simbol=EUR
Răspuns posibil:
{
"simbol": "EUR",
"valoare": "4.9773",
"data": "2024-05-21"
}
2. Preluare curs pentru USD la o dată specifică
Cerere pentru un singur simbol:
https://cursbnr.servicii-informatice.ro/api_public.php?simbol=USD&data=2024-01-15
Răspuns posibil (API-ul va returna cursul din 2024-01-15, deoarece a fost o zi lucrătoare):
{
"simbol": "USD",
"valoare": "4.5529",
"data": "2024-01-15"
}
3. Preluare toate cursurile pentru cea mai recentă dată
Cerere (fără parametrul simbol):
https://cursbnr.servicii-informatice.ro/api_public.php
Răspuns posibil:
{
"data": "2024-05-21",
"rates": {
"EUR": {
"valoare": "4.9773",
"multiplicator": 1
},
"USD": {
"valoare": "4.5883",
"multiplicator": 1
},
"XAU": {
"valoare": "356.5368",
"multiplicator": 1
}
// ... și celelalte valute
}
}
4. Preluare toate cursurile pentru o dată specifică
Cerere (doar cu data):
https://cursbnr.servicii-informatice.ro/api_public.php?data=2024-01-15
5. Preluare lista tuturor simbolurilor disponibile
Cerere:
https://cursbnr.servicii-informatice.ro/api_public.php?action=get_symbols
Răspuns posibil:
{
"symbols": [
"AED",
"AUD",
"BGN",
"BRL",
"CAD",
"CHF",
"CNY",
"CZK",
"DKK",
"EGP",
"EUR",
// ... și celelalte simboluri
]
}
6. Răspuns de eroare (simbol invalid)
Cerere:
https://cursbnr.servicii-informatice.ro/api_public.php?simbol=XYZ
Răspuns (cu status HTTP 404 Not Found):
{
"error": "Nu s-au găsit date pentru simbolul sau data specificată."
}
Același punct de acces face și conversii, la cursul oficial BNR. Modul conversie se activează
când trimiteți parametrul suma. Conversia se poate face între oricare două valute cotate
de BNR, precum și către sau dinspre RON.
Cum se calculează: suma este transformată mai întâi în lei la cursul valutei de plecare, apoi din lei în valuta de destinație. Ambele cursuri sunt luate din aceeași zi de publicare, ca un curs încrucișat să nu amestece două zile diferite. Multiplicatorul este aplicat automat (de exemplu cursul HUF este cotat la 100 de forinți).
Conversie în lei, la cursul zilei
https://cursbnr.servicii-informatice.ro/api_public.php?suma=100&din=EUR
Conversie între două valute (curs încrucișat)
https://cursbnr.servicii-informatice.ro/api_public.php?suma=100&din=EUR&in=USD
Răspuns posibil:
{
"suma": "100.0000",
"din": "EUR",
"in": "USD",
"rezultat": "117.0462",
"curs": "1.170462",
"in_lei": "525.3500",
"data": "2026-08-20",
"detalii": {
"EUR": { "valoare": "5.2535", "multiplicator": 1, "ron_pe_unitate": "5.253500" },
"USD": { "valoare": "4.4884", "multiplicator": 1, "ron_pe_unitate": "4.488400" }
}
}
Conversie la cursul unei zile din trecut
https://cursbnr.servicii-informatice.ro/api_public.php?suma=100&din=EUR&in=USD&data=2024-01-15
Dacă data cerută este weekend sau zi liberă, se folosește cursul din ultima zi lucrătoare
anterioară, iar câmpul data din răspuns arată ziua efectiv folosită.
Câmpurile din răspuns
rezultat— suma convertită, cu 4 zecimale.curs— cursul încrucișat folosit: cât valorează o unitate dindinexprimată înin.in_lei— suma exprimată în lei, pasul intermediar al calculului.data— ziua de publicare BNR folosită efectiv.detalii— cursurile brute ale celor două valute, cu multiplicatorul și valoarea per unitate.