GDP by county
Regional gross domestic product, by branch of activity and county — annually from 2000 to 2023, in million lei. 17,136 values.
It complements /financiar/v1/pib, which is quarterly and national. There you get the economy's pace by quarter; here you get its map — the only place in the module where you can see how much each county produces.
The fifteen categories are of four kinds and do not mix: ten ramura (the components of value added), the vab aggregate, three element_trecere (taxes on products, subsidies on products, customs duties) and the pibr total. Added together, they would count the economy twice.
⚠️ Subsidies on products are published with a NEGATIVE sign, exactly as in the national account: in 2023, nationwide, −16,383.8 million lei. The correct identity is an addition that looks like a subtraction. Verified across the whole projection: pibr = vab + taxes + subsidies + customs duties closes 336 of 336 cells, with a maximum deviation of 0.3 million; anyone subtracting the subsidies gets only 24 of 336. The series carry them with semn_negativ: true.
✅ vab = the sum of the ten branches closes 1,344 of 1,344, with zero deviation.
⚠️ Taxes, subsidies and customs duties are not published by county — only for the country, macro-regions, regions and Extra-regiuni, the artificial territory where the source puts what cannot be allocated. At county level, GDP is nevertheless larger than value added in all 1,008 cells, with a mean ratio of 1.115: the taxes are included, but not published separately, so the GDP identity cannot be run at that level. Extra-regiuni has its own nivel_teritoriu, so that it does not appear in county rankings.
Every county series comes with its share of the national total, computed on the same category — the figure that says how much the county weighs in the economy. In 2023, Bucharest makes up 26.02% of GDP, followed by Cluj with 5.33% and Timiș with 4.51%.
Query parameters
total, agregat, element_trecere, ramura.
totalagregatelement_trecereramura
TOTAL or Extra-regiuni.
max 80 car.
judet (default), tara, macroregiune, regiune, extra_regiuni.
taramacroregiuneregiunejudetextra_regiuni
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
pibr, vab, impozite, subventii, taxe_vamale — the account rows that are not branches. Branches are requested through caen or grupare. Without any of them and without nivel, only pibr is returned.
pibrvabimpozitesubventiitaxe_vamale
C), division (62), group, class (6201) — from any revision. It is brought to the A10 branch that contains it (2410 → industrie); what was used is in meta.caen.
e.g. C
industrie, comert_transport_horeca, profesionale_administrative, administratie_educatie_sanatate, spectacole_alte_servicii). Not sent together with caen.
e.g. industriee.g. comert_transport_horecae.g. profesionale_administrative
How it behaves
- Regional gross domestic product, by branch of activity and county — annually from 2000 to 2023, in millions of lei. 17,136 values from TEMPO matrix
CON103J. - It complements
/financiar/v1/pib, which is quarterly and national. That route holds the pace of the economy; this one holds its map — the only place in the module showing what each county produces. - What the data shows for 2023: Bucharest accounts for 26.02% of the country's GDP — 413,945.2 of 1,590,749.4 million lei — followed by Cluj with 5.33% (84,794.1) and Timiş with 4.51% (71,779.8). Each county series carries its own share, computed on the same category.
- The fifteen rows are of four kinds and do not mix: ten
ramura(the components of value added), thevabaggregate, threeelement_trecere— product taxes, product subsidies, customs duties — and thepibrtotal. Added together they would count the economy twice. - ⚠️ Product subsidies are published with a NEGATIVE sign, exactly as in the national account: in 2023, nationally, −16,383.8 million lei. The correct identity is an addition that looks like a subtraction. Verified across the whole projection:
pibr = vab + impozite + subventii + taxe_vamalecloses 336 of 336 cells, with a maximum gap of 0.3 million; subtracting the subsidies yields only 24 of 336. The series flags them withsemn_negativ: true. - ✅
vab= the sum of the ten branches closes 1,344 of 1,344, with zero deviation. - ⚠️ Taxes, subsidies and customs duties are not published by county — only for the country, macroregions, regions and
Extra-regiuni, an artificial territory holding what cannot be allocated. At county level GDP is nonetheless larger than value added in all 1,008 cells, with a mean ratio of 1.115: the taxes are included in the figure but not published separately, so the GDP identity cannot be run there.Extra-regiunicarries its ownnivel_teritoriu, so it never appears in county rankings. - What the structure shows: in Cluj, in 2023, the largest branch is
it_comunicatii, at 16,207.6 million lei — above trade-transport-hospitality (14,536.6) and above industry (13,667.7). - Territories also carry a short code,
teritoriu_cod—bucuresti_ilfov,nord_vest,cluj,total— which is also accepted as theteritoriufilter. It was needed because the INS sources write the same regions differently from one matrix to the next:TotalversusTOTAL,Regiunea Nord -VestversusRegiunea NORD-VEST. It is the same code as in /financiar/v1/conturi-regionale, so the two routes can be joined. - 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
- How much a county weighs in the national economy, in percent.
- The economic structure of a county: which branch produces the most.
- Comparing counties on the same branch, over a long series.
Response structure
teritoriu filter.
total, agregat, element_trecere or ramura — they do not add together.
subventii, which is ADDED in the identity.
data is null and this says why. The projection over the INS data is empty. The code is not published; the full list is at /pib/judete/categorii. The name does not appear. As on the other series.
fara_date is prose and may be rephrased, this is not.
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.
caen_versiune, otherwise the first it exists in.
02-03).
agricultura = 01) or the key is an aggregate (62-63).
sectiune, subsectiune, diviziune, grupa, clasa or agregat.
true when the code was translated from one revision to another through the official INS correspondence.
true when the series does not publish the requested code and a higher level was used.
Response examples
{
"data": {
"unitate": "milioane lei",
"de_la": 2020,
"pana_la": 2022,
"filtre": {
"categorie": [
"pibr"
],
"nivel_teritoriu": "judet"
},
"ani": [
2020,
2021,
2022
],
"serii": [
{
"teritoriu": "Alba",
"teritoriu_cod": "alba",
"nivel_teritoriu": "judet",
"categorie": "pibr",
"nivel": "total",
"denumire": "Produs intern brut regional (PIBR) - total",
"unitate": "milioane lei",
"pondere_in_tara_procent": {
"2020": "1.64",
"2021": "1.70",
"2022": "1.55"
},
"ani_publicati": 3,
"valori": {
"2020": "17521",
"2021": "20254.4",
"2022": "21583.5"
}
}
],
"identitati": {
"identitate_vab": "`vab` = suma celor zece ramuri",
"identitate_pib": "`pibr` = `vab` + `impozite` + `subventii` + `taxe_vamale`",
"nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV — în 2023, pe ţară, −16.383,8 milioane lei. Identitatea e o ADUNARE care arată ca o scădere. Verificat pe toată proiecţia: adunarea se închide 336 din 336 de celule, cu abatere maximă de 0,3 milioane; scăderea, doar 24 din 336.",
"nota_vab": "Verificat pe toată proiecţia: `vab` = suma celor zece ramuri se închide 1.344 din 1.344, cu abatere zero.",
"nota_elemente": "Impozitele, subvenţiile şi taxele vamale nu se publică pe judeţe — doar pe ţară, macroregiuni, regiuni şi pe `Extra-regiuni`, teritoriul artificial în care sursa pune ce nu se repartizează. Pe judeţ, PIB-ul e totuşi mai mare decât valoarea adăugată în toate cele 1.008 celule, cu un raport mediu de 1,115: impozitele sunt incluse, dar nu şi publicate separat, deci identitatea PIB nu se poate rula acolo.",
"toleranta": "1"
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — produsul intern brut regional (TEMPO, matricea CON103J).",
"acoperire": {
"de_la": 2000,
"pana_la": 2023
},
"serii_returnate": 42,
"nota_national": "Pentru PIB-ul trimestrial pe ţară, cu opt forme şi două optici ale contului: /financiar/v1/pib.",
"nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV — în 2023, pe ţară, −16.383,8 milioane lei. Identitatea e o ADUNARE care arată ca o scădere. Verificat pe toată proiecţia: adunarea se închide 336 din 336 de celule, cu abatere maximă de 0,3 milioane; scăderea, doar 24 din 336.",
"nota_vab": "Verificat pe toată proiecţia: `vab` = suma celor zece ramuri se închide 1.344 din 1.344, cu abatere zero.",
"nota_elemente": "Impozitele, subvenţiile şi taxele vamale nu se publică pe judeţe — doar pe ţară, macroregiuni, regiuni şi pe `Extra-regiuni`, teritoriul artificial în care sursa pune ce nu se repartizează. Pe judeţ, PIB-ul e totuşi mai mare decât valoarea adăugată în toate cele 1.008 celule, cu un raport mediu de 1,115: impozitele sunt incluse, dar nu şi publicate separat, deci identitatea PIB nu se poate rula acolo.",
"nota_niveluri": "Cele patru feluri de rânduri — ramuri, agregat, elemente de trecere şi total — nu se adună între ele.",
"nota_pondere": "Fiecare serie de judeţ poartă ponderea ei în totalul ţării, pe aceeaşi categorie."
}
}
{
"data": {
"unitate": "milioane lei",
"de_la": 2018,
"pana_la": 2022,
"filtre": {
"categorie": [
"pibr"
],
"nivel_teritoriu": "regiune"
},
"ani": [
2018,
2019,
2020,
2021,
2022
],
"serii": [
{
"teritoriu": "Regiunea BUCURESTI - ILFOV",
"teritoriu_cod": "bucuresti_ilfov",
"nivel_teritoriu": "regiune",
"categorie": "pibr",
"nivel": "total",
"denumire": "Produs intern brut regional (PIBR) - total",
"unitate": "milioane lei",
"pondere_in_tara_procent": {
"2018": "26.80",
"2019": "27.59",
"2020": "27.75",
"2021": "28.10",
"2022": "28.88"
},
"ani_publicati": 5,
"valori": {
"2018": "255476.9",
"2019": "292496.4",
"2020": "295252.9",
"2021": "333356.7",
"2022": "399992.9"
}
}
],
"identitati": {
"identitate_vab": "`vab` = suma celor zece ramuri",
"identitate_pib": "`pibr` = `vab` + `impozite` + `subventii` + `taxe_vamale`",
"nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV — în 2023, pe ţară, −16.383,8 milioane lei. Identitatea e o ADUNARE care arată ca o scădere. Verificat pe toată proiecţia: adunarea se închide 336 din 336 de celule, cu abatere maximă de 0,3 milioane; scăderea, doar 24 din 336.",
"nota_vab": "Verificat pe toată proiecţia: `vab` = suma celor zece ramuri se închide 1.344 din 1.344, cu abatere zero.",
"nota_elemente": "Impozitele, subvenţiile şi taxele vamale nu se publică pe judeţe — doar pe ţară, macroregiuni, regiuni şi pe `Extra-regiuni`, teritoriul artificial în care sursa pune ce nu se repartizează. Pe judeţ, PIB-ul e totuşi mai mare decât valoarea adăugată în toate cele 1.008 celule, cu un raport mediu de 1,115: impozitele sunt incluse, dar nu şi publicate separat, deci identitatea PIB nu se poate rula acolo.",
"toleranta": "1"
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — produsul intern brut regional (TEMPO, matricea CON103J).",
"acoperire": {
"de_la": 2000,
"pana_la": 2023
},
"serii_returnate": 8,
"nota_national": "Pentru PIB-ul trimestrial pe ţară, cu opt forme şi două optici ale contului: /financiar/v1/pib.",
"nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV — în 2023, pe ţară, −16.383,8 milioane lei. Identitatea e o ADUNARE care arată ca o scădere. Verificat pe toată proiecţia: adunarea se închide 336 din 336 de celule, cu abatere maximă de 0,3 milioane; scăderea, doar 24 din 336.",
"nota_vab": "Verificat pe toată proiecţia: `vab` = suma celor zece ramuri se închide 1.344 din 1.344, cu abatere zero.",
"nota_elemente": "Impozitele, subvenţiile şi taxele vamale nu se publică pe judeţe — doar pe ţară, macroregiuni, regiuni şi pe `Extra-regiuni`, teritoriul artificial în care sursa pune ce nu se repartizează. Pe judeţ, PIB-ul e totuşi mai mare decât valoarea adăugată în toate cele 1.008 celule, cu un raport mediu de 1,115: impozitele sunt incluse, dar nu şi publicate separat, deci identitatea PIB nu se poate rula acolo.",
"nota_niveluri": "Cele patru feluri de rânduri — ramuri, agregat, elemente de trecere şi total — nu se adună între ele.",
"nota_pondere": "Fiecare serie de judeţ poartă ponderea ei în totalul ţării, pe aceeaşi categorie."
}
}
{
"data": {
"unitate": "milioane lei",
"de_la": 2022,
"pana_la": 2023,
"filtre": {
"categorie": [
"vab",
"industrie"
],
"nivel_teritoriu": "judet"
},
"ani": [
2022,
2023
],
"serii": [
{
"teritoriu": "Alba",
"teritoriu_cod": "alba",
"nivel_teritoriu": "judet",
"categorie": "vab",
"nivel": "agregat",
"denumire": "Valoarea adaugata bruta regionala (VABR)",
"unitate": "milioane lei",
"pondere_in_tara_procent": {
"2022": "1.53",
"2023": "1.56"
},
"ani_publicati": 2,
"valori": {
"2022": "19516.3",
"2023": "22802.9"
}
}
],
"identitati": {
"identitate_vab": "`vab` = suma celor zece ramuri",
"identitate_pib": "`pibr` = `vab` + `impozite` + `subventii` + `taxe_vamale`",
"nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV — în 2023, pe ţară, −16.383,8 milioane lei. Identitatea e o ADUNARE care arată ca o scădere. Verificat pe toată proiecţia: adunarea se închide 336 din 336 de celule, cu abatere maximă de 0,3 milioane; scăderea, doar 24 din 336.",
"nota_vab": "Verificat pe toată proiecţia: `vab` = suma celor zece ramuri se închide 1.344 din 1.344, cu abatere zero.",
"nota_elemente": "Impozitele, subvenţiile şi taxele vamale nu se publică pe judeţe — doar pe ţară, macroregiuni, regiuni şi pe `Extra-regiuni`, teritoriul artificial în care sursa pune ce nu se repartizează. Pe judeţ, PIB-ul e totuşi mai mare decât valoarea adăugată în toate cele 1.008 celule, cu un raport mediu de 1,115: impozitele sunt incluse, dar nu şi publicate separat, deci identitatea PIB nu se poate rula acolo.",
"toleranta": "1"
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — produsul intern brut regional (TEMPO, matricea CON103J).",
"acoperire": {
"de_la": 2000,
"pana_la": 2023
},
"serii_returnate": 84,
"nota_national": "Pentru PIB-ul trimestrial pe ţară, cu opt forme şi două optici ale contului: /financiar/v1/pib.",
"nota_semn": "Subvenţiile pe produs sunt publicate cu semn NEGATIV — în 2023, pe ţară, −16.383,8 milioane lei. Identitatea e o ADUNARE care arată ca o scădere. Verificat pe toată proiecţia: adunarea se închide 336 din 336 de celule, cu abatere maximă de 0,3 milioane; scăderea, doar 24 din 336.",
"nota_vab": "Verificat pe toată proiecţia: `vab` = suma celor zece ramuri se închide 1.344 din 1.344, cu abatere zero.",
"nota_elemente": "Impozitele, subvenţiile şi taxele vamale nu se publică pe judeţe — doar pe ţară, macroregiuni, regiuni şi pe `Extra-regiuni`, teritoriul artificial în care sursa pune ce nu se repartizează. Pe judeţ, PIB-ul e totuşi mai mare decât valoarea adăugată în toate cele 1.008 celule, cu un raport mediu de 1,115: impozitele sunt incluse, dar nu şi publicate separat, deci identitatea PIB nu se poate rula acolo.",
"nota_niveluri": "Cele patru feluri de rânduri — ramuri, agregat, elemente de trecere şi total — nu se adună între ele.",
"nota_pondere": "Fiecare serie de judeţ poartă ponderea ei în totalul ţării, pe aceeaşi categorie.",
"caen": [
{
"cerut": "C",
"versiune_cerut": "Rev.2",
"folosit": "industrie",
"cod": "C",
"nivel": "agregat",
"denumire": "INDUSTRIA PRELUCRĂTOARE",
"versiune_serie": "Rev.2",
"conversie": false,
"urcat": false
}
]
}
}
{
"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 | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 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. interval_prea_lung — beyond 30 years for a single territory and beyond 12 when the response spans several. Plus a level or category code 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. interval_prea_lung — beyond 30 years for a single territory and beyond 12 when the response spans several. Plus a level or category code outside the expected form. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
"detalii": {
"nivel": [
"The value sent does not satisfy the parameter rule."
]
}
}
}