oneapi
Sign in
Financiar v1 / Inflatie

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.

GET
https://oneapi.ro/api/financiar/v1/industrie/productie-valoare

Query parameters

NameTypeDescriptionAccepted values
masuraoptional string | null Optional: valoare (default, million RON) or structura (percent). valoarestructura
revizieoptional string | null Optional: caen_rev2 (default, 2008-2011) or caen_rev1 (1997-2008). They do not join. caen_rev1caen_rev2
defalcareoptional string | null Optional: activitate (default) or proprietate — the latter only in Rev.1, as absolute values. activitateproprietate
niveloptional string | null Optional: total, sectiune (default), diviziune, agregat, forma. totalsectiunediviziuneagregatforma
de_laoptional string | null Optional, YYYY, between 1997 and 2011. e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY. e.g. 2011e.g. 2011-01-01
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
categorielistoptional text Optional, only with defalcare=proprietate: total, proprietate_majoritar_de_stat, proprietate_majoritar_privata. Activities are requested through caen or grupare. totalproprietate_majoritar_de_statproprietate_majoritar_privata
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 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
gruparelistoptional text Optional, separated by commas: the source aggregates that are not CAEN codes — 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; in caen_rev2 (2008-2011) "10" is food manufacturing and "11" is beverages. Joined on code, the two revisions would silently mix coal with bread. revizie is 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. nivel separates 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. 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

  • 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

FieldTypeDescription
data.masura string The measure reported — what the value actually counts or sums.
data.revizie string Source revision the values come from; revisions are not comparable with one another.
data.descriere_revizie string
data.defalcare string The breakdown applied to the values.
data.granularitate string How fine the time step of the values is.
data.unitate string milioane lei RON for the valoare measure, procente for structura.
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.masura string The measure reported — what the value actually counts or sums.
data.filtre.revizie string Source revision the values come from; revisions are not comparable with one another.
data.filtre.defalcare string The breakdown applied to the values.
data.filtre.nivel string Level in the classification hierarchy — the deeper, the more detailed.
data.ani array Years for which values exist.
data.serii[].categorie string Category in the source classification.
data.serii[].denumire string The name, exactly as the source publishes it.
data.serii[].cod_caen string The code within that revision — the letter for sections, the number for divisions. Not comparable across revisions.
data.serii[].nivel string The level in a hierarchy the source publishes flat. Levels do not add up across each other.
data.serii[].descriere_nivel string
data.serii[].ani_publicati integer Years the source actually published for this series.
data.serii[].valori object The values of the series, by period.
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.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.nota_serie_inchisa string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_revizie string What changed at the last source revision and what is no longer comparable.
meta.nota_partitie string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_implicit string Which value was used when the parameter was not sent.
meta.nota_lista string What the list contains and what it does not — its limits.
data.serii[].publicat Present only for pre-2005 years: the raw figure in billions of old lei and the factor applied.
meta.fara_date string data is null and this says why. The projection over INS data is empty. As for 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/industrie/productie-valoare?per_pagina=3
{
    "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."
    }
}

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 — 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.
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 — 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."
            ]
        }
    }
}