oneapi
Sign in
Financiar v1 / Inflatie

Quarterly gross domestic product

Quarterly GDP on the two views of the account — production and expenditure — since 1995-Q1, 125 quarters, in eight forms: levels at current or comparable prices, volume indices and price indices.

At current prices, the account closes completely. Each of the eight declared identities checks out across all 125 quarters, without exception — the best-connected dataset of everything coming from this source.

⚠️ Subsidies on products are published with a NEGATIVE sign, so the net taxes identity is an addition that looks like a subtraction. Anyone subtracting gets, in 2022-Q3, 43,472.7 instead of 27,375.5.

⚠️ The adjusted series publishes TWO „Statistical discrepancy" lines, under the same name, distinguished only by their position in the table: one balances the production side, the other the expenditure side. Each identity includes its own, and both close 125/125.

⚠️ The identities are not checked on the volume forms: chain-linked volumes are not additive by construction, and a check there would report an error on correct data. The response says why.

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

Query parameters

NameTypeDescriptionAccepted values
formaoptional string | null Optional: nivel_curent (default), nivel_2020, nivel_an_precedent, volum_anual, volum_trimestrial, volum_2020, pret_anual, pret_2020. nivel_curentnivel_2020nivel_an_precedentvolum_anualvolum_trimestrialvolum_2020pret_anualpret_2020
ajustareoptional string | null Optional: bruta (default) or sezonier. brutasezonier
opticaoptional string | null Optional: tot (default), productie or cheltuieli. totproductiecheltuieli
categorieoptional string | null Optional, the exact source name. A wrong name gets a 404 with the list. max 220 car.
de_laoptional string | null Optional, YYYY-Tn or YYYY-MM, from 1995-Q1. e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY-Tn or YYYY-MM. e.g. 2024-06-15e.g. 2024-06-30

How it behaves

  • Quarterly GDP as published by the Romanian statistics institute, on both sides of the account — production and expenditure — from 1995-Q1, 125 quarters. Eight forms: levels at current prices, at 2020 average prices or at the prices of the same quarter a year earlier, plus volume and price indices referred to the 2020 average, to the same quarter a year earlier, or to the previous quarter.
  • At current prices the account closes completely. Each of the eight declared identities is checked across all 125 quarters — 1,000 checks, all closing, on both the raw and the adjusted series. It is the best-articulated dataset this source provides.
  • ⚠️ Subsidies on products are published with a NEGATIVE sign. The correct identity is net taxes = taxes + subsidies — an addition that looks like a subtraction. In 2022-Q3: taxes 35,424.1, subsidies −8,048.6, net 27,375.5. Subtracting gives 43,472.7, 16,097 million too much.
  • ⚠️ The adjusted series publishes TWO "Discrepanta statistica" lines, under the same name. Seasonal adjustment is applied component by component, so the identity no longer closes on its own and the source adds a balancing item for each side. They are told apart only by their position in the table. Measured: the first closes the production side, the second the expenditure side, each 125/125; crossed over, neither closes. The route exposes them as Discrepanta statistica (productie) and (cheltuieli).
  • ⚠️ The identities are not checked on the volume forms. At 2020 prices, "GDP = gross value added + net taxes" holds in only 17 of 125 quarters, with gaps above 1,600 million: chained volumes do not add, by construction. There the identity block comes back with verificate: false and the reason, rather than false errors.
  • The two sides do not mix. The same 31 categories describe the same GDP from two angles; adding them together would count it twice. The serii[].optica field separates them, and optica=productie or cheltuieli filters.
  • The grid is incomplete: nivel_an_precedent exists only on the raw series, volum_trimestrial only on the adjusted one. Non-existent combinations get a 404 listing the adjustments available for the requested form.

What it is for

  • Quarterly economic growth, in the form the press releases quote.
  • The structure of GDP by branch or by demand component.
  • The implicit deflator, from the ratio of nominal to real value.

Response structure

FieldTypeDescription
data.forma string Legal form or form of organisation.
data.forma_eticheta string
data.ajustare string Which adjustment was applied to the values (seasonal, working-day, or none).
data.unitate string milioane lei for level forms, procente for indices.
data.de_la string Start of the interval the response covers.
data.pana_la string End of the interval the response covers, inclusive.
data.filtre array The filters actually applied, as the route understood them — useful when a value was normalised.
data.trimestre array Quarters for which values exist.
data.serii[].categorie string Category in the source classification.
data.serii[].optica string productie, productie_ramura, cheltuieli or ambele (GDP itself only).
data.serii[].trimestre_publicate integer How many quarters the source actually published.
data.serii[].valori object The values of the series, by period.
data.identitati.verificate boolean false on the volume forms, with the reason in motiv.
data.identitati.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.identitati integer The identity checks run on the values in the response.
data.identitati.identitati_inchise integer How many identities closed within tolerance.
data.identitati.verificari integer How many combinations were checked.
data.identitati.verificari_inchise integer How many checks closed within tolerance.
data.identitati.detalii[] array The eight identities, with the side they sit on and each one's maximum deviation.
data.identitati.detalii[].identitate string The identity being checked — which sum must equal which total.
data.identitati.detalii[].latura string Side of the account (resources or uses).
data.identitati.detalii[].trimestre_verificate integer How many quarters entered the check.
data.identitati.detalii[].trimestre_inchise integer How many quarters closed within tolerance.
data.identitati.detalii[].abatere_maxima string Largest deviation found between the sum of components and the total.
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.trimestre integer Quarters for which values exist.
meta.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.categorii_publicate integer
meta.nota_optici string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_semn string What the sign of the value means (inflow/outflow, rise/fall).
meta.nota_identitati string How to read the identity checks in the response.
meta.nota_grila string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.fara_date data is null and this says why. The projection over the INS data is empty. As on the other series.
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/pib
{
    "data": {
        "forma": "nivel_curent",
        "forma_eticheta": "nivel, preţuri curente",
        "ajustare": "bruta",
        "unitate": "milioane lei",
        "de_la": "1995-T1",
        "pana_la": "2026-T2",
        "filtre": [],
        "trimestre": [
            "1995-T1",
            "1995-T2",
            "1995-T3",
            "1995-T4",
            "1996-T1",
            "1996-T2",
            "1996-T3",
            "1996-T4",
            "1997-T1",
            "1997-T2",
            "1997-T3",
            "1997-T4",
            "1998-T1",
            "1998-T2",
            "1998-T3",
            "1998-T4",
            "1999-T1",
            "1999-T2",
            "1999-T3",
            "1999-T4",
            "2000-T1",
            "2000-T2",
            "2000-T3",
            "2000-T4",
            "2001-T1",
            "2001-T2",
            "2001-T3",
            "2001-T4",
            "2002-T1",
            "2002-T2",
            "2002-T3",
            "2002-T4",
            "2003-T1",
            "2003-T2",
            "2003-T3",
            "2003-T4",
            "2004-T1",
            "2004-T2",
            "2004-T3",
            "2004-T4",
            "2005-T1",
            "2005-T2",
            "2005-T3",
            "2005-T4",
            "2006-T1",
            "2006-T2",
            "2006-T3",
            "2006-T4",
            "2007-T1",
            "2007-T2",
            "2007-T3",
            "2007-T4",
            "2008-T1",
            "2008-T2",
            "2008-T3",
            "2008-T4",
            "2009-T1",
            "2009-T2",
            "2009-T3",
            "2009-T4",
            "2010-T1",
            "2010-T2",
            "2010-T3",
            "2010-T4",
            "2011-T1",
            "2011-T2",
            "2011-T3",
            "2011-T4",
            "2012-T1",
            "2012-T2",
            "2012-T3",
            "2012-T4",
            "2013-T1",
            "2013-T2",
            "2013-T3",
            "2013-T4",
            "2014-T1",
            "2014-T2",
            "2014-T3",
            "2014-T4",
            "2015-T1",
            "2015-T2",
            "2015-T3",
            "2015-T4",
            "2016-T1",
            "2016-T2",
            "2016-T3",
            "2016-T4",
            "2017-T1",
            "2017-T2",
            "2017-T3",
            "2017-T4",
            "2018-T1",
            "2018-T2",
            "2018-T3",
            "2018-T4",
            "2019-T1",
            "2019-T2",
            "2019-T3",
            "2019-T4",
            "2020-T1",
            "2020-T2",
            "2020-T3",
            "2020-T4",
            "2021-T1",
            "2021-T2",
            "2021-T3",
            "2021-T4",
            "2022-T1",
            "2022-T2",
            "2022-T3",
            "2022-T4",
            "2023-T1",
            "2023-T2",
            "2023-T3",
            "2023-T4",
            "2024-T1",
            "2024-T2",
            "2024-T3",
            "2024-T4",
            "2025-T1",
            "2025-T2",
            "2025-T3",
            "2025-T4",
            "2026-T1",
            "2026-T2"
        ],
        "serii": [
            {
                "categorie": "Activitati de spectacole, culturale si recreative; reparatii de produse de uz casnic si alte servicii",
                "optica": "productie_ramura",
                "trimestre_publicate": 126,
                "valori": {
                    "1995-T1": "30.0",
                    "1995-T2": "56.2",
                    "1995-T3": "34.7",
                    "1995-T4": "18.0",
                    "1996-T1": "41.7",
                    "1996-T2": "67.3",
                    "1996-T3": "41.8",
                    "1996-T4": "23.3",
                    "1997-T1": "103.3",
                    "1997-T2": "161.3",
                    "1997-T3": "136.9",
                    "1997-T4": "69.3",
                    "1998-T1": "154.4",
                    "1998-T2": "244.8",
                    "1998-T3": "212.7",
                    "1998-T4": "161.1",
                    "1999-T1": "250.0",
                    "1999-T2": "397.6",
                    "1999-T3": "355.1",
                    "1999-T4": "293.3",
                    "2000-T1": "412.5",
                    "2000-T2": "663.8",
                    "2000-T3": "616.4",
                    "2000-T4": "524.4",
                    "2001-T1": "462.1",
                    "2001-T2": "727.8",
                    "2001-T3": "681.5",
                    "2001-T4": "566.1",
                    "2002-T1": "659.9",
                    "2002-T2": "889.4",
                    "2002-T3": "833.9",
                    "2002-T4": "785.1",
                    "2003-T1": "876.7",
                    "2003-T2": "1141.1",
                    "2003-T3": "1048.4",
                    "2003-T4": "1106.5",
                    "2004-T1": "1046.1",
                    "2004-T2": "1486.2",
                    "2004-T3": "1287.8",
                    "2004-T4": "1378.4",
                    "2005-T1": "1259.3",
                    "2005-T2": "1644.0",
                    "2005-T3": "1680.8",
                    "2005-T4": "1648.2",
                    "2006-T1": "1707.4",
                    "2006-T2": "2120.2",
                    "2006-T3": "2259.9",
                    "2006-T4": "2070.4",
                    "2007-T1": "2264.7",
                    "2007-T2": "2751.5",
                    "2007-T3": "2930.6",
                    "2007-T4": "2147.9",
                    "2008-T1": "2375.2",
                    "2008-T2": "3250.1",
                    "2008-T3": "3313.1",
                    "2008-T4": "3067.7",
                    "2009-T1": "2948.8",
                    "2009-T2": "3571.8",
                    "2009-T3": "3762.3",
                    "2009-T4": "3900.0",
                    "2010-T1": "3690.7",
                    "2010-T2": "3373.1",
                    "2010-T3": "3987.8",
                    "2010-T4": "3871.4",
                    "2011-T1": "4193.6",
                    "2011-T2": "4526.0",
                    "2011-T3": "5200.4",
                    "2011-T4": "4790.2",
                    "2012-T1": "3676.0",
                    "2012-T2": "4163.6",
                    "2012-T3": "4783.8",
                    "2012-T4": "5197.9",
                    "2013-T1": "3528.4",
                    "2013-T2": "3929.6",
                    "2013-T3": "4044.7",
                    "2013-T4": "4119.4",
                    "2014-T1": "3881.6",
                    "2014-T2": "4521.9",
                    "2014-T3": "4610.6",
                    "2014-T4": "5215.9",
                    "2015-T1": "4523.4",
                    "2015-T2": "5294.7",
                    "2015-T3": "6256.4",
                    "2015-T4": "6499.8",
                    "2016-T1": "4806.0",
                    "2016-T2": "5432.4",
                    "2016-T3": "5749.8",
                    "2016-T4": "6405.7",
                    "2017-T1": "5605.3",
                    "2017-T2": "6423.7",
                    "2017-T3": "7122.1",
                    "2017-T4": "7534.1",
                    "2018-T1": "6661.6",
                    "2018-T2": "7685.7",
                    "2018-T3": "8096.2",
                    "2018-T4": "8790.1",
                    "2019-T1": "7209.8",
                    "2019-T2": "8645.9",
                    "2019-T3": "8775.1",
                    "2019-T4": "9404.7",
                    "2020-T1": "6895.9",
                    "2020-T2": "6611.7",
                    "2020-T3": "6466.4",
                    "2020-T4": "7546.7",
                    "2021-T1": "5207.9",
                    "2021-T2": "11151.4",
                    "2021-T3": "6655.1",
                    "2021-T4": "7560.3",
                    "2022-T1": "5931.3",
                    "2022-T2": "13856.4",
                    "2022-T3": "7508.7",
                    "2022-T4": "8882.8",
                    "2023-T1": "7565.2",
                    "2023-T2": "16565.7",
                    "2023-T3": "10241.7",
                    "2023-T4": "13373.6",
                    "2024-T1": "9160.0",
                    "2024-T2": "19995.5",
                    "2024-T3": "12540.1",
                    "2024-T4": "16181.6",
                    "2025-T1": "9816.2",
                    "2025-T2": "21434.6",
                    "2025-T3": "13989.9",
                    "2025-T4": "17911.5",
                    "2026-T1": "11512.4",
                    "2026-T2": "26826.7"
                }
            }
        ],
        "identitati": {
            "verificate": true,
            "nota": "Subvenţiile pe produs sunt publicate cu semn negativ, deci identitatea impozitelor nete e o adunare, nu o scădere.",
            "identitati": 8,
            "identitati_inchise": 8,
            "verificari": 1008,
            "verificari_inchise": 1008,
            "detalii": [
                {
                    "identitate": "PIB = valoarea adăugată brută + impozitele nete pe produs",
                    "latura": "productie",
                    "trimestre_verificate": 126,
                    "trimestre_inchise": 126,
                    "abatere_maxima": "0"
                }
            ]
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — produsul intern brut trimestrial (TEMPO, familiile CON104 şi CON106).",
        "acoperire": {
            "de_la": "1995-T1",
            "pana_la": "2026-T2"
        },
        "trimestre": 126,
        "serii_returnate": 31,
        "categorii_publicate": 31,
        "nota_optici": "Categoriile stau pe două optici ale aceluiaşi cont — producţie şi cheltuieli — care nu se amestecă şi nu se însumează între ele. `serii[].optica` o spune; `optica=productie` sau `cheltuieli` filtrează.",
        "nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV: identitatea impozitelor nete e `impozite + subvenţii`, o adunare care arată ca o scădere.",
        "nota_identitati": "8 din 8 identităţi se închid pe toate trimestrele lor, pe 1008 verificări.",
        "nota_grila": "Grila nu e completă: `nivel_an_precedent` există doar pe seria brută, `volum_trimestrial` doar pe cea ajustată."
    }
}

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 form, adjustment or side outside the list, a period written other than YYYY-Tn or YYYY-MM, or interval_prea_lung beyond 140 quarters. combinatie_indisponibila — the form is not published on the requested adjustment; the response lists the available ones. categorie_necunoscuta — the response lists them.
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 form, adjustment or side outside the list, a period written other than YYYY-Tn or YYYY-MM, or interval_prea_lung beyond 140 quarters. combinatie_indisponibila — the form is not published on the requested adjustment; the response lists the available ones. categorie_necunoscuta — the response lists them.",
        "detalii": {
            "forma": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}