Documentație API Public

Acces programatic la datele cursului valutar BNR.

Informații Generale

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

Limită de Acces (Rate Limiting)

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ă."
}
Parametri
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.
Exemple de Utilizare
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ă."
}
Conversie valutară

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 din din exprimată în in.
  • 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.