Financiar v1 / Inflatie
The CPI category catalogue
The 106 goods and services the consumer price index is published on, grouped by level, with the code to use in /financiar/v1/ipc/produse and each one's published range.
The catalogue depends on the base: on an_anterior the source publishes one category fewer — „games of chance" is missing entirely — hence 105 instead of 106.
GET
https://oneapi.ro/api/financiar/v1/ipc/categorii
Query parameters
NameTypeDescriptionAccepted values
bazaoptional
string | null
Optional:
luna_anterioara (default), decembrie, an_anterior. It changes the list.
luna_anterioaradecembriean_anterior
How it behaves
- The categories on which the consumer price index is published, grouped by level, with the code to use in
/financiar/v1/ipc/produseand the published span of each. - The catalogue depends on the base. On
luna_anterioaraanddecembriethere are 106 categories; onan_anterioronly 105 — "games of chance" is missing, having been introduced only in 2026-01, too recently for an annual rate. - The structure: 1 total, 3 aggregates, 35 groups, 67 subcategories. The first four are published from 1991, the rest from 2001 — the catalogue's
de_laandpana_lashow it for each. - ⚠️ Subcategories carry a
-prefix in the source, but the source does not say which group they sit under. The route does not infer the link: there are no codes, and the table order does not survive.
What it is for
- Finding a product's code before requesting its series.
- Checking from which year a given category is published.
- The full list of what can be requested on each base.
Response structure
FieldTypeDescription
data.baza
string
data.descriere_baza
string
What the reporting base represents, in words.
data.categorii
integer
Available categories.
data.pe_nivel
object
How many categories each level holds on the requested base.
data.pe_nivel.agregat
integer
The aggregate the value belongs to.
data.pe_nivel.grupa
integer
data.pe_nivel.subcategorie
integer
data.pe_nivel.total
integer
data.niveluri.agregat[].categorie
string
Category in the source classification.
data.niveluri.agregat[].denumire
string
The name, exactly as the source publishes it.
data.niveluri.agregat[].de_la
string
Start of the covered interval.
data.niveluri.agregat[].pana_la
string
End of the covered interval, inclusive.
data.niveluri.agregat[].luni
integer
Number of months covered.
data.niveluri.grupa[].categorie
string
Category in the source classification.
data.niveluri.grupa[].denumire
string
The name, exactly as the source publishes it.
data.niveluri.grupa[].de_la
string
Start of the covered interval.
data.niveluri.grupa[].pana_la
string
End of the covered interval, inclusive.
data.niveluri.grupa[].luni
integer
Number of months covered.
data.niveluri.subcategorie[].categorie
string
Category in the source classification.
data.niveluri.subcategorie[].denumire
string
The name, exactly as the source publishes it.
data.niveluri.subcategorie[].de_la
string
Start of the covered interval.
data.niveluri.subcategorie[].pana_la
string
End of the covered interval, inclusive.
data.niveluri.subcategorie[].luni
integer
Number of months covered.
data.niveluri.total[].categorie
string
Category in the source classification.
data.niveluri.total[].denumire
string
The name, exactly as the source publishes it.
data.niveluri.total[].de_la
string
Start of the covered interval.
data.niveluri.total[].pana_la
string
End of the covered interval, inclusive.
data.niveluri.total[].luni
integer
Number of months covered.
meta.sursa
string
The official source the data comes from, with its licence where one is required.
meta.nota_niveluri
string
What each level means and which of them are comparable.
meta.nota_ierarhie
string
How to read the classification hierarchy and which levels must not be added together.
data.niveluri[].de_la
The first month published for that category.
data.niveluri[].luni
How many months its series holds — useful for spotting gaps.
meta.fara_date
data is null and this says why. The projection over the INS data is empty.
meta.fara_date_cod
The short, STABLE word for the reason, for clients that branch on it in code:
fara_date is prose and may be rephrased, this is not.
Response examples
GEThttps://oneapi.ro/api/financiar/v1/ipc/categorii
{
"data": {
"baza": "luna_anterioara",
"descriere_baza": "faţă de luna anterioară — variaţia lunii, singura bază care se înlănţuie",
"categorii": 106,
"pe_nivel": {
"agregat": 3,
"grupa": 35,
"subcategorie": 67,
"total": 1
},
"niveluri": {
"agregat": [
{
"categorie": "alimentare",
"denumire": "Marfuri alimentare",
"de_la": "1991-01",
"pana_la": "2026-07",
"luni": 427
}
],
"grupa": [
{
"categorie": "alte_marfuri_nealimentare",
"denumire": "Alte marfuri nealimentare",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"subcategorie": [
{
"categorie": "abonament_radio_televiziune",
"denumire": "Abonament radio, televiziune",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"total": [
{
"categorie": "total",
"denumire": "Total",
"de_la": "1991-01",
"pana_la": "2026-07",
"luni": 427
}
]
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicii preţurilor de consum (TEMPO, matricile IPC102A–IPC102E).",
"nota_niveluri": "`total` şi `agregat` sunt cele patru categorii mari, publicate din 1991; `grupa` şi `subcategorie` sunt detaliul, publicat din 2001.",
"nota_ierarhie": "Subcategoriile poartă în sursă prefixul `- `, dar sursa nu spune sub ce grupă stau. Ruta nu deduce legătura."
}
}
GEThttps://oneapi.ro/api/financiar/v1/ipc/categorii?baza=decembrie
{
"data": {
"baza": "decembrie",
"descriere_baza": "faţă de decembrie anul precedent — cumulat de la începutul anului",
"categorii": 106,
"pe_nivel": {
"agregat": 3,
"grupa": 35,
"subcategorie": 67,
"total": 1
},
"niveluri": {
"agregat": [
{
"categorie": "alimentare",
"denumire": "Marfuri alimentare",
"de_la": "1991-01",
"pana_la": "2026-07",
"luni": 427
}
],
"grupa": [
{
"categorie": "alte_marfuri_nealimentare",
"denumire": "Alte marfuri nealimentare",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"subcategorie": [
{
"categorie": "abonament_radio_televiziune",
"denumire": "Abonament radio, televiziune",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"total": [
{
"categorie": "total",
"denumire": "Total",
"de_la": "1991-01",
"pana_la": "2026-07",
"luni": 427
}
]
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicii preţurilor de consum (TEMPO, matricile IPC102A–IPC102E).",
"nota_niveluri": "`total` şi `agregat` sunt cele patru categorii mari, publicate din 1991; `grupa` şi `subcategorie` sunt detaliul, publicat din 2001.",
"nota_ierarhie": "Subcategoriile poartă în sursă prefixul `- `, dar sursa nu spune sub ce grupă stau. Ruta nu deduce legătura."
}
}
GEThttps://oneapi.ro/api/financiar/v1/ipc/categorii?baza=an_anterior
{
"data": {
"baza": "an_anterior",
"descriere_baza": "faţă de aceeaşi lună din anul precedent — rata anuală",
"categorii": 105,
"pe_nivel": {
"agregat": 3,
"grupa": 35,
"subcategorie": 66,
"total": 1
},
"niveluri": {
"agregat": [
{
"categorie": "alimentare",
"denumire": "TOTAL MARFURI ALIMENTARE",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"grupa": [
{
"categorie": "alte_marfuri_nealimentare",
"denumire": "Alte marfuri nealimentare",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"subcategorie": [
{
"categorie": "abonament_radio_televiziune",
"denumire": "Abonament radio, televiziune",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
],
"total": [
{
"categorie": "total",
"denumire": "TOTAL",
"de_la": "2001-01",
"pana_la": "2026-07",
"luni": 307
}
]
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicii preţurilor de consum (TEMPO, matricile IPC102A–IPC102E).",
"nota_niveluri": "`total` şi `agregat` sunt cele patru categorii mari, publicate din 1991; `grupa` şi `subcategorie` sunt detaliul, publicat din 2001.",
"nota_ierarhie": "Subcategoriile poartă în sursă prefixul `- `, dar sursa nu spune sub ce grupă stau. Ruta nu deduce legătura."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Missing or invalid token. |
| 403 | feature_indisponibil | financiar.inflatie is not in the current plan. |
| 422 | validare | A parameter failed validation (baza); detalii says which and why. |
| 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 parameter failed validation (baza); detalii says which and why.",
"detalii": {
"baza": [
"The value sent does not satisfy the parameter rule."
]
}
}
}