oneapi
Sign in
Financiar v1 / Registre

NBR registers

The nine register-type classes, with a few thousand records between them (the exact count, per class, is in the response): money market tenders, government securities issues and exchanges, eligible assets, and the registers of credit and payment institutions. The series catalogue excludes them, because they do not have the shape of a time series — one row carries several fields at once, and the fields differ from one class to another.

The shape of each class is declared, not inferred. intrari means every row is an event on its date — a tender, a registration. instantaneu means the whole list, republished at each date: the eligible-asset rows are the same list of about 114 positions, repeated at every published date — six dates already make almost 700 rows. Read as history, they would look like as many events.

Two classes already have a dedicated route, where the same data comes translated into named structures: ruta_dedicata says so, to keep anyone from reimplementing what is already done.

Diacritics are missing at source in two registers — diacritice_pierdute flags them. About one record in five, for both payment and credit institutions, contains ? instead of ș or ț. Verified on the raw artefact: the header of the same class has the diacritics correct in the same file, so it is not our transport. We do not repair them: an automatic reconstruction would hit „opera?iuni" and would ruin a proper name at the first opportunity.

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

Query parameters

This route accepts no query parameters.

How it behaves

  • The eight register-type classes, holding a few thousand records between them (the exact count, per class, is in the response): money-market auctions (repo, reverse repo, deposits), government securities issues and exchanges, eligible assets, and the registers of credit and payment institutions.
  • The series catalogue excludes them because they do not have the shape of a time series: one row carries several fields at once, and the fields differ from class to class. meta.registre_excluse on /serii counts the 145 field descriptors left out; their records are here.
  • Each class's shape is declared, not inferred. intrari means every row is an event on its date — an auction, a registration. instantaneu means the whole list, republished on every date: the eligible-asset rows are the same list of about 114 positions, repeated at every published date — six dates already make almost 700 rows. Read as history, they would look like as many events.
  • The shape could be guessed from rows per day — six classes sit between 1 and 3.6, while 1147 has 114 — but a heuristic would mislabel the first class that deviates, and the label lands in the response as fact. Nine hand-written entries cost less. Class 1987 (e-money issuers) was the opposite case: six registrations, one per date, so it looked like a series — and until 16 September that is how it was imported, with the tax IDs served as values.
  • Two classes already have a dedicated route, where the same data comes translated into named structures: securities issues at /titluri-stat/emisiuni, credit institutions at /banci. ruta_dedicata says so, so nobody reimplements what is already done.
  • Diacritics are lost at the source in two registers. About one record in five, for both payment and credit institutions, contains ? in place of ș or ț — "opera?iuni". In the other six: none. Verified against the raw artefact: the same class's header carries correct diacritics in the same file, so it is not our transport. diacritice_pierdute flags them. We do not repair them: an automatic reconstruction would get "opera?iuni" right and mangle a proper name at the first opportunity.

What it is for

  • Which register classes exist and how much each one covers.
  • Choosing a class before requesting its records.
  • Checking whether the data you want already has a dedicated route.

Response structure

FieldTypeDescription
data.clase[] object[]
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.clase integer
meta.inregistrari number
meta.nota_forma string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_rute string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_diacritice string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.catalogul_de_serii string
data.clase[].cid integer The NBR class identifier — passed on to /registre/{cid}.
data.clase[].campuri integer How many fields a row of the class carries.
data.clase[].inregistrari integer How many rows there are. Under instantaneu, this is NOT a count of events.
data.clase[].zile integer How many distinct dates the class carries.
data.clase[].forma string intrari or instantaneu. null for a class that appeared after this route was written — the shape is not assumed.
data.clase[].ruta_dedicata null Where the same data already comes translated, when such a route exists.
data.clase[].diacritice_pierdute boolean true where the source publishes ? instead of ș/ț.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/registre
{
    "data": {
        "clase": [
            {
                "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
            }
        ]
    },
    "meta": {
        "sursa": "Banca Naţională a României — baza de date interactivă.",
        "clase": 9,
        "inregistrari": 4823,
        "nota_forma": "`forma` e declarată de mână pentru fiecare clasă, nu dedusă dintr-o euristică: la `instantaneu`, numărul de înregistrări NU e un număr de evenimente, ci lista republicată de mai multe ori.",
        "nota_rute": "`ruta_dedicata` arată unde aceleaşi date vin deja traduse în structuri cu nume.",
        "nota_diacritice": "`diacritice_pierdute` marchează registrele în care sursa publică `?` în loc de `ş`/`ţ`. Le declarăm, nu le reparăm prin ghicit.",
        "catalogul_de_serii": "/financiar/v1/serii"
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareThe route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.
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": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored."
    }
}