oneapi
Sign in
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/produse and the published span of each.
  • The catalogue depends on the base. On luna_anterioara and decembrie there are 106 categories; on an_anterior only 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_la and pana_la show 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."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.inflatie is not in the current plan.
422validareA parameter failed validation (baza); detalii says which and why.
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 parameter failed validation (baza); detalii says which and why.",
        "detalii": {
            "baza": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}