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,CON118AandCON119A. 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_ocupataandsalariati(who works),ore_lucrate_ocupatiandore_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,
metasays so. - ⚠️ Only
populatie_ocupataandsalariatigo down to county level — 56 territories. The other four stop at region, 14 territories. A request that crosses them wrongly getsfiltre_fara_seriiwith the reason spelled out, not an empty response. That makesCON118Athe 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:TotalversusTOTAL,Regiunea Bucuresti - IlfovversusRegiunea BUCURESTI - ILFOV, whileRegiunea Nord -VestandRegiunea Sud -Vest - Olteniahave the space in the wrong place. The code is the same asteritoriu_codin/financiar/v1/pib/judeteand 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
totalbranch = 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. Thetotalterritory = the eight regions +extra_regiuni: 264/264, 264/264, 528/528, 528/528. - ⚠️
extra_regiunigenuinely 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_regiunicarries its own level so it never pollutes rankings. - ✅ For
populatie_ocupataandsalariatithe total also closes as the sum of the 42 counties plusextra_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.
caentakes 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.caenstates the requested code, the one used and whether it was climbed or converted.grupareis 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."
}
}
GEThttps://oneapi.ro/api/financiar/v1/conturi-regionale?per_pagina=3&nivel_teritoriu=tara
{
"data": {
"de_la": 2000,
"pana_la": 2023,
"filtre": {
"nivel_teritoriu": "tara"
},
"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_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."
}
}
GEThttps://oneapi.ro/api/financiar/v1/conturi-regionale?caen=4711&de_la=2022
{
"data": {
"de_la": 2022,
"pana_la": 2023,
"filtre": {
"teritoriu": [
"total"
],
"ramura": [
"comert_transport_horeca"
]
},
"ani": [
2022,
2023
],
"serii": [
{
"indicator": "formare_capital_fix",
"unitate": "milioane lei",
"teritoriu": "total",
"denumire_teritoriu": "Total",
"nivel_teritoriu": "tara",
"ramura": "comert_transport_horeca",
"denumire_ramura": "COMERT CU RIDICATA SI CU AMANUNTUL; REPARAREA AUTOVEHICULELOR SI MOTOCICLETELOR; TRANSPORT SI DEPOZITARE; HOTELURI SI RESTAURANTE",
"ani_publicati": 2,
"valori": {
"2022": "60229.6",
"2023": "108317.3"
}
}
],
"identitati": {
"toleranta": "0.5",
"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": 12,
"inchise": 12
}
}
},
"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": 6,
"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_pib": "Pentru PIB-ul regional pe care îl produc aceşti factori: /financiar/v1/pib/judete.",
"caen": [
{
"cerut": "4711",
"versiune_cerut": "Rev.2",
"folosit": "comert_transport_horeca",
"cod": "G",
"nivel": "agregat",
"denumire": "COMERŢ CU RIDICATA ŞI CU AMĂNUNTUL; REPARAREA AUTOVEHICULELOR ŞI MOTOCICLETELOR",
"versiune_serie": "Rev.2",
"conversie": false,
"urcat": true
}
]
}
}
GEThttps://oneapi.ro/api/financiar/v1/conturi-regionale?de_la=2024-06-15
{
"data": null,
"meta": {
"de_la": 2024,
"pana_la": null,
"acoperire": {
"de_la": 2000,
"pana_la": 2023
},
"fara_date": "Intervalul cerut e în întregime în afara acoperirii (2000 → 2023).",
"fara_date_cod": "in_afara_acoperirii"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Missing or invalid token. |
| 403 | feature_indisponibil | financiar.indici is not in the current plan. |
| 404 | caen_nepublicat | Neither 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. |
| 422 | caen_inexistent | 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. |
| 429 | cota_depasita | The 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."
]
}
}
}