oneapi
Sign in
Financiar v1 / Registre

A register's records

The records of one class, with the fields named from the catalogue and with the type of each. The raw code comes alongside the name: translatable without becoming untraceable.

All nine classes have complete names, plus a unit saying what kind of value it is — txt, cod, %, zile, dd.mm.yyyy, million RON. That way, RICO_STARE comes out as „Status code (A – Active / R – Struck off)", with type cod.

The field order follows the catalogue, not the source's JSON: the latter can differ from row to row, which would make two records of the same class look structurally different.

The record order is reverse chronological — for a register, „what was registered last" is the usual question, unlike a series, where the natural order is chronological.

cauta goes through every field at once: whoever is looking for an institution knows the name, not the field it is written in.

On the classes flagged diacritice_pierdute, a search for a word containing ș or ț may find nothing — the values hold ?. That is not missing data but the way the source publishes it.

GET
https://oneapi.ro/api/financiar/v1/registre/{cid}

Path parameters

NameTypeDescriptionExample
cidrequired string Identifier of the register-type class in the NBR catalogue. The full list is at /financiar/v1/registre.

Query parameters

NameTypeDescriptionAccepted values
de_laoptional string | null Optional, YYYY-MM-DD. e.g. 2001-12-17e.g. 2000-10-26
pana_laoptional string | null Optional, YYYY-MM-DD. e.g. 2025-06-30e.g. 2009-09-10
cautaoptional string | null Optional, 2–64 characters. Searches every field at once. max 64 car.
paginaoptional integer | null Optional, defaults to 1. 1
per_paginaoptional integer | null Optional, defaults to 50, maximum 500. 1

How it behaves

  • A class's records, with the fields named from the catalogue and each one's type. The raw code sits beside the name: translatable without becoming untraceable.
  • All nine classes carry complete names, plus a unit saying what kind of value it is — txt, cod, %, zile, zz.ll.aaaa, milioane RON. So RICO_STARE comes out as "Cod stare (A – Active/ R – Radiate)", of type cod.
  • Field order follows the catalogue, not the source JSON. The latter comes from how the import serialised it and can differ between rows, which would make two records of the same class look like different structures.
  • Records come newest first — in a register, "what was entered last" is the usual question, unlike a series, where the natural order is chronological.
  • A field absent from a row does not appear in campuri: registers have optional fields, and a row with every key present and half of them null would suggest the values were measured and came back empty.
  • cauta searches every field at once: whoever is looking for an institution knows the name, not the field it is written in.
  • In classes flagged diacritice_pierdute, a search for a word containing ș or ț may find nothing — the values hold ?. That is not missing data, it is how the source publishes it.
  • For an instantaneu class, filtering to a single day gives that day's list — the shape in which the data makes sense.
  • pagina and per_pagina are validated: a per_pagina=abc gets a 422, not a one-row page. Above 500 it is clamped to 500, and meta.paginare reports the effective value.

What it is for

  • The list of payment institutions registered with the NBR, with each one's status.
  • Money-market auction results, with the fields explained.
  • The assets eligible as collateral on a given date.

Response structure

FieldTypeDescription
data.clasa object The class description, the same as on /registre.
data.clasa.cid integer
data.clasa.denumire string The name, exactly as the source publishes it.
data.clasa.campuri integer All the class's fields, with name and type — including those absent from the returned rows.
data.clasa.inregistrari integer
data.clasa.zile integer Number of days covered.
data.clasa.acoperire.de_la string Start of the covered interval.
data.clasa.acoperire.pana_la string End of the covered interval, inclusive.
data.clasa.forma string Legal form or form of organisation.
data.clasa.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.clasa.ruta_dedicata null
data.clasa.diacritice_pierdute boolean
data.campuri[].cod string Code from the source code list — the key you filter on.
data.campuri[].nume string The name, exactly as the source publishes it.
data.campuri[].tip string
data.de_la null Start of the interval the response covers.
data.pana_la null End of the interval the response covers, inclusive.
data.cauta null
data.inregistrari[].data string The record's date.
data.inregistrari[].perioada string The period the value refers to.
data.inregistrari[].linie integer Which record of that day. The key is the date plus this line number.
data.inregistrari[].campuri[].cod string The NBR field code.
data.inregistrari[].campuri[].nume string The name from the catalogue.
data.inregistrari[].campuri[].tip string What kind of value it is: txt, cod, %, zile, zz.ll.aaaa, milioane RON.
data.inregistrari[].campuri[].valoare string The value published by the source for the combination above.
meta.sursa string The official source the data comes from, with its licence where one is required.
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.
meta.nota_ordine string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.registre string

Response examples

GEThttps://oneapi.ro/api/financiar/v1/registre/803
{
    "data": {
        "clasa": {
            "cid": 803,
            "denumire": "Operaţiuni de piaţă monetară ale BNR - Licitaţii repo",
            "campuri": 6,
            "inregistrari": 204,
            "zile": 201,
            "acoperire": {
                "de_la": "2001-12-17",
                "pana_la": "2025-06-30"
            },
            "forma": "intrari",
            "nota": "Câte o licitaţie repo pe zi de şedinţă.",
            "ruta_dedicata": null,
            "diacritice_pierdute": false
        },
        "campuri": [
            {
                "cod": "REPO_DBMAX",
                "nume": "Rata dobânzii acceptată maximă",
                "tip": "%p.a."
            }
        ],
        "de_la": null,
        "pana_la": null,
        "cauta": null,
        "inregistrari": [
            {
                "data": "2025-06-30",
                "perioada": "2025-06-30",
                "linie": 1,
                "campuri": [
                    {
                        "cod": "REPO_DBMAX",
                        "nume": "Rata dobânzii acceptată maximă",
                        "tip": "%p.a.",
                        "valoare": "6.5"
                    }
                ]
            }
        ]
    },
    "meta": {
        "sursa": "Banca Naţională a României — baza de date interactivă.",
        "paginare": {
            "pagina": 1,
            "per_pagina": 50,
            "total": 204,
            "pagini": 5
        },
        "nota_ordine": "Înregistrările vin de la cea mai recentă. Câmpurile urmează ordinea din catalog, nu pe cea din JSON-ul sursei, care poate diferi de la un rând la altul.",
        "registre": "/financiar/v1/registre"
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitNo class with the requested identifier.
422validareA malformed date, pana_la before de_la, or cauta under two 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": "A malformed date, pana_la before de_la, or cauta under two characters.",
        "detalii": {
            "cid": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}