oneapi
Sign in
Financiar v1 / Inflatie

Nomenclature of external trade by product

The Combined Nomenclature, across the three levels the data is published over: 22 sections (Roman numerals), 97 chapters (two digits) and 1,260 headings for exports / 1,358 for imports (four digits), plus the total. With the source's exact name, the flows each code appears on, and its years.

⚠️ These are three cuts of the same goods, not disjoint categories. They are not additive with one another; the first two digits of a heading are its chapter, given in capitol.

⚠️ The source's breakdown fills in over time: the sections close the total across the whole series, the chapters and headings only from 2024. nota_completitudine gives the measured figures.

It also serves the codes used by /financiar/v1/comert-exterior/judete, which works on the first two levels.

GET
https://oneapi.ro/api/financiar/v1/comert-exterior/nomenclator

Query parameters

NameTypeDescriptionAccepted values
nivel_ncoptional string | null The Combined Nomenclature level you want the code list for: total, sectiune, capitol or pozitie. The levels cover the same goods and do NOT add up. totalsectiunecapitolpozitie

How it behaves

  • The Combined Nomenclature across the three levels the data is published on: 22 sections (Roman numerals), 97 chapters (two digits) and 1,360 four-digit headings, plus the total — 1,480 codes. With the exact source wording, the flows each code appears on and its years. nivel_nc filters a single level.
  • ⚠️ These are three cuts through the same goods, not disjoint categories. They do not add together; the first two digits of a heading are its chapter, returned in capitol.
  • ⚠️ The source breakdown fills in over time: sections close the total across the whole series, chapters and headings only from 2024. nota_completitudine carries the measured figures. And exports and imports do not share the same set of headings — fluxuri says which flow each code appears on.

What it is for

  • Choosing the right level before requesting the series.
  • Checking the years in which a code is actually published.

Response structure

FieldTypeDescription
data.coduri integer
data.pe_nivel object How many codes each level holds.
data.pe_nivel.capitol integer
data.pe_nivel.pozitie integer Position of the item in the response order.
data.pe_nivel.sectiune integer Section of the classification — the broadest level.
data.pe_nivel.total integer
data.niveluri.capitol[].nc string Code from the Combined Nomenclature of goods.
data.niveluri.capitol[].denumire string The name, exactly as the source publishes it.
data.niveluri.capitol[].fluxuri array Flow directions for which values exist.
data.niveluri.capitol[].de_la integer Start of the covered interval.
data.niveluri.capitol[].pana_la integer End of the covered interval, inclusive.
data.niveluri.pozitie[].nc string Code from the Combined Nomenclature of goods.
data.niveluri.pozitie[].denumire string The name, exactly as the source publishes it.
data.niveluri.pozitie[].capitol string
data.niveluri.pozitie[].fluxuri array Flow directions for which values exist.
data.niveluri.pozitie[].de_la integer Start of the covered interval.
data.niveluri.pozitie[].pana_la integer End of the covered interval, inclusive.
data.niveluri.sectiune[].nc string Code from the Combined Nomenclature of goods.
data.niveluri.sectiune[].denumire string The name, exactly as the source publishes it.
data.niveluri.sectiune[].fluxuri array Flow directions for which values exist.
data.niveluri.sectiune[].de_la integer Start of the covered interval.
data.niveluri.sectiune[].pana_la integer End of the covered interval, inclusive.
data.niveluri.total[].nc string Code from the Combined Nomenclature of goods.
data.niveluri.total[].denumire string The name, exactly as the source publishes it.
data.niveluri.total[].fluxuri array Flow directions for which values exist.
data.niveluri.total[].de_la integer Start of the covered interval.
data.niveluri.total[].pana_la integer End of the covered interval, inclusive.
data.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.nota_completitudine string
data.nota_partener string
data.nota_asimetrie string
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.nota_judete string A note on how to read the response: a caveat, a convention or a limit of the source.
data.niveluri.capitol[].nota Present where a code does not cover the whole series — the case of chapter 99.
meta.fara_date data is null and this says why. The projection over the INS data is empty.
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.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/comert-exterior/nomenclator
{
    "data": {
        "coduri": 1480,
        "pe_nivel": {
            "capitol": 97,
            "pozitie": 1360,
            "sectiune": 22,
            "total": 1
        },
        "niveluri": {
            "capitol": [
                {
                    "nc": "01",
                    "denumire": "01. Animale vii",
                    "fluxuri": [
                        "export",
                        "import"
                    ],
                    "de_la": 1991,
                    "pana_la": 2025
                }
            ],
            "pozitie": [
                {
                    "nc": "0101",
                    "denumire": "0101 Cai, magari, catari si bardoti, vii",
                    "capitol": "01",
                    "fluxuri": [
                        "export",
                        "import"
                    ],
                    "de_la": 1991,
                    "pana_la": 2025
                }
            ],
            "sectiune": [
                {
                    "nc": "I",
                    "denumire": "I. Animale vii si produse animale",
                    "fluxuri": [
                        "export",
                        "import"
                    ],
                    "de_la": 1991,
                    "pana_la": 2025
                }
            ],
            "total": [
                {
                    "nc": "total",
                    "denumire": "Total",
                    "fluxuri": [
                        "export",
                        "import"
                    ],
                    "de_la": 1991,
                    "pana_la": 2025
                }
            ]
        },
        "nota": "⚠️ Cele patru niveluri acoperă aceleaşi mărfuri, nu bucăţi diferite: secţiune → capitol → poziţie de patru cifre. Nu se adună între ele; `nivel_nc` alege unul singur. Primele două cifre ale unei poziţii SUNT capitolul ei, dat şi în `capitol`.",
        "nota_completitudine": "⚠️ Defalcarea se completează în timp: 35/35 de ani pe trei din cele patru combinaţii flux × partener, 34/35 pe a patra (1996) la secţiuni; capitolele închid doar din 2024 — 2 ani din 35; abateri de până la 2,12% la export şi 2,89% la import în anii vechi; poziţiile din 2024 la export şi din 2025 la import; numărul poziţiilor creşte de la 742 în 1991 la 1.170 în 2024.",
        "nota_partener": "Defalcarea pe Uniunea Europeană se publică doar pe secţiuni şi capitole.",
        "nota_asimetrie": "Exportul şi importul n-au acelaşi număr de poziţii — importăm mărfuri pe linii de nomenclator pe care nu exportăm nimic. `fluxuri` spune pe care apare fiecare cod."
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — nomenclatorul matricilor EXP101E, EXP102D, EXP101F şi EXP102F (TEMPO).",
        "nota_judete": "La /financiar/v1/comert-exterior/judete, judeţele se cer pe codul auto (`CJ`, `B`), acelaşi cu `cod_auto` din /locations/v1."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
422validareA parameter failed validation (nivel_nc); detalii says which and why.
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": "validare",
        "mesaj": "A parameter failed validation (nivel_nc); detalii says which and why.",
        "detalii": {
            "nivel_nc": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}