oneapi
Sign in
Financiar v1 / Curs

Currencies quoted by NBR

The currency code list: code, name, the period they were quoted over and their status. It can be filtered with ?stare=activa or ?stare=delistata. It answers the question the other routes leave open: what can be asked for, and for which period.

GET
https://oneapi.ro/api/financiar/v1/valute

Query parameters

NameTypeDescriptionAccepted values
stareoptional string | null Optional filter: activa (currently quoted) or delistata. activadelistata

How it behaves

  • Every currency ever quoted by NBR (40), with the period it was quoted in and its status.
  • The point of this route is to answer BEFORE a 404: without it, a request for /curs/BGN returns "no longer quoted" and the client has no way of knowing it should have asked with a past date. Here it sees stare: "delistata" and ultima_data.
  • stare uses exactly the rule of the point query, so a currency marked activa here is one for which /curs/{cod} works today.
  • The names follow ISO 4217 and are held by the module: NBR publishes only the code and the multiplier, with no labels.
  • Two codes are NOT currencies: XAU (gold, quoted per GRAM, not per ounce) and XDR (special drawing rights, the IMF unit of account). NBR publishes them in the same table; este_moneda separates them, so a currency selection list can exclude them.

What it is for

  • Populating a currency selection list.
  • Checking the period for which a currency's rate can be requested.

Response structure

FieldTypeDescription
data.valute[].cod string The three-letter ISO 4217 code.
data.valute[].denumire string | null The name in Romanian.
data.valute[].este_moneda boolean false for XAU and XDR, which are gold and a unit of account, not currencies.
data.valute[].multiplicator integer How many units the published quote covers (1 or 100). Constant across the whole history of the currency.
data.valute[].stare string activa = currently quoted; delistata = no longer quoted, but the history remains available.
data.valute[].prima_data string The first day the currency was quoted.
data.valute[].ultima_data string The last day it was quoted. For active currencies, the last published banking day.
data.valute[].zile_cotate integer How many days it has a quote for in total.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.valute integer Currencies covered by the response.
meta.denumiri string
meta.nota string A note on how to read the response — a pitfall, a convention or a limit of the source.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/valute
{
    "data": {
        "valute": [
            {
                "cod": "AED",
                "denumire": "Dirham Emiratele Arabe Unite",
                "este_moneda": true,
                "multiplicator": 1,
                "stare": "activa",
                "prima_data": "2009-03-02",
                "ultima_data": "2026-09-21",
                "zile_cotate": 4423
            }
        ]
    },
    "meta": {
        "sursa": "Banca Naţională a României",
        "valute": 40,
        "denumiri": "ISO 4217",
        "nota": "Valutele delistate rămân în listă: cotaţiile lor istorice se pot cere cu o dată din perioada de activitate."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validarestare has a value other than activa or delistata.
429cota_depasitaThe plan's monthly quota has been exceeded (see Retry-After).

All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "stare has a value other than activa or delistata.",
        "detalii": {
            "stare": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}