Industrial production by value and its structure
What industrial output was worth and how it was split across activities — 1,094 values, annually from 1997 to 2011, from the matrices IND103A–IND103E. A closed series: the source publishes nothing after 2011, so this route is for history, not for the current picture.
⚠️ Two NACE revisions, with the same code meaning different things. In caen_rev1 (1997–2008) code „10" is coal mining and „11" is hydrocarbons; in caen_rev2 (2008–2011) „10" is food manufacturing and „11" is beverage manufacturing. Joined on the code, the two revisions would silently mix coal with bread. revizie is part of the series' identity and the series are not spliced.
⚠️ The Rev. 2 divisions are not a partition, the Rev. 1 ones are. Measured on the structure, year by year: in Rev. 1 every level closes exactly — total 100.00, the 3 sections 100.00, the 28 divisions 100.00. In Rev. 2 the total and the 4 sections close at 100.00, but the divisions give only 81.6–83.9%. A sixth of industry is not detailed by division, and the difference is not rounding.
⚠️ The code list mixes three levels — total, section and division, plus an aggregate in Rev. 2. The structure summed across everything gives 300%, because it is the same hundred three times over; nivel separates them.
In 2008, the only year published by both revisions, the total is practically the same — 352,222.3 million lei in Rev. 1 against 352,702.4 in Rev. 2, a 0.14% difference — so the perimeter of industry does not change between revisions, only how it is cut by activity.
Query parameters
valoare (default, million RON) or structura (percent).
valoarestructura
caen_rev2 (default, 2008-2011) or caen_rev1 (1997-2008). They do not join.
caen_rev1caen_rev2
activitate (default) or proprietate — the latter only in Rev.1, as absolute values.
activitateproprietate
total, sectiune (default), diviziune, agregat, forma.
totalsectiunediviziuneagregatforma
YYYY, between 1997 and 2011.
e.g. 2024-06-15
YYYY.
e.g. 2011e.g. 2011-01-01
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
defalcare=proprietate: total, proprietate_majoritar_de_stat, proprietate_majoritar_privata. Activities are requested through caen or grupare.
totalproprietate_majoritar_de_statproprietate_majoritar_privata
C), division (62), group, class (6201) — from any revision. It is brought to the activity in the chosen revision — section or division, with the code the source gives in cod_caen; what was used is in meta.caen.
e.g. 2910,0510
industrie/total and the alte_activitati_extractive_si_servicii_anexe_extractiei aggregate (08–09, Rev.2). Not sent together with caen.
e.g. alte_activitati_extractive_si_servicii_…e.g. industrie
How it behaves
- What industrial production was worth and how it split across activities — 1,094 values, annual from 1997 to 2011, from TEMPO matrices
IND103A-IND103E. - ⚠️ Closed series. The source publishes nothing after 2011. This is historical data, not short-term indicators — for the current state of industry, see the monthly indices at /financiar/v1/industrie/indici.
- ⚠️ Two CAEN revisions, where the same code means different things. In
caen_rev1(1997-2008) code "10" is coal mining and "11" is hydrocarbons; incaen_rev2(2008-2011) "10" is food manufacturing and "11" is beverages. Joined on code, the two revisions would silently mix coal with bread.revizieis part of the series identity, and the nomenclatures do not translate into one another. - ⚠️ Rev.2 divisions are not a partition; Rev.1 divisions are. Measured on the structure, year by year: in Rev.1 every level closes exactly — total 100.00, the 3 sections 100.00, the 28 divisions 100.00. In Rev.2 the total and the 4 sections close at 100.00, but the 30-31 divisions give only 81.6-83.9%. A sixth of industry is never broken down by division, and the difference is not rounding: in Rev.2 the sum of divisions simply is not the total.
- ⚠️ The nomenclature mixes three levels — total, CAEN section and division, plus one aggregate in Rev.2. That is why the structure summed over everything gives 300%, not 100%: it is the same hundred three times over.
nivelseparates them, and sections are returned by default. - In 2008, the only year both revisions publish, the total is practically the same — 352,222.3 million lei in Rev.1 against 352,702.4 in Rev.2, a 0.14% difference. The perimeter of industry does not change between revisions; only the way it is cut into activities does.
- The ownership breakdown (majority state / majority private) exists only in Rev.1, only as absolute values and only between 1998 and 2008.
- 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 an industrial division weighed in national production, year by year, up to 2011.
- The shift of industrial production from the state sector to the private one, measured.
- Historical background for a series that starts in 2005 or later.
Response structure
milioane lei RON for the valoare measure, procente for structura.
data is null and this says why. The projection over INS data is empty. As for 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": {
"masura": "valoare",
"revizie": "caen_rev2",
"descriere_revizie": "CAEN Rev.2, publicată 2008-2011 — 4 secţiuni; diviziunile NU acoperă tot totalul",
"defalcare": "activitate",
"granularitate": "anual",
"unitate": "milioane lei RON",
"de_la": 2008,
"pana_la": 2011,
"filtre": {
"masura": "valoare",
"revizie": "caen_rev2",
"defalcare": "activitate",
"nivel": "sectiune"
},
"ani": [
2008,
2009,
2010,
2011
],
"serii": [
{
"categorie": "distributia_apei_salubritate_gestionarea_deseurilor_activitati_de_decontaminare",
"denumire": "DISTRIBUTIA APEI; SALUBRITATE, GESTIONAREA DESEURILOR, ACTIVITATI DE DECONTAMINARE",
"cod_caen": "E",
"nivel": "sectiune",
"descriere_nivel": "secţiune CAEN, purtând litera ei",
"ani_publicati": 4,
"valori": {
"2008": "9451.1",
"2009": "9195.5",
"2010": "12111.9",
"2011": "12653.3"
}
}
]
},
"meta": {
"sursa": "Institutul Naţional de Statistică — producţia industrială pe activităţi şi forme de proprietate (TEMPO, matricile IND103A-IND103E).",
"acoperire": {
"de_la": "2008-01-01",
"pana_la": "2011-01-01"
},
"serii_returnate": 4,
"nota_serie_inchisa": "⚠️ Serie închisă: sursa nu mai publică nimic după 2011. E date de istoric, nu de conjunctură — pentru starea curentă a industriei sunt /financiar/v1/industrie/indici.",
"nota_revizie": "⚠️ Acelaşi cod numeric înseamnă activităţi diferite în cele două revizii CAEN — „10\" e extracţia cărbunelui în Rev.1 şi industria alimentară în Rev.2. Seriile nu se lipesc.",
"nota_partitie": "În Rev.2 doar totalul şi secţiunile închid la 100%. Diviziunile dau 81,6-83,9% — restul nu e detaliat.",
"nota_implicit": "Fără `caen`, `grupare` sau `nivel`, răspunsul ar amesteca cele trei niveluri. Implicit: secţiunile.",
"nota_lista": "Nomenclatorul fiecărei revizii: /financiar/v1/industrie/productie-valoare/nomenclator."
}
}
{
"data": {
"masura": "valoare",
"revizie": "caen_rev2",
"descriere_revizie": "CAEN Rev.2, publicată 2008-2011 — 4 secţiuni; diviziunile NU acoperă tot totalul",
"defalcare": "activitate",
"granularitate": "anual",
"unitate": "milioane lei RON",
"de_la": 2008,
"pana_la": 2011,
"filtre": {
"masura": "valoare",
"revizie": "caen_rev2",
"defalcare": "activitate",
"categorie": [
"fabricarea_autovehiculelor_de_transport_rutier_a_remorcilor_si_semiremorcilor",
"extractia_carbunelui_superior_si_inferior"
]
},
"ani": [
2008,
2009,
2010,
2011
],
"serii": [
{
"categorie": "extractia_carbunelui_superior_si_inferior",
"denumire": "Extractia carbunelui superior si inferior",
"cod_caen": "05",
"nivel": "diviziune",
"descriere_nivel": "diviziune CAEN, purtând codul numeric",
"ani_publicati": 4,
"valori": {
"2008": "2130.4",
"2009": "1751.1",
"2010": "1991.8",
"2011": "2118.4"
}
}
]
},
"meta": {
"sursa": "Institutul Naţional de Statistică — producţia industrială pe activităţi şi forme de proprietate (TEMPO, matricile IND103A-IND103E).",
"acoperire": {
"de_la": "2008-01-01",
"pana_la": "2011-01-01"
},
"serii_returnate": 2,
"nota_serie_inchisa": "⚠️ Serie închisă: sursa nu mai publică nimic după 2011. E date de istoric, nu de conjunctură — pentru starea curentă a industriei sunt /financiar/v1/industrie/indici.",
"nota_revizie": "⚠️ Acelaşi cod numeric înseamnă activităţi diferite în cele două revizii CAEN — „10\" e extracţia cărbunelui în Rev.1 şi industria alimentară în Rev.2. Seriile nu se lipesc.",
"nota_partitie": "În Rev.2 doar totalul şi secţiunile închid la 100%. Diviziunile dau 81,6-83,9% — restul nu e detaliat.",
"nota_lista": "Nomenclatorul fiecărei revizii: /financiar/v1/industrie/productie-valoare/nomenclator.",
"caen": [
{
"cerut": "2910",
"versiune_cerut": "Rev.2",
"folosit": "fabricarea_autovehiculelor_de_transport_rutier_a_remorcilor_si_semiremorcilor",
"cod": "29",
"nivel": "diviziune",
"denumire": "Fabricarea autovehiculelor de transport rutier, a remorcilor și semiremorcilor",
"versiune_serie": "Rev.2",
"conversie": false,
"urcat": true
}
]
}
}
{
"data": null,
"meta": {
"de_la": "2024",
"pana_la": null,
"acoperire": {
"de_la": "2008-01-01",
"pana_la": "2011-01-01"
},
"fara_date": "Intervalul cerut e în întregime în afara acoperirii (2008-01-01 → 2011-01-01).",
"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 — over 20,000 cells. Plus measure, revision, breakdown or level outside the list. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped. caen/grupare with defalcare=proprietate, or categorie without it. defalcare_indisponibila — ownership exists only in Rev.1, as values. |
| 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 — over 20,000 cells. Plus measure, revision, breakdown or level outside the list. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped. caen/grupare with defalcare=proprietate, or categorie without it. defalcare_indisponibila — ownership exists only in Rev.1, as values.",
"detalii": {
"masura": [
"The value sent does not satisfy the parameter rule."
]
}
}
}