Registrele BNR
Cele nouă clase de tip registru, cu câteva mii de înregistrări între ele: licitaţii de piaţă monetară,
emisiuni şi preschimbări de titluri de stat, active eligibile, registrele instituţiilor de credit şi
de plată. Catalogul de serii le exclude, fiindcă n-au forma unei serii temporale — un rând poartă
mai multe câmpuri deodată, iar câmpurile diferă de la o clasă la alta.
Forma fiecărei clase e declarată, nu dedusă. intrari înseamnă că fiecare rând e un eveniment
la data lui — o licitaţie, o înscriere. instantaneu înseamnă lista întreagă, republicată la
fiecare dată: rândurile activelor eligibile sunt aceeaşi listă de circa 114 poziţii,
repetată la fiecare dată publicată. Citite ca istoric, ar părea tot atâtea evenimente.
Două clase au deja rută dedicată, unde aceleaşi date vin traduse în structuri cu nume:
ruta_dedicata o spune, ca nimeni să nu reimplementeze ce e deja făcut.
Diacriticele lipsesc la sursă în două registre — diacritice_pierdute le marchează. 35 din 193
de înregistrări la instituţiile de plată şi 13 din 75 la cele de credit conţin ? în loc de ş sau
ţ. Verificat pe artefactul brut: antetul aceleiaşi clase are diacriticele corecte în acelaşi
fişier, deci nu e transportul nostru. Nu le reparăm: o reconstrucţie automată ar nimeri „opera?iuni"
şi ar strica un nume propriu la prima ocazie.
Parametri de interogare
Cum se comportă
- Cele nouă clase de tip registru, cu câteva mii de înregistrări între ele (numărul exact, pe clasă, în răspuns): licitaţii de piaţă monetară (repo, reverse repo, depozite), emisiuni şi preschimbări de titluri de stat, active eligibile, registrele instituţiilor de credit şi de plată.
- Catalogul de serii le exclude fiindcă n-au forma unei serii temporale: un rând poartă mai multe câmpuri deodată, iar câmpurile diferă de la o clasă la alta.
meta.registre_exclusede la/seriinumără cei 145 de descriptori de câmp lăsaţi afară; aici sunt înregistrările lor. - Forma fiecărei clase e declarată, nu dedusă.
intrariînseamnă că fiecare rând e un eveniment la data lui — o licitaţie, o înscriere în registru.instantaneuînseamnă lista întreagă, republicată la fiecare dată: rândurile activelor eligibile sunt aceeaşi listă de circa 114 poziţii, repetată la fiecare dată publicată — şase date au deja aproape 700 de rânduri. Citite ca istoric, ar părea tot atâtea evenimente. - Forma s-ar putea ghici din media rândurilor pe zi — şapte clase au între 1 şi 3,6, iar
1147are 114 — dar o euristică ar eticheta greşit prima clasă care se abate, iar eticheta ajunge în răspuns ca fapt. Nouă intrări scrise de mână costă mai puţin. Clasa 1987 (emitenţii de monedă electronică) a fost chiar cazul invers: şase înscrieri, câte una pe dată, deci arăta ca o serie — iar până pe 16 sep aşa şi era importată, cu CUI-urile servite drept valori. - Două clase au deja rută dedicată, unde aceleaşi date vin traduse în structuri cu nume: emisiunile de titluri la
/titluri-stat/emisiuni, instituţiile de credit la/banci.ruta_dedicatao spune, ca nimeni să nu reimplementeze ce e deja făcut. - Diacriticele lipsesc la sursă în două registre. Circa o cincime din înregistrări, atât la instituţiile de plată, cât şi la cele de credit, conţin
?în loc deşsauţ— „opera?iuni". În celelalte şase: zero. Verificat pe artefactul brut: antetul aceleiaşi clase are diacriticele corecte în acelaşi fişier, deci nu e transportul nostru.diacritice_pierdutele marchează. Nu le reparăm: o reconstrucţie automată ar nimeri „opera?iuni" şi ar strica un nume propriu la prima ocazie.
La ce folosește
- Ce clase de registru există şi cât acoperă fiecare.
- Alegerea clasei înainte de a-i cere înregistrările.
- Verificarea dacă datele dorite au deja o rută dedicată.
Structura răspunsului
/registre/{cid}.
instantaneu, NU e un număr de evenimente.
intrari sau instantaneu. null la o clasă apărută după scrierea rutei — forma nu se presupune.
true acolo unde sursa publică ? în loc de ş/ţ.
Exemple de răspuns
{
"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"
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | validare | Ruta nu primeşte parametri, în afară de lang: orice alt parametru dă 422, nu e ignorat. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "Ruta nu primeşte parametri, în afară de lang: orice alt parametru dă 422, nu e ignorat."
}
}