oneapi
Sign in
Financiar v1 / Serii

NBR series catalogue

The 5,906 time series in the interactive database, filterable by class, periodicity, freshness state or by text in the name or code. Paginated.

stare comes from the same freshness view used by /meta: curenta, pare_in_urma or incheiata — so a series marked current here is one that is still receiving new data.

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

Query parameters

NameTypeDescriptionAccepted values
clasaoptional string | null Filter on the class name, partial match, diacritic-insensitive. max 120 car.
periodicitateoptional string | null zilnic, saptamanal, lunar, trimestrial, semestrial, anual. zilniclunartrimestrialsemestrialanualsaptamanal
stareoptional string | null curenta, pare_in_urma, incheiata, fara_valori. curentapare_in_urmaincheiatafara_valori
qoptional string | null Text in the name or a code prefix. At least 2 characters. max 80 car.
paginaoptional integer | null Defaults to 1. 1
per_paginaoptional integer | null Defaults to 20, maximum 100. 1

How it behaves

  • The catalogue of series from the NBR interactive database, filterable by class, periodicity, freshness state, or text in the name or code. Paginated.
  • The catalogue holds TIME series only. The nine register-type classes — credit institutions, government securities issues, eligible assets — have a different structure, with fields of their own per class, and cannot be poured into the same shape. meta.registre_excluse counts the 145 field descriptors left out, so the absence is an announced boundary; their records have a route of their own, /financiar/v1/registre.
  • stare comes from the same freshness view used by /meta: curenta (still receiving new data), pare_in_urma (the source has published more recently than we hold), incheiata (the series no longer grows). So the verdict is the same everywhere in the module.
  • A fourth state, fara_valori: 521 series that NBR announces in the catalogue and never fills in — SDDS PLUS templates. They do not appear in the freshness view at all, so they used to come out as stare: null, an undeclared state. They now have a name, so they can be both found (?stare=fara_valori) and excluded. numar_valori is 0 for all of them.
  • Search ignores diacritics: ?q=dobanzi and ?q=dobânzi return the same result. NBR names carry diacritics, and someone typing without them is not wrong — without this normalisation the filter would return zero and the data would appear to be missing.
  • The ?q= filter searches the name AND matches as a code prefix, so ?q=BBZ returns the family of daily series.
  • pagina and per_pagina are validated; above 100 they are clamped to 100, and meta.paginare reports the effective value.

What it is for

  • Discovering the series available on a topic.
  • Finding a series code before requesting its values.

Response structure

FieldTypeDescription
data[].cod string The series code in the NBR database — the key for /serii/{cod} and /serii/{cod}/valori.
data[].nume string The series name.
data[].clasa string The class it belongs to, as the NBR groups it.
data[].unitate string The unit of measure as the source publishes it ((txt) for textual series).
data[].periodicitate string The series step; necunoscut where the source does not state it.
data[].prima_data null The earliest observation. null for series without values.
data[].ultima_data null The latest observation. null for series without values.
data[].numar_valori integer How many observations the series has.
data[].stare string cu_valori or fara_valori — the latter means the source publishes the series header with no observation under it.
data[].nota null A note specific to the series, where one exists. null otherwise.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.filtre array
meta.registre_excluse integer
meta.registre string
meta.nota string A note on how to read the response — a pitfall, a convention or a limit of the source.
meta.paginare.pagina integer Current page, counted from 1.
meta.paginare.per_pagina integer How many records a page holds.
meta.paginare.total integer Total matching records, beyond the current page.
meta.paginare.pagini integer How many pages the list has.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/serii?per_pagina=3
{
    "data": [
        {
            "cod": "AEDZ_DEN",
            "nume": "Monedă",
            "clasa": "Operaţiuni de piaţă monetară ale BNR - Active eligibile - diferenţe",
            "unitate": "(txt)",
            "periodicitate": "necunoscut",
            "prima_data": null,
            "ultima_data": null,
            "numar_valori": 0,
            "stare": "fara_valori",
            "nota": null
        }
    ],
    "meta": {
        "sursa": "Banca Naţională a României — baza de date interactivă.",
        "filtre": [],
        "registre_excluse": 145,
        "registre": "/financiar/v1/registre",
        "nota": "Catalogul conţine doar serii temporale. Clasele de tip registru (instituţii de credit, emisiuni de titluri de stat) au altă structură şi nu sunt expuse aici.",
        "paginare": {
            "pagina": 1,
            "per_pagina": 3,
            "total": 5779,
            "pagini": 1927
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validarePeriodicity or state outside the list (curenta, pare_in_urma, incheiata, fara_valori), search shorter than 2 characters.
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": "Periodicity or state outside the list (curenta, pare_in_urma, incheiata, fara_valori), search shorter than 2 characters.",
        "detalii": {
            "clasa": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}