A series' statistics
Minimum, maximum, mean, median, quartiles, standard deviation and effective coverage, over an optional interval. Computed in the database: to answer „how volatile was it" you do not need seven thousand observations downloaded.
The mean alone lies on long series. Three-month ROBOR over its whole history has a mean of 20.64% and a median of 6.85% — the mean is dragged up by the 1990s, when rates went above 200% (the series maximum is 228.37%). Anyone asking for „the average ROBOR" gets a number that never described the market. That is why the median and the quartiles come alongside, not as an extra: on a skewed series they are the useful figure.
The sample deviation does not exist on a single point, and 145 series have exactly one: the formula divides by n − 1. It stays null — a zero there would say „a perfectly stable series", which is a different thing from „it cannot be computed". The population deviation comes alongside and is always defined.
The extremes come with the day they were reached on. An all-time high from 1997 reads differently from one set last month, and the figure alone does not say which is which.
521 series (8.8%) have no value at all. They get stare: fara_valori and null statistics, not a 404: the series exists in the catalogue, it simply never published anything. In the catalogue, numar_valori is null for them, not 0.
acoperire.serie gives the range of the whole series, and acoperire.in_interval the range actually reached — so that an interval requested wider than the series does not look like a series with gaps.
Path parameters
AEDZ_DEN).
Query parameters
YYYY-MM-DD. Defaults to the start of the series.
e.g. 2020-01-01
YYYY-MM-DD. Defaults to the end of the series.
e.g. 2023-12-31
How it behaves
- Minimum, maximum, mean, median, quartiles, deviation and effective coverage, over an optional interval. Computed in the database: answering "how volatile was it" should not require downloading seven thousand observations.
- The mean alone lies on long series. ROBOR 3M across its whole history has a mean of 20.64% and a median of 6.85% — the mean is dragged by the 1990s, when rates went past 200% (the series maximum is 228.37%, reached in March 1997). Anyone asking for "the ROBOR average" gets a number that never described the market. That is why the median and the quartiles come alongside, not as extras: on a skewed series they are the useful figure.
- Sample deviation does not exist on a single point, and 145 series have exactly one: the formula divides by
n − 1. It staysnull— a zero there would say "perfectly stable series", which is not the same as "cannot be computed".deviatie_populatiecomes alongside and is always defined. - Extremes come with the day they were reached. An all-time high from 1997 reads differently from one set last month, and the figure alone does not say which. When a value repeats, the first date it appeared on is given.
- Two different kinds of emptiness, named differently.
fara_valorimeans the series has NEVER published anything — 521 are like that, 8.8% of the catalogue, and theirnumar_valoriisnull, not 0.fara_valori_in_intervalmeans the series has values, just not in the requested window. One name for both would send someone with a wrong interval away believing the data does not exist. - Nothing assumes a positive sign: 582 series carry at least one negative value. And nothing assumes an order of magnitude:
CIPL_SRBOruns from 6.5 to 2,587,357. acoperire.seriegives the whole series' range,acoperire.in_intervalthe range actually reached — so an interval wider than the series does not look like a series full of gaps.- A missing series gets the same 404 as
/serii/{cod}, with the distinction between "does not exist" and "is a register, not a time series".
What it is for
- How volatile a series has been, without downloading it.
- The historical minimum and maximum, with the dates they were reached.
- A quick summary before deciding which interval is worth fetching in full.
Response structure
are_valori, fara_valori (never anything) or fara_valori_in_interval.
null below two points — not 0.
meta.total_e_limita_de_jos is the word to switch on in code.
Response examples
{
"data": {
"cod": "AEDZ_DEN",
"nume": "Monedă",
"clasa": "Operaţiuni de piaţă monetară ale BNR - Active eligibile - diferenţe",
"unitate": "(txt)",
"periodicitate": "necunoscut",
"de_la": null,
"pana_la": null,
"acoperire": {
"serie": {
"de_la": null,
"pana_la": null
},
"in_interval": null
},
"puncte": 0,
"stare": "fara_valori",
"minim": null,
"maxim": null,
"medie": null,
"mediana": null,
"p25": null,
"p75": null,
"deviatie_populatie": null,
"deviatie_esantion": null,
"prima": null,
"ultima": null
},
"meta": {
"sursa": "Banca Naţională a României — baza de date interactivă.",
"nota_fara_valori": "Seria există în catalog, dar n-a publicat NICIODATĂ vreo valoare. Sunt 521 aşa, 8,8% din catalog.",
"nota_acoperire": "Un interval cerut mai larg decât seria nu înseamnă goluri: `acoperire.serie` spune cât acoperă seria în general.",
"valori": "/financiar/v1/serii/AEDZ_DEN/valori"
}
}
{
"data": {
"cod": "AEDZ_DEN",
"nume": "Monedă",
"clasa": "Operaţiuni de piaţă monetară ale BNR - Active eligibile - diferenţe",
"unitate": "(txt)",
"periodicitate": "necunoscut",
"de_la": "2020-01-01",
"pana_la": "2023-12-31",
"acoperire": {
"serie": {
"de_la": null,
"pana_la": null
},
"in_interval": null
},
"puncte": 0,
"stare": "fara_valori",
"minim": null,
"maxim": null,
"medie": null,
"mediana": null,
"p25": null,
"p75": null,
"deviatie_populatie": null,
"deviatie_esantion": null,
"prima": null,
"ultima": null
},
"meta": {
"sursa": "Banca Naţională a României — baza de date interactivă.",
"nota_fara_valori": "Seria există în catalog, dar n-a publicat NICIODATĂ vreo valoare. Sunt 521 aşa, 8,8% din catalog.",
"nota_acoperire": "Un interval cerut mai larg decât seria nu înseamnă goluri: `acoperire.serie` spune cât acoperă seria în general.",
"valori": "/financiar/v1/serii/AEDZ_DEN/valori"
}
}
{
"data": {
"cod": "BBZ_BOR3M",
"nume": "ROBOR 3 luni",
"clasa": "ROBID - ROBOR - serii zilnice",
"unitate": "% p.a.",
"periodicitate": "zilnic",
"de_la": null,
"pana_la": null,
"acoperire": {
"serie": {
"de_la": "1995-08-01",
"pana_la": "2026-09-21"
},
"in_interval": {
"de_la": "1995-08-01",
"pana_la": "2026-09-21"
}
},
"puncte": 7880,
"stare": "are_valori",
"minim": {
"data": "2016-09-27",
"perioada": "2016-09-27",
"valoare": "0.68"
},
"maxim": {
"data": "1997-03-05",
"perioada": "1997-03-05",
"valoare": "228.37"
},
"medie": "20.610081",
"mediana": "6.84",
"p25": "3.24",
"p75": "22.19",
"deviatie_populatie": "29.963807",
"deviatie_esantion": "29.965709",
"prima": {
"data": "1995-08-01",
"perioada": "1995-08-01",
"valoare": "46.38"
},
"ultima": {
"data": "2026-09-21",
"perioada": "2026-09-21",
"valoare": "5.84"
}
},
"meta": {
"sursa": "Banca Naţională a României — baza de date interactivă.",
"nota_medie": "Mediana şi cuartilele vin alături de medie fiindcă pe o serie asimetrică descriu altceva: ROBOR 3M pe tot istoricul are media 20,64% şi mediana 6,85%, iar diferenţa e istoria anilor '90, nu piaţa de azi.",
"nota_deviatie": "`deviatie_esantion` împarte la `n − 1`, deci e `null` la un singur punct — nu 0. `deviatie_populatie` e definită oricând.",
"nota_acoperire": "Un interval cerut mai larg decât seria nu înseamnă goluri: `acoperire.serie` spune cât acoperă seria în general.",
"valori": "/financiar/v1/serii/BBZ_BOR3M/valori"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | The code is not in the catalogue. nu_e_serie_temporala — the code belongs to a register class. |
| 422 | validare | A malformed code or date, or pana_la before de_la. |
| 429 | cota_depasita | The 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 code or date, or pana_la before de_la.",
"detalii": {
"cod": [
"The value sent does not satisfy the parameter rule."
]
}
}
}