oneapi
Sign in
Financiar v1 / Inflatie

Construction cost indices

The monthly series of construction cost indices, by type of works and type of building — the index in the price adjustment clause of works contracts. Since January 2005, with no missing month.

A fixed base, 2021 = 100 — a different form from the CPI, which is an index against the previous month. Here the adjustment between two months is the ratio of the indices, not their product: I(t₂)/I(t₁). The ready-computed coefficient comes from /calcul/indexare?indice=constructii.

The indices are not additive, so there is no sum identity. The valid check on a family of indices is that the aggregate sits between its components — „buildings" against residential and non-residential closes on every published month.

GET
https://oneapi.ro/api/financiar/v1/cost-constructii

Query parameters

NameTypeDescriptionAccepted values
de_laoptional string | null Optional, YYYY-MM, from 2005-01. e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY-MM. e.g. 2024-06-30e.g. 2024-06-15
tiplistoptional text Optional, one or more comma-separated: total, constructii_noi, reparatii_capitale, reparatii_curente, cladiri, cladiri_rezidentiale, cladiri_nerezidentiale, constructii_ingineresti, cost_materiale. totalconstructii_noireparatii_capitalereparatii_curentecladiricladiri_rezidentialecladiri_nerezidentialeconstructii_ingineresticost_materiale

How it behaves

  • The monthly series of construction cost indices published by the Romanian statistics institute (TEMPO, matrix CNS107D), by type of work and type of construction — from January 2005 to today, 257 months, with no month missing.
  • A FIXED-BASE index, 2021 = 100. Verified, not assumed: the 2021 average comes out at 100.00 across all nine series, with a maximum deviation of 0.017 — the one decimal the source publishes.
  • It is not computed like the CPI, and that matters. /ipc publishes the index against the previous month, so an adjustment over a period is the product of the months in the interval. Here the base is fixed, so the adjustment is the ratio of two values, I(t₂)/I(t₁) — the months in between play no part at all. Applying the chaining here produces a number unrelated to reality. The ready-made coefficient, with the method stated in the response: /calcul/indexare?indice=constructii.
  • Indices do not add up, so there is no sum identity to verify. The valid check on a family of indices is a different one — an aggregate must lie between its components: "buildings" against residential and non-residential closes across all 257 months, at a one-decimal tolerance.
  • cost_materiale (TOTAL COST MATERIALE at source, in capitals) is not a type of construction but a cost component — it sits on a different axis, and serii[].axa says so, to keep it off the same chart as the other eight.
  • How much construction rose: from January 2020 to May 2026 the total index climbs from 88.1 to 164.3, i.e. ×1.86. Over the same span consumer prices rose 63%, so construction outran the consumption basket by 23 points.

What it is for

  • Adjusting a works contract price between signature and handover.
  • Restating an old bill of quantities at today's costs.
  • Comparing construction cost growth against general inflation.

Response structure

FieldTypeDescription
data.de_la string Start of the interval the response covers.
data.pana_la string End of the interval the response covers, inclusive.
data.baza string The index base — 2021 = 100, fixed.
data.tip_indice string baza_fixa, unlike the CPI which is variatie_lunara. It determines how any adjustment must be computed.
data.unitate string The unit of the values. Read it before plotting or adding them up.
data.filtre array The filters actually applied, as the route understood them — useful when a value was normalised.
data.luni array Number of months covered.
data.serii[].tip string
data.serii[].eticheta string Display label for the value — the readable version of the code next to it.
data.serii[].axa string Which axis the series sits on: lucrare, constructie or componenta_cost. The three do not mix.
data.serii[].luni_publicate integer How many months the source actually published.
data.serii[].valori object The values of the series, by period.
data.incadrari object The aggregate check: how many months have the aggregate between its components.
data.incadrari.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.incadrari.verificari integer How many combinations were checked.
data.incadrari.detalii[].agregat string The aggregate the value belongs to.
data.incadrari.detalii[].componente array The components that add up to the total.
data.incadrari.detalii[].regula string The rule by which the value was computed or chosen.
data.incadrari.detalii[].luni_verificate integer How many months entered the check.
data.incadrari.detalii[].luni_conforme integer
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.acoperire.de_la string The first period we have data for.
meta.acoperire.pana_la string The last period we have data for.
meta.luni integer Number of months covered.
meta.serii_totale integer
meta.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.nota_baza string What the index base is and when it changes.
meta.nota_metoda string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_axe string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_control string Which control check was run on the values in the response.
meta.fara_date data is null and this says why. The projection over the INS data is empty. The interval falls entirely outside the coverage (2005-01 → present). It overlaps but holds no values.
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/cost-constructii
{
    "data": {
        "de_la": "2005-01",
        "pana_la": "2026-06",
        "baza": "2021 = 100",
        "tip_indice": "baza_fixa",
        "unitate": "indice (procente faţă de baza fixă)",
        "filtre": [],
        "luni": [
            "2005-01",
            "2005-02",
            "2005-03",
            "2005-04",
            "2005-05",
            "2005-06",
            "2005-07",
            "2005-08",
            "2005-09",
            "2005-10",
            "2005-11",
            "2005-12",
            "2006-01",
            "2006-02",
            "2006-03",
            "2006-04",
            "2006-05",
            "2006-06",
            "2006-07",
            "2006-08",
            "2006-09",
            "2006-10",
            "2006-11",
            "2006-12",
            "2007-01",
            "2007-02",
            "2007-03",
            "2007-04",
            "2007-05",
            "2007-06",
            "2007-07",
            "2007-08",
            "2007-09",
            "2007-10",
            "2007-11",
            "2007-12",
            "2008-01",
            "2008-02",
            "2008-03",
            "2008-04",
            "2008-05",
            "2008-06",
            "2008-07",
            "2008-08",
            "2008-09",
            "2008-10",
            "2008-11",
            "2008-12",
            "2009-01",
            "2009-02",
            "2009-03",
            "2009-04",
            "2009-05",
            "2009-06",
            "2009-07",
            "2009-08",
            "2009-09",
            "2009-10",
            "2009-11",
            "2009-12",
            "2010-01",
            "2010-02",
            "2010-03",
            "2010-04",
            "2010-05",
            "2010-06",
            "2010-07",
            "2010-08",
            "2010-09",
            "2010-10",
            "2010-11",
            "2010-12",
            "2011-01",
            "2011-02",
            "2011-03",
            "2011-04",
            "2011-05",
            "2011-06",
            "2011-07",
            "2011-08",
            "2011-09",
            "2011-10",
            "2011-11",
            "2011-12",
            "2012-01",
            "2012-02",
            "2012-03",
            "2012-04",
            "2012-05",
            "2012-06",
            "2012-07",
            "2012-08",
            "2012-09",
            "2012-10",
            "2012-11",
            "2012-12",
            "2013-01",
            "2013-02",
            "2013-03",
            "2013-04",
            "2013-05",
            "2013-06",
            "2013-07",
            "2013-08",
            "2013-09",
            "2013-10",
            "2013-11",
            "2013-12",
            "2014-01",
            "2014-02",
            "2014-03",
            "2014-04",
            "2014-05",
            "2014-06",
            "2014-07",
            "2014-08",
            "2014-09",
            "2014-10",
            "2014-11",
            "2014-12",
            "2015-01",
            "2015-02",
            "2015-03",
            "2015-04",
            "2015-05",
            "2015-06",
            "2015-07",
            "2015-08",
            "2015-09",
            "2015-10",
            "2015-11",
            "2015-12",
            "2016-01",
            "2016-02",
            "2016-03",
            "2016-04",
            "2016-05",
            "2016-06",
            "2016-07",
            "2016-08",
            "2016-09",
            "2016-10",
            "2016-11",
            "2016-12",
            "2017-01",
            "2017-02",
            "2017-03",
            "2017-04",
            "2017-05",
            "2017-06",
            "2017-07",
            "2017-08",
            "2017-09",
            "2017-10",
            "2017-11",
            "2017-12",
            "2018-01",
            "2018-02",
            "2018-03",
            "2018-04",
            "2018-05",
            "2018-06",
            "2018-07",
            "2018-08",
            "2018-09",
            "2018-10",
            "2018-11",
            "2018-12",
            "2019-01",
            "2019-02",
            "2019-03",
            "2019-04",
            "2019-05",
            "2019-06",
            "2019-07",
            "2019-08",
            "2019-09",
            "2019-10",
            "2019-11",
            "2019-12",
            "2020-01",
            "2020-02",
            "2020-03",
            "2020-04",
            "2020-05",
            "2020-06",
            "2020-07",
            "2020-08",
            "2020-09",
            "2020-10",
            "2020-11",
            "2020-12",
            "2021-01",
            "2021-02",
            "2021-03",
            "2021-04",
            "2021-05",
            "2021-06",
            "2021-07",
            "2021-08",
            "2021-09",
            "2021-10",
            "2021-11",
            "2021-12",
            "2022-01",
            "2022-02",
            "2022-03",
            "2022-04",
            "2022-05",
            "2022-06",
            "2022-07",
            "2022-08",
            "2022-09",
            "2022-10",
            "2022-11",
            "2022-12",
            "2023-01",
            "2023-02",
            "2023-03",
            "2023-04",
            "2023-05",
            "2023-06",
            "2023-07",
            "2023-08",
            "2023-09",
            "2023-10",
            "2023-11",
            "2023-12",
            "2024-01",
            "2024-02",
            "2024-03",
            "2024-04",
            "2024-05",
            "2024-06",
            "2024-07",
            "2024-08",
            "2024-09",
            "2024-10",
            "2024-11",
            "2024-12",
            "2025-01",
            "2025-02",
            "2025-03",
            "2025-04",
            "2025-05",
            "2025-06",
            "2025-07",
            "2025-08",
            "2025-09",
            "2025-10",
            "2025-11",
            "2025-12",
            "2026-01",
            "2026-02",
            "2026-03",
            "2026-04",
            "2026-05",
            "2026-06"
        ],
        "serii": [
            {
                "tip": "total",
                "eticheta": "total",
                "axa": "lucrare",
                "luni_publicate": 258,
                "valori": {
                    "2005-01": "38.5",
                    "2005-02": "38.2",
                    "2005-03": "38.8",
                    "2005-04": "41.1",
                    "2005-05": "40.0",
                    "2005-06": "39.9",
                    "2005-07": "41.0",
                    "2005-08": "42.0",
                    "2005-09": "40.9",
                    "2005-10": "41.3",
                    "2005-11": "41.9",
                    "2005-12": "42.5",
                    "2006-01": "42.1",
                    "2006-02": "41.6",
                    "2006-03": "41.6",
                    "2006-04": "44.6",
                    "2006-05": "45.3",
                    "2006-06": "45.5",
                    "2006-07": "45.7",
                    "2006-08": "46.8",
                    "2006-09": "43.6",
                    "2006-10": "46.5",
                    "2006-11": "46.8",
                    "2006-12": "47.9",
                    "2007-01": "47.3",
                    "2007-02": "47.5",
                    "2007-03": "48.4",
                    "2007-04": "48.4",
                    "2007-05": "49.4",
                    "2007-06": "49.2",
                    "2007-07": "49.1",
                    "2007-08": "50.1",
                    "2007-09": "49.7",
                    "2007-10": "48.0",
                    "2007-11": "48.6",
                    "2007-12": "49.6",
                    "2008-01": "52.2",
                    "2008-02": "52.7",
                    "2008-03": "54.9",
                    "2008-04": "56.6",
                    "2008-05": "57.6",
                    "2008-06": "58.5",
                    "2008-07": "59.9",
                    "2008-08": "60.0",
                    "2008-09": "59.1",
                    "2008-10": "58.5",
                    "2008-11": "56.6",
                    "2008-12": "57.1",
                    "2009-01": "57.3",
                    "2009-02": "56.9",
                    "2009-03": "58.5",
                    "2009-04": "58.0",
                    "2009-05": "57.6",
                    "2009-06": "58.3",
                    "2009-07": "58.7",
                    "2009-08": "59.0",
                    "2009-09": "60.5",
                    "2009-10": "61.3",
                    "2009-11": "59.2",
                    "2009-12": "58.5",
                    "2010-01": "58.0",
                    "2010-02": "58.3",
                    "2010-03": "59.6",
                    "2010-04": "60.1",
                    "2010-05": "61.2",
                    "2010-06": "61.2",
                    "2010-07": "61.4",
                    "2010-08": "60.4",
                    "2010-09": "60.0",
                    "2010-10": "60.5",
                    "2010-11": "61.1",
                    "2010-12": "61.4",
                    "2011-01": "63.1",
                    "2011-02": "63.8",
                    "2011-03": "64.3",
                    "2011-04": "65.3",
                    "2011-05": "65.1",
                    "2011-06": "65.6",
                    "2011-07": "66.3",
                    "2011-08": "65.8",
                    "2011-09": "66.4",
                    "2011-10": "67.8",
                    "2011-11": "67.5",
                    "2011-12": "67.2",
                    "2012-01": "66.8",
                    "2012-02": "67.3",
                    "2012-03": "67.8",
                    "2012-04": "69.8",
                    "2012-05": "71.9",
                    "2012-06": "70.7",
                    "2012-07": "70.5",
                    "2012-08": "70.2",
                    "2012-09": "71.3",
                    "2012-10": "71.6",
                    "2012-11": "71.6",
                    "2012-12": "69.1",
                    "2013-01": "67.3",
                    "2013-02": "67.2",
                    "2013-03": "67.4",
                    "2013-04": "68.2",
                    "2013-05": "67.3",
                    "2013-06": "67.5",
                    "2013-07": "67.9",
                    "2013-08": "67.6",
                    "2013-09": "67.5",
                    "2013-10": "67.5",
                    "2013-11": "67.6",
                    "2013-12": "67.1",
                    "2014-01": "66.9",
                    "2014-02": "66.5",
                    "2014-03": "66.8",
                    "2014-04": "66.9",
                    "2014-05": "66.6",
                    "2014-06": "66.8",
                    "2014-07": "67.3",
                    "2014-08": "67.2",
                    "2014-09": "67.5",
                    "2014-10": "66.9",
                    "2014-11": "67.2",
                    "2014-12": "66.2",
                    "2015-01": "65.7",
                    "2015-02": "66.2",
                    "2015-03": "67.2",
                    "2015-04": "66.1",
                    "2015-05": "65.9",
                    "2015-06": "66.1",
                    "2015-07": "65.7",
                    "2015-08": "65.3",
                    "2015-09": "64.4",
                    "2015-10": "63.7",
                    "2015-11": "65.6",
                    "2015-12": "64.9",
                    "2016-01": "64.8",
                    "2016-02": "65.0",
                    "2016-03": "64.3",
                    "2016-04": "66.4",
                    "2016-05": "65.5",
                    "2016-06": "66.5",
                    "2016-07": "66.2",
                    "2016-08": "65.6",
                    "2016-09": "65.6",
                    "2016-10": "66.9",
                    "2016-11": "68.4",
                    "2016-12": "69.2",
                    "2017-01": "68.5",
                    "2017-02": "69.8",
                    "2017-03": "70.3",
                    "2017-04": "69.9",
                    "2017-05": "69.4",
                    "2017-06": "70.3",
                    "2017-07": "70.3",
                    "2017-08": "70.6",
                    "2017-09": "71.4",
                    "2017-10": "71.7",
                    "2017-11": "73.3",
                    "2017-12": "74.0",
                    "2018-01": "78.4",
                    "2018-02": "81.0",
                    "2018-03": "80.8",
                    "2018-04": "79.4",
                    "2018-05": "79.6",
                    "2018-06": "80.7",
                    "2018-07": "81.5",
                    "2018-08": "81.7",
                    "2018-09": "81.2",
                    "2018-10": "83.7",
                    "2018-11": "85.1",
                    "2018-12": "83.3",
                    "2019-01": "84.9",
                    "2019-02": "85.6",
                    "2019-03": "87.6",
                    "2019-04": "88.2",
                    "2019-05": "89.3",
                    "2019-06": "89.0",
                    "2019-07": "89.1",
                    "2019-08": "88.5",
                    "2019-09": "87.7",
                    "2019-10": "88.3",
                    "2019-11": "90.4",
                    "2019-12": "89.7",
                    "2020-01": "88.1",
                    "2020-02": "88.6",
                    "2020-03": "87.8",
                    "2020-04": "87.7",
                    "2020-05": "87.9",
                    "2020-06": "89.0",
                    "2020-07": "89.0",
                    "2020-08": "89.4",
                    "2020-09": "89.7",
                    "2020-10": "89.4",
                    "2020-11": "91.8",
                    "2020-12": "91.8",
                    "2021-01": "88.9",
                    "2021-02": "89.4",
                    "2021-03": "92.6",
                    "2021-04": "96.7",
                    "2021-05": "98.4",
                    "2021-06": "100.7",
                    "2021-07": "102.5",
                    "2021-08": "103.4",
                    "2021-09": "104.6",
                    "2021-10": "105.8",
                    "2021-11": "108.2",
                    "2021-12": "108.8",
                    "2022-01": "108.3",
                    "2022-02": "110.1",
                    "2022-03": "117.3",
                    "2022-04": "119.2",
                    "2022-05": "120.2",
                    "2022-06": "122.0",
                    "2022-07": "124.0",
                    "2022-08": "119.3",
                    "2022-09": "119.1",
                    "2022-10": "120.3",
                    "2022-11": "121.6",
                    "2022-12": "121.7",
                    "2023-01": "122.5",
                    "2023-02": "122.9",
                    "2023-03": "126.1",
                    "2023-04": "126.0",
                    "2023-05": "126.4",
                    "2023-06": "127.3",
                    "2023-07": "128.2",
                    "2023-08": "129.1",
                    "2023-09": "130.9",
                    "2023-10": "130.0",
                    "2023-11": "134.6",
                    "2023-12": "136.4",
                    "2024-01": "136.5",
                    "2024-02": "137.4",
                    "2024-03": "140.3",
                    "2024-04": "143.8",
                    "2024-05": "141.9",
                    "2024-06": "141.9",
                    "2024-07": "144.1",
                    "2024-08": "140.4",
                    "2024-09": "140.3",
                    "2024-10": "141.7",
                    "2024-11": "140.8",
                    "2024-12": "145.0",
                    "2025-01": "143.7",
                    "2025-02": "145.7",
                    "2025-03": "149.0",
                    "2025-04": "150.0",
                    "2025-05": "149.3",
                    "2025-06": "151.2",
                    "2025-07": "151.8",
                    "2025-08": "152.0",
                    "2025-09": "153.4",
                    "2025-10": "152.7",
                    "2025-11": "154.9",
                    "2025-12": "159.1",
                    "2026-01": "153.2",
                    "2026-02": "155.2",
                    "2026-03": "161.5",
                    "2026-04": "164.4",
                    "2026-05": "164.3",
                    "2026-06": "165.2"
                }
            }
        ],
        "incadrari": {
            "nota": "Indicii nu se însumează. Singurul control valid pe o familie de indici e încadrarea agregatului între componentele lui, cu toleranţa de o zecimală — atâta publică sursa.",
            "verificari": 1,
            "detalii": [
                {
                    "agregat": "cladiri",
                    "componente": [
                        "cladiri_rezidentiale",
                        "cladiri_nerezidentiale"
                    ],
                    "regula": "agregatul stă între componentele lui — indicii nu se adună, deci nu există identitate de sumă",
                    "luni_verificate": 258,
                    "luni_conforme": 258
                }
            ]
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — indici de cost în construcţii (TEMPO, matricea CNS107D).",
        "acoperire": {
            "de_la": "2005-01",
            "pana_la": "2026-06"
        },
        "luni": 258,
        "serii_totale": 9,
        "serii_returnate": 9,
        "nota_baza": "Indice cu BAZĂ FIXĂ, 2021 = 100. Verificat: media anului 2021 iese 100,00 pe toate cele nouă serii, cu abatere maximă 0,017 — rotunjirea la o zecimală.",
        "nota_metoda": "Ajustarea între două luni e RAPORTUL indicilor, I(t2)/I(t1) — nu produsul lor. IPC-ul de la /financiar/v1/ipc e indice faţă de luna anterioară şi se calculează invers, prin lanţ. Coeficientul gata calculat: /financiar/v1/calcul/indexare?indice=constructii.",
        "nota_axe": "`cost_materiale` nu e un tip de construcţie, ci o componentă de cost — stă pe altă axă, marcată în `serii[].axa`.",
        "nota_control": "Indicii nu se însumează; se verifică încadrarea agregatului între componentele lui, cu toleranţa de o zecimală."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareA type outside the list, a month written other than YYYY-MM, or interval_prea_lung beyond 300 months.
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 type outside the list, a month written other than YYYY-MM, or interval_prea_lung beyond 300 months.",
        "detalii": {
            "de_la": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}