oneapi
Sign in
Financiar v1 / Inflatie

Sold industrial production, exports and imports

The value of industrial output sold, of exports and of imports — 12,752 values, annually 2008–2024, in RON lei, laid out on the producer's NACE Rev. 2 activity: 27 divisions and 236 classes, from the matrices IND130A and IND130B.

⚠️ This is NOT the foreign trade in /comert-exterior, and the two do not reconcile. Here it is what industrial enterprises export out of their own output sold, on the producer's NACE activity; there it is the customs/Intrastat flow, on the goods' CN code, reexports, agriculture and intermediaries included. Measured on 2024: the sum across divisions gives 423.4 billion lei, against 461.0 billion lei of FOB exports in foreign trade — an 8.2% difference.

⚠️ The classes do not sum to the division. Verified across all 1,293 division × element × year triples: 952 close, and all 341 deviations go the same way, classes below division — the signature of confidentiality suppression, not a modelling error. In division 38 the classes give zero where the division has billions. A division's total is taken from nivel=diviziune.

⚠️ The code list has no total row, neither for divisions nor for classes — and we do not assume one.

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

Query parameters

NameTypeDescriptionAccepted values
niveloptional string | null Optional: diviziune (27 positions) or clasa (236). Without it, the level comes from the codes. Classes do not add up to the division. diviziuneclasa
de_laoptional string | null Optional, YYYY, from 2008. e.g. 2024e.g. 2023e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY. e.g. 2024e.g. 2024-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
elementlistoptional text Optional, one or more of valoare_vanduta (default), export, import. valoare_vandutaexportimport
caenlistoptional text Optional, codes separated by commas: any CAEN code, from any revision. Without nivel, the classes — if every code has a published class —, otherwise the divisions; with nivel, a code above it expands into the keys under it (caen=C&nivel=diviziune). What was used is in meta.caen. e.g. Ce.g. 1011,2910

How it behaves

  • The value of sold industrial production, of exports and of imports — 12,752 values, annual from 2008 to 2024, in RON, set against the producer's CAEN Rev.2 activity: 27 divisions in IND130A and 236 classes in IND130B.
  • ⚠️ This is NOT the foreign trade at /financiar/v1/comert-exterior, and the two do not reconcile. Here is what industrial enterprises export out of their own sold production, set against the producer's CAEN activity; there is the customs and Intrastat flow, set against the CN code of the goods, re-exports, agricultural products and intermediaries included. Measured on 2024: the sum over the 27 divisions gives 423.4 billion lei, against 461.0 billion lei FOB exports in foreign trade — an 8.2% difference. Two universes, not two roundings.
  • ⚠️ Classes do not sum to the division. Checked across all 1,293 division × element × year pairs: 952 close (73.6%), and all 341 deviations point the same way — classes below the division. That single direction is the signature of confidentiality suppression, not a modelling error: in division 38 (waste collection and recovery) the classes give zero where the division has billions. A division total is taken from nivel=diviziune, never by summing classes.
  • ⚠️ The nomenclature has no total row, neither for divisions nor for classes. The route does not invent one.
  • The source labels carry the CAEN code up front ("29 Fabricarea autovehiculelor…", "0710 Extractia minereurilor feroase"); it is lifted out into cod_caen, so the activity links directly to CAEN Rev.2 elsewhere on the platform.
  • 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.

What it is for

  • How much of an industrial division's sold production goes to export, year by year.
  • The export-import balance by the producer's activity, not by the goods code.
  • The profile of a four-digit CAEN class, linked to the companies in /business/v1.
  • Sector context for a market analysis on a given industry.

Response structure

FieldTypeDescription
data.nivel string Level in the classification hierarchy — the deeper, the more detailed.
data.granularitate string How fine the time step of the values is.
data.moneda string Currency the values are expressed in.
data.unitate string RON throughout — no old lei appear, since the series starts in 2008.
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.element array The code-list item the value refers to.
data.filtre.nivel string Level in the classification hierarchy — the deeper, the more detailed.
data.ani array Years for which values exist.
data.serii[].element string The code-list item the value refers to.
data.serii[].descriere_element string
data.serii[].cod_caen string The CAEN Rev.2 code — the same one used in /business/v1, so it can be linked directly.
data.serii[].activitate string The economic activity the value refers to.
data.serii[].denumire string The name, exactly as the source publishes it.
data.serii[].nivel string Level in the classification hierarchy — the deeper, the more detailed.
data.serii[].ani_publicati integer How many years carry a value in the requested range; the rest are null, not zero. A null here is often a confidentiality suppression.
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_comert string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_clase 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.
meta.fara_date data is null and this says why. The projection over INS data is empty. As for the other series.
meta.fara_date_cod 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[].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.
meta.caen[].sfera string[] The keys at nivel under the requested code, when caen comes with a finer nivel (caen=C&nivel=diviziune).

Response examples

GEThttps://oneapi.ro/api/financiar/v1/industrie/productie-vanduta?per_pagina=3
{
    "data": {
        "nivel": "diviziune",
        "granularitate": "anual",
        "moneda": "ron",
        "unitate": "lei RON",
        "de_la": 2008,
        "pana_la": 2024,
        "filtre": {
            "element": [
                "valoare_vanduta"
            ],
            "nivel": "diviziune"
        },
        "ani": [
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024
        ],
        "serii": [
            {
                "element": "valoare_vanduta",
                "descriere_element": "valoarea producţiei industriale vândute",
                "cod_caen": "07",
                "activitate": "extractia_minereurilor_metalifere",
                "denumire": "Extractia minereurilor metalifere",
                "nivel": "diviziune",
                "ani_publicati": 7,
                "valori": {
                    "2008": "7762658",
                    "2009": null,
                    "2010": null,
                    "2011": null,
                    "2012": null,
                    "2013": null,
                    "2014": null,
                    "2015": null,
                    "2016": null,
                    "2017": null,
                    "2018": "227584607",
                    "2019": null,
                    "2020": "262416027",
                    "2021": "328252543",
                    "2022": "431521982",
                    "2023": "333559722",
                    "2024": "404735723"
                }
            }
        ]
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — valoarea producţiei industriale vândute, a exporturilor şi a importurilor (TEMPO, matricile IND130A şi IND130B).",
        "acoperire": {
            "de_la": "2008-01-01",
            "pana_la": "2024-01-01"
        },
        "serii_returnate": 27,
        "nota_comert": "⚠️ Nu e comerţul exterior din /financiar/v1/comert-exterior şi nu se reconciliază cu el: aici e producţia proprie vândută, pe activitatea CAEN a producătorului; acolo, fluxul vamal pe codul NC al mărfii. La exportul din 2024: 423,4 faţă de 461,0 miliarde lei.",
        "nota_clase": "⚠️ Clasele nu însumează diviziunea — suprimarea de confidenţialitate le lasă sub ea în 341 din 1.293 de perechi verificate, mereu în acelaşi sens. Totalul unei diviziuni se ia de la `nivel=diviziune`.",
        "nota_implicit": "Implicite: element.",
        "nota_lista": "Nomenclatorul, cu codurile CAEN pe ambele niveluri: /financiar/v1/industrie/productie-vanduta/nomenclator."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
404caen_inexistentThe code exists in no CAEN revision. caen_nepublicat — neither the code nor its parents are published in the series; detalii.disponibile lists the keys.
422raspuns_prea_mareOver 20,000 cells. Plus element, level or CAEN code outside the expected shape. 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": "raspuns_prea_mare",
        "mesaj": "Over 20,000 cells. Plus element, level or CAEN code outside the expected shape. 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."
            ]
        }
    }
}