oneapi
Sign in
Financiar v1 / Inflatie

Harmonised index of consumer prices (Eurostat)

The monthly HICP series for one country and one ECOICOP category.

The values are levels against the 2015 = 100 base, not monthly changes. The category code is returned together with its classification and version, because the same code can denote something different in different ECOICOP versions.

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

Query parameters

NameTypeDescriptionAccepted values
taraoptional string | null Optional, defaults to RO. A two-letter code or a Eurostat aggregate. e.g. RO
categorieoptional string | null Optional, defaults to TOTAL (the full basket; CP00 is accepted as a synonym). An ECOICOP ver. 2 code. e.g. TOTAL
de_larequired string Required, YYYY-MM. e.g. 2024-06e.g. 2024e.g. 2024-06-15
pana_laoptional string | null Optional, defaults to the last published month. e.g. 2024-06-30

How it behaves

  • The monthly HICP series for a country and an ECOICOP category. Covers 14 entities, including the EA (euro area) and EU27_2020 aggregates.
  • The values are LEVELS against the 2015 = 100 base, not monthly changes. The increase between two months is the RATIO of the values, not the difference. It is the opposite of the Romanian CPI, which is a change — which is why the two sit on separate routes.
  • The category code is always returned together with its classification and version. From the January 2026 data, Eurostat moved the HICP to ECOICOP ver. 2 (COICOP 2018) and froze the old series at December 2025; we serve version 2, back-cast to 1996. The same code can mean something else across versions — CP0111 is 162.69 in v1 and 162.76 in v2 for June 2024, because its definition changed — so the code alone is not a stable identifier. The total is now called TOTAL; CP00 is still accepted in requests and means the same.
  • HICP is the harmonised European basket, computed with a different methodology than the national CPI. The two are not directly comparable: for December 2022, HICP gives 14.14% and CPI 16.37% — close and different, exactly as they should be.
  • The base stays 2015 = 100, although Eurostat now also publishes 2025 = 100: for the total, the series matches the one served before the switch to ECOICOP ver. 2 (deviations of at most 0.05, from revisions). meta.acoperire states the last published month on every request.

What it is for

  • Comparing inflation across countries.
  • Indexing a contract against the harmonised basket.

Response structure

FieldTypeDescription
data.tara string The country the value refers to.
data.categorie string Category in the source classification.
data.clasificare string The classification the code comes from.
data.versiune_clasificare string Its version. Without these two fields, the code does not stably identify a category.
data.de_la string Start of the interval the response covers.
data.pana_la string End of the interval the response covers, inclusive.
data.natura string Always indice_cu_baza.
data.baza string The index base: 2015 = 100.
data.valori[].luna string The month the value refers to.
data.valori[].valoare string The value published by the source for the combination above.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.valori integer The values of the series, by period.
meta.acoperire string How much the data we hold covers, compared to what the source publishes.
meta.natura string
meta.nota string A note on how to read the response — a pitfall, a convention or a limit of the source.
meta.fara_date data is null and this says why. We hold no HICP for the requested country, or the interval is outside coverage.
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/hicp?de_la=2024-06
{
    "data": {
        "tara": "RO",
        "categorie": "TOTAL",
        "clasificare": "ecoicop",
        "versiune_clasificare": "2",
        "de_la": "2024-06",
        "pana_la": "2026-08",
        "natura": "indice_cu_baza",
        "baza": "2015 = 100",
        "valori": [
            {
                "luna": "2024-06",
                "valoare": "149.11"
            }
        ]
    },
    "meta": {
        "sursa": "Eurostat — prc_hicp_minr (ECOICOP ver. 2, indice cu baza 2015 = 100).",
        "valori": 27,
        "acoperire": "1996-01 → 2026-08",
        "natura": "Valorile sunt NIVELURI raportate la baza 2015 = 100, nu variaţii lunare. Creşterea între două luni e raportul valorilor, nu diferenţa.",
        "nota": "HICP e coşul armonizat european, calculat cu altă metodologie decât IPC-ul naţional al INS. Cele două nu se compară direct: pentru decembrie 2022, HICP dă 14,14% iar IPC 16,37% — apropiate şi diferite, exact cum trebuie."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitnegasit for a non-existent category (the response lists the available categories).
422validareinterval_gol, interval_prea_lung, malformed parameters.
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": "interval_gol, interval_prea_lung, malformed parameters.",
        "detalii": {
            "tara": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}