L Cursul Valutar

API gratuit curs valutar BNR

Oferim un API JSON gratuit cu cursurile valutare oficiale publicate de Banca Națională a României. Nu necesită autentificare, nu are limită de request-uri și suportă CORS pentru acces din browser.

Vrei doar să afișezi cursul pe site, fără să scrii cod? Folosește widget-ul gratuit de preluare curs — copy-paste, gata în 30 de secunde.

Endpoint

GET https://cursul-valutar.ro/api/rates.json

Răspuns

Răspunsul este un obiect JSON cu structura de mai jos. Cursurile reflectă ultima publicare a BNR (de regulă din ziua curentă, după ora 13:00, în zilele bancare).

{
  "base": "RON",
  "source": "BNR",
  "date": "2026-08-14",
  "rates": [
    {
      "currency": "EUR",
      "name": "Euro",
      "value": 4.977,
      "multiplier": 1,
      "perUnit": 4.977,
      "change": 0.0005,
      "changePct": 0.01
    },
    {
      "currency": "USD",
      "name": "Dolar american",
      "value": 4.521,
      "multiplier": 1,
      "perUnit": 4.521,
      "change": -0.012,
      "changePct": -0.27
    }
  ]
}

Câmpuri

Câmp Tip Descriere
basestringMoneda de bază (întotdeauna "RON")
sourcestringSursa datelor ("BNR")
datestring | nullData publicării (YYYY-MM-DD) sau null
ratesarrayLista de cursuri (vezi mai jos)

Fiecare element din rates:

Câmp Tip Descriere
currencystringCodul ISO al valutei (ex: "EUR")
namestringNumele valutei în română
valuenumberValoarea publicată de BNR pentru multiplier unități
multipliernumberNumărul de unități (1 pentru EUR/USD, 100 pentru HUF/JPY)
perUnitnumberValoarea per unitate (value / multiplier)
changenumber | nullVariație absolută față de ziua anterioară
changePctnumber | nullVariație procentuală față de ziua anterioară

Exemple de utilizare

JavaScript / Node.js

const res = await fetch("https://cursul-valutar.ro/api/rates.json");
const data = await res.json();

const eur = data.rates.find(r => r.currency === "EUR");
console.log(`Curs EUR: ${eur.perUnit} RON`);

Python

import requests

data = requests.get("https://cursul-valutar.ro/api/rates.json").json()
eur = next(r for r in data["rates"] if r["currency"] == "EUR")
print(f"Curs EUR: {eur['perUnit']} RON")

cURL

curl -s https://cursul-valutar.ro/api/rates.json | python3 -m json.tool

CORS și cache

API-ul permite acces cross-origin (Access-Control-Allow-Origin: *), deci poate fi apelat direct din browser, fără proxy. Răspunsul este cache-at public pentru 5 minute (max-age=300).

Condiții de utilizare

Datele provin din sursele oficiale publicate de BNR și sunt oferite „ca atare" (as is), fără garanții. Folosirea API-ului este gratuită atât pentru proiecte personale, cât și comerciale. Singurul lucru pe care vi-l cerem: un link de atribuire către cursul-valutar.ro dacă datele sunt afișate public.