oneapi
Sign in
Financiar v1 / Inflatie

The regional accounts

The factors that produce regional GDP: who pays the wages, where investment goes, who works and for how many hours — by region and, for employment, down to the county, annually since 2000.

⚠️ The six indicators have different units — million lei, thousand persons, thousand hours — so they are not additive with one another. Every series carries its own unit.

⚠️ Only populatie_ocupata and salariati go down to the county; the other four stop at region level.

Territories are requested by short code (bucuresti_ilfov, nord_vest, cluj), the same as teritoriu_cod in /financiar/v1/pib/judete.

GET
https://oneapi.ro/api/financiar/v1/conturi-regionale

Query parameters

NameTypeDescriptionAccepted values
nivel_teritoriuoptional string | null Optional: tara, macroregiune, regiune, judet, extra_regiuni. taramacroregiuneregiunejudetextra_regiuni
de_laoptional integer | null Optional, a year, from 2000. 2000 – 2100
pana_laoptional integer | null Optional, a year. 2000 – 2100
caen_versiuneoptional string | null Optional: the revision of the caen code — 1, 2 or 3 — when its form is ambiguous (4932 means different things in Rev.2 and Rev.3). Without it, the code is looked up in the series revision first. 123
indicatorlistoptional text Optional, one or more of the six, comma-separated. Without it all six are returned — with different units. remunerare_angajatiformare_capital_fixpopulatie_ocupatasalariatiore_lucrate_ocupatiore_lucrate_salariati
teritoriulistoptional text Optional, short codes comma-separated. Without it and without nivel_teritoriu, the country is returned. e.g. total
caenlistoptional text Optional, codes separated by commas: any CAEN code — section (C), division (62), group, class (6201) — from any revision. It is brought to the A10 branch that contains it (4711 → comert_transport_horeca); what was used is in meta.caen. e.g. 4711
gruparelistoptional text Optional, separated by commas: the source aggregates that are not CAEN codes — total or the A10 sum branches requested directly (industrie, comert_transport_horeca, profesionale_administrative, administratie_educatie_sanatate, spectacole_alte_servicii). Not sent together with caen. e.g. administratie_educatie_sanatatee.g. comert_transport_horecae.g. industrie

How it behaves

  • The factors that produce regional GDP — 44,352 values, annually from 2000 to 2023, from TEMPO matrices CON116A, CON117A, CON118A and CON119A. Six indicators × 11 branches × up to 56 territories.
  • It complements /financiar/v1/pib/judete. That route holds what each territory produces; this one holds the factors: remunerare_angajati (who pays the wages), formare_capital_fix (where the investment goes), populatie_ocupata and salariati (who works), ore_lucrate_ocupati and ore_lucrate_salariati (how many hours).
  • ⚠️ The six indicators carry different units — millions of lei, thousands of persons, thousands of hours — and do not add together. Each series carries its unit, and when a response mixes them, meta says so.
  • ⚠️ Only populatie_ocupata and salariati go down to county level — 56 territories. The other four stop at region, 14 territories. A request that crosses them wrongly gets filtre_fara_serii with the reason spelled out, not an empty response. That makes CON118A the finest employment series in the whole module.
  • ⚠️ Territories are requested by short code — total, bucuresti_ilfov, nord_vest, macroregiunea_unu, cluj. The code was needed because the INS sources write the same regions differently from one matrix to the next: Total versus TOTAL, Regiunea Bucuresti - Ilfov versus Regiunea BUCURESTI - ILFOV, while Regiunea Nord -Vest and Regiunea Sud -Vest - Oltenia have the space in the wrong place. The code is the same as teritoriu_cod in /financiar/v1/pib/judete and is accepted there as a filter too, so the two routes join.
  • Two identities are checked on every request, both computed from the database — not from the response, which could never verify them on a filtered request. The total branch = the sum of the ten branches: 336/336 for compensation, 336/336 for investment, 2,688/2,688 for employment and 672/672 for hours worked. The total territory = the eight regions + extra_regiuni: 264/264, 264/264, 528/528, 528/528.
  • ⚠️ extra_regiuni genuinely matters for compensation: without it the territorial identity falls from 264 to 192 of 264 — those are wages paid outside the territory. For investment it is zero, so it does not show there. extra_regiuni carries its own level so it never pollutes rankings.
  • ✅ For populatie_ocupata and salariati the total also closes as the sum of the 42 counties plus extra_regiuni: the actual maximum gap is 0.6 thousand persons against the 2.15 bound implied by rounding 43 terms.
  • The ten branches use the same slugs as /financiar/v1/pib/judete — industrie, constructii, it_comunicatii — so a branch's GDP can be placed directly beside its wages and its hours.
  • Activity is requested the same way across the platform. caen takes any CAEN code, at any level and from any revision, and the route brings it to what the series publishes — climbing to a parent or translating it through the official INS correspondence; meta.caen states the requested code, the one used and whether it was climbed or converted. grupare is for the source aggregates that are not CAEN codes.

What it is for

  • A region's productivity: its GDP against the hours worked there.
  • Where investment concentrates, by branch and by region.
  • The number of employees by county and branch — the finest employment series in the module.
  • The share of wages in a region's value added.

Response structure

FieldTypeDescription
data.de_la integer Start of the interval the response covers.
data.pana_la integer End of the interval the response covers, inclusive.
data.filtre.teritoriu array The territory the value refers to.
data.ani array Years for which values exist.
data.serii[].indicator string The statistical indicator the value refers to.
data.serii[].unitate string Travels with each series, because the indicators do not share a unit.
data.serii[].teritoriu string The short code, shared with teritoriu_cod in /financiar/v1/pib/judete.
data.serii[].denumire_teritoriu string The exact source wording, as written in its own matrix.
data.serii[].nivel_teritoriu string Territorial level of the value (country, region, county, locality).
data.serii[].ramura string Branch of activity.
data.serii[].denumire_ramura string Name of the branch of activity, as published by the source.
data.serii[].ani_publicati integer Years the source actually published for this series.
data.serii[].valori object The values of the series, by period.
data.identitati.toleranta string How much deviation is accepted before the identity counts as unclosed — the source rounding, not an error.
data.identitati.ramuri.identitate string The identity being checked — which sum must equal which total.
data.identitati.ramuri.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.ramuri.verificari integer Computed from the database: a response filtered to a few branches could not run it.
data.identitati.ramuri.inchise integer How many checks closed within tolerance.
data.identitati.teritorii.identitate string The identity being checked — which sum must equal which total.
data.identitati.teritorii.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.teritorii.verificari integer How many combinations were checked.
data.identitati.teritorii.inchise integer How many checks closed within tolerance.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.acoperire.de_la integer The first period we have data for.
meta.acoperire.pana_la integer The last period we have data for.
meta.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.nota_implicit string Which value was used when the parameter was not sent.
meta.nota_unitati string What to know about the units of measure in the response.
meta.nota_judet string What to know about the county breakdown: what it covers and what stays unattributed.
meta.nota_cod string How to read the code and which code list it comes from.
meta.nota_identitate string How the identity above is checked and what it means when it does not close.
meta.nota_pib string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.fara_date string data is null and this says why. The projection over the INS data is empty. The list is at /conturi-regionale/teritorii. The combination has no series; the usual case is an indicator that does not reach county level. As on the other series.
meta.fara_date_cod string 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.
meta.caen[] object[] How the caen parameter was understood: the requested code, the revision it was read in and the code the route used. For a list of codes, one object per code.
meta.caen[].cerut string The CAEN code sent, normalised (upper case, no dots).
meta.caen[].versiune_cerut string The revision the code sent was read in: the one in caen_versiune, otherwise the first it exists in.
meta.caen[].folosit string The code the series used: the requested one, its first published parent or the source aggregate that contains it (02-03).
meta.caen[].cod string The CAEN code the key used stands for, when the series names its activities differently (agricultura = 01) or the key is an aggregate (62-63).
meta.caen[].nivel string The level of the code used — on company routes, of the requested code: sectiune, subsectiune, diviziune, grupa, clasa or agregat.
meta.caen[].denumire string The name of the code, from the CAEN nomenclature.
meta.caen[].versiune_serie string The CAEN revision the series is published in.
meta.caen[].conversie boolean true when the code was translated from one revision to another through the official INS correspondence.
meta.caen[].urcat boolean true when the series does not publish the requested code and a higher level was used.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/conturi-regionale?per_pagina=3
{
    "data": {
        "de_la": 2000,
        "pana_la": 2023,
        "filtre": {
            "teritoriu": [
                "total"
            ]
        },
        "ani": [
            2000,
            2001,
            2002,
            2003,
            2004,
            2005,
            2006,
            2007,
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023
        ],
        "serii": [
            {
                "indicator": "formare_capital_fix",
                "unitate": "milioane lei",
                "teritoriu": "total",
                "denumire_teritoriu": "Total",
                "nivel_teritoriu": "tara",
                "ramura": "administratie_educatie_sanatate",
                "denumire_ramura": "ADMINISTRATIE PUBLICA SI APARARE; ASIGURARI SOCIALE DIN SISTEMUL PUBLIC; INVATAMANT; SANATATE SI ASISTENTA SOCIALA",
                "ani_publicati": 24,
                "valori": {
                    "2000": "2538.7",
                    "2001": "3324.2",
                    "2002": "4807.8",
                    "2003": "6817.8",
                    "2004": "5268",
                    "2005": "7176.9",
                    "2006": "10107.5",
                    "2007": "15016.2",
                    "2008": "21408",
                    "2009": "15805.2",
                    "2010": "17688.5",
                    "2011": "23259.6",
                    "2012": "20082.1",
                    "2013": "16182.5",
                    "2014": "12442.8",
                    "2015": "18017.6",
                    "2016": "16233.8",
                    "2017": "13505.7",
                    "2018": "15282.5",
                    "2019": "18482.6",
                    "2020": "22319.8",
                    "2021": "28830.6",
                    "2022": "25814.8",
                    "2023": "47025.7"
                }
            }
        ],
        "identitati": {
            "toleranta": "0.5",
            "ramuri": {
                "identitate": "ramura `total` = suma celor zece ramuri",
                "nota": "Verificat pe toată proiecţia: 336 din 336 la remunerare, 336 din 336 la investiţii, 2.688 din 2.688 la ocupare şi 672 din 672 la ore lucrate. Suma se calculează din bază, ca să poată fi verificată şi când răspunsul nu poartă toate ramurile.",
                "verificari": 144,
                "inchise": 144
            },
            "teritorii": {
                "identitate": "teritoriul `total` = cele opt regiuni + `extra_regiuni`",
                "nota": "Verificat pe toată proiecţia: 264/264, 264/264, 528/528 şi 528/528 pe cele patru surse. ⚠️ `extra_regiuni` chiar contează la remunerare: fără el, identitatea cade de la 264 la 192. La investiţii e zero, deci acolo nu se vede.",
                "verificari": 1584,
                "inchise": 1584
            }
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — conturile regionale (TEMPO, matricile CON116A, CON117A, CON118A şi CON119A).",
        "acoperire": {
            "de_la": 2000,
            "pana_la": 2023
        },
        "serii_returnate": 66,
        "nota_implicit": "Fără `teritoriu` şi fără `nivel_teritoriu`, răspunsul se opreşte la ţară. Cele 56 de teritorii sunt la /financiar/v1/conturi-regionale/teritorii.",
        "nota_unitati": "Răspunsul poartă mai multe unităţi (milioane lei, mii ore, mii persoane): indicatorii nu se adună între ei.",
        "nota_judet": "Numai `populatie_ocupata` şi `salariati` coboară la judeţ; ceilalţi patru indicatori se opresc la regiune.",
        "nota_cod": "Codul de teritoriu e acelaşi cu `teritoriu_cod` din /financiar/v1/pib/judete şi e acceptat şi acolo ca filtru.",
        "nota_identitate": "Verificat pe acest răspuns: ramura `total` e suma celor zece ramuri în 144 din 144 celule.",
        "nota_pib": "Pentru PIB-ul regional pe care îl produc aceşti factori: /financiar/v1/pib/judete."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
404caen_nepublicatNeither the code nor its parents are published in the series; detalii.disponibile lists the keys. grupare_nepublicata — the grouping is not in the series; the response lists them.
422caen_inexistentThe code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. raspuns_prea_mare — the request would return more than 20,000 cells. Plus an indicator, territory, level, branch or year outside the expected form. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.
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": "caen_inexistent",
        "mesaj": "The code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. raspuns_prea_mare — the request would return more than 20,000 cells. Plus an indicator, territory, level, branch or year outside the expected form. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
        "detalii": {
            "nivel_teritoriu": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}