oneapi
Autentificare
Financiar v1 / Inflatie

Comerţul exterior pe mărfuri

Exportul FOB şi importul CIF pe nomenclatorul combinat, la nivel naţional, anual din 1991 până
în 2025
, în dolari şi euro. 188.445 de valori din matricile TEMPO EXP101E/EXP102D (secţiuni
şi capitole) şi EXP101F/EXP102F (poziţii de patru cifre).

Trei niveluri de nomenclator peste acelaşi total: 22 de secţiuni, 97 de capitole şi 1.260 de
poziţii la export (1.358 la import). Nu se adună între ele; nivel_nc alege unul singur, iar
primele două cifre ale unei poziţii sunt chiar capitolul ei, dat în capitol.

⚠️ Cu cât cobori în nomenclator, cu atât defalcarea devine completă mai târziu. Măsurat pe toată
seria, cu prag RELATIV (0,01% — la valori de ordinul a 100 de miliarde de mii, un prag absolut n-ar
însemna nimic): secţiunile închid totalul în 35 din 35 de ani pe trei din cele patru combinaţii
flux × partener şi 34/35 pe a patra (abaterea reală e în 1996); capitolele abia din 2024,
cu abateri de până la 2,12% la export şi 2,89% la import în anii vechi; poziţiile din 2024 la
export şi 2025 la import, numărul lor crescând de la 742 în 1991 la 1.170 în 2024.

⚠️ partener=uniunea_europeana există doar pe secţiuni şi capitole — poziţiile de patru cifre
n-au defalcarea asta. Cerută pe ele, răspunsul e un refuz explicit, nu o listă goală.

⚠️ 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.

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

Parametri de interogare

NumeTipDescriereValori acceptate
nivel_ncopțional string | null Opţional: total (implicit), sectiune, capitol, pozitie. totalsectiunecapitolpozitie
parteneropțional string | null Opţional: total (implicit) ori uniunea_europeana, doar pe secţiuni şi capitole. totaluniunea_europeana
monedaopțional string | null Opţional: eur (implicit) ori usd. usdeur
de_laopțional integer | null Opţional, an, din 1991. 1991 – 2100
pana_laopțional integer | null Opţional, an. 1991 – 2100
fluxlistăopțional text Opţional: export, import. Fără el, amândouă. exportimport
nclistăopțional text Opţional: secţiuni cu cifre romane, capitole cu două cifre, poziţii cu patru cifre ori total. ex. total

Cum se comportă

  • Exportul FOB şi importul CIF pe nomenclatorul combinat, la nivel naţional, anual din 1991 până în 2025, în dolari şi euro. 188.445 de valori din matricile TEMPO EXP101E/EXP102D (secţiuni şi capitole) şi EXP101F/EXP102F (poziţii de patru cifre).
  • Trei niveluri peste acelaşi total: 22 de secţiuni, 97 de capitole şi 1.260 de poziţii la export / 1.358 la import. Nu se adună între ele — nivel_nc alege unul singur. Primele două cifre ale unei poziţii sunt chiar capitolul ei, dat în capitol, deci gruparea se poate face fără o a doua cerere.
  • ⚠️ Cu cât cobori în nomenclator, cu atât defalcarea devine completă mai târziu. Măsurat pe toată seria, cu prag relativ (0,01% — la valori de ordinul a 100 de miliarde de mii, un prag absolut n-ar însemna nimic): secţiunile închid totalul în 35 din 35 de ani pe trei din cele patru combinaţii flux × partener şi 34/35 pe a patra, singura abatere reală fiind în 1996; capitolele închid abia din 2024, cu abateri de până la 2,12% la export şi 2,89% la import în anii vechi; poziţiile din 2024 la export şi 2025 la import. Nu e o eroare — e defalcarea sursei care se completează în timp, iar identitati spune din ce an, pe fiecare flux.
  • ⚠️ partener=uniunea_europeana există doar pe secţiuni şi capitole. Poziţiile de patru cifre n-au defalcarea asta; cerută pe ele, răspunsul e un refuz explicit, nu o listă goală.
  • ⚠️ Exportul şi importul n-au acelaşi număr de poziţii — 1.260 faţă de 1.358: importăm mărfuri pe linii de nomenclator pe care nu exportăm nimic. fluxuri din nomenclator spune pe care apare fiecare cod.
  • Numărul poziţiilor publicate creşte de la 742 în 1991 la 1.170 în 2024 — încă un semn că detaliul se adânceşte în timp.
  • Faţă de /financiar/v1/comert-exterior/judete, aici seria e anuală şi merge până în 1991, dar se opreşte la nivel naţional; acolo e lunară, din 2011, şi coboară la judeţ.

La ce folosește

  • Ce anume exportă România, pe grupe fine de mărfuri, pe treizeci şi cinci de ani.
  • Dependenţa de o singură poziţie de nomenclator — de pildă autoturismele.
  • Cât din comerţul unei secţiuni merge către Uniunea Europeană.
  • Comparaţia export/import pe aceeaşi poziţie, ca măsură a specializării.

Structura răspunsului

CâmpTipDescriere
data.de_la integer Începutul intervalului acoperit de răspuns.
data.pana_la integer Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.filtre.nivel_nc string
data.filtre.partener string
data.filtre.moneda string Moneda în care sunt exprimate valorile.
data.ani array Anii pentru care există valori.
data.serii[].flux string Sensul fluxului (de regulă import ori export).
data.serii[].nc string Codul din Nomenclatorul Combinat al mărfurilor.
data.serii[].nivel_nc string total, sectiune, capitol ori pozitie. Nivelurile nu se adună între ele.
data.serii[].denumire string Denumirea, aşa cum o publică sursa.
data.serii[].partener string
data.serii[].moneda string Moneda în care sunt exprimate valorile.
data.serii[].unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.serii[].ani_publicati integer Anii pe care sursa i-a publicat efectiv pentru seria asta.
data.serii[].valori object Valorile seriei, pe perioade.
data.identitati.sectiune.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.sectiune.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.sectiune.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.sectiune.pe_flux[].flux string Sensul fluxului (de regulă import ori export).
data.identitati.sectiune.pe_flux[].verificari integer Câte combinaţii au fost verificate.
data.identitati.sectiune.pe_flux[].inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.sectiune.pe_flux[].primul_an_complet integer
data.identitati.sectiune.pe_flux[].abatere_maxima_procente string
data.identitati.capitol.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.capitol.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.capitol.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.capitol.pe_flux[].flux string Sensul fluxului (de regulă import ori export).
data.identitati.capitol.pe_flux[].verificari integer Câte combinaţii au fost verificate.
data.identitati.capitol.pe_flux[].inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.capitol.pe_flux[].primul_an_complet integer
data.identitati.capitol.pe_flux[].abatere_maxima_procente string
data.identitati.pozitie.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.pozitie.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.pozitie.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.pozitie.pe_flux[].flux string Sensul fluxului (de regulă import ori export).
data.identitati.pozitie.pe_flux[].verificari integer Câte combinaţii au fost verificate.
data.identitati.pozitie.pe_flux[].inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.pozitie.pe_flux[].primul_an_complet integer
data.identitati.pozitie.pe_flux[].abatere_maxima_procente string
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.acoperire.de_la integer Prima perioadă pentru care avem date.
meta.acoperire.pana_la integer Ultima perioadă pentru care avem date.
meta.serii_returnate integer Câte serii s-au întors efectiv, după filtre şi după plafonul de celule.
meta.unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
meta.nota_implicit string Ce valoare s-a folosit când parametrul n-a fost trimis.
meta.nota_completitudine string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_partener string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_lista string Ce conţine lista şi ce nu — limitele ei.
data.serii[].capitol Capitolul din care face parte poziţia — primele două cifre ale codului.
data.identitati[].primul_an_complet Primul an din fereastra cerută în care nivelul chiar închide totalul.
data.identitati[].abatere_maxima_procente Cât de departe de total cade suma nivelului, în procente.
meta.fara_date data e null, iar aici stă motivul. Proiecţia peste datele INS e goală. Codul nu apare; lista e în nomenclator. Uniunea Europeană cerută pe poziţii. Combinaţia n-are serii; atenţie, o poziţie poate exista doar pe unul dintre fluxuri. Ca la celelalte serii.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/comert-exterior/produse
{
    "data": {
        "de_la": 1991,
        "pana_la": 2025,
        "unitate": "mii EUR",
        "filtre": {
            "nivel_nc": "total",
            "partener": "total",
            "moneda": "eur"
        },
        "ani": [
            1991,
            1992,
            1993,
            1994,
            1995,
            1996,
            1997,
            1998,
            1999,
            2000,
            2001,
            2002,
            2003,
            2004,
            2005,
            2006,
            2007,
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024,
            2025
        ],
        "serii": [
            {
                "flux": "export",
                "nc": "total",
                "nivel_nc": "total",
                "denumire": "Total",
                "partener": "total",
                "moneda": "eur",
                "unitate": "mii EUR",
                "ani_publicati": 35,
                "valori": {
                    "1991": "3489858",
                    "1992": "3359271",
                    "1993": "4177663",
                    "1994": "5186059",
                    "1995": "6117452",
                    "1996": "6452031",
                    "1997": "7468009",
                    "1998": "7398689",
                    "1999": "7976964",
                    "2000": "11273261",
                    "2001": "12722016",
                    "2002": "14674863",
                    "2003": "15613750",
                    "2004": "18934970",
                    "2005": "22255071",
                    "2006": "25850493",
                    "2007": "29548996",
                    "2008": "33724569",
                    "2009": "29084243",
                    "2010": "37360259",
                    "2011": "45291534",
                    "2012": "45069165",
                    "2013": "49562143",
                    "2014": "52466038",
                    "2015": "54609772",
                    "2016": "57392244",
                    "2017": "62644081",
                    "2018": "67723429",
                    "2019": "69001757",
                    "2020": "62173542",
                    "2021": "74704514",
                    "2022": "91944576",
                    "2023": "93093215",
                    "2024": "92674721",
                    "2025": "96607742"
                }
            }
        ],
        "identitati": {
            "sectiune": {
                "identitate": "suma nivelului `sectiune` = totalul",
                "toleranta": "relativă, 0.0001 din total",
                "nota": "Prag RELATIV, nu absolut: la valori de ordinul a 100 de miliarde de mii, un prag fix n-ar însemna nimic. Măsurat pe toată seria: 35/35 de ani pe trei din cele patru combinaţii flux × partener, 34/35 pe a patra (1996)",
                "pe_flux": [
                    {
                        "flux": "export",
                        "verificari": 35,
                        "inchise": 32,
                        "primul_an_complet": 1991,
                        "abatere_maxima_procente": "0.02"
                    }
                ]
            },
            "capitol": {
                "identitate": "suma nivelului `capitol` = totalul",
                "toleranta": "relativă, 0.0001 din total",
                "nota": "Prag RELATIV, nu absolut: la valori de ordinul a 100 de miliarde de mii, un prag fix n-ar însemna nimic. Măsurat pe toată seria: doar din 2024 — 2 ani din 35; abateri de până la 2,12% la export şi 2,89% la import în anii vechi",
                "pe_flux": [
                    {
                        "flux": "export",
                        "verificari": 35,
                        "inchise": 2,
                        "primul_an_complet": 2024,
                        "abatere_maxima_procente": "2.10"
                    }
                ]
            },
            "pozitie": {
                "identitate": "suma nivelului `pozitie` = totalul",
                "toleranta": "relativă, 0.0001 din total",
                "nota": "Prag RELATIV, nu absolut: la valori de ordinul a 100 de miliarde de mii, un prag fix n-ar însemna nimic. Măsurat pe toată seria: 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",
                "pe_flux": [
                    {
                        "flux": "export",
                        "verificari": 35,
                        "inchise": 2,
                        "primul_an_complet": 2024,
                        "abatere_maxima_procente": "2.10"
                    }
                ]
            }
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — comerţul internaţional pe secţiuni, capitole şi grupe ale Nomenclatorului Combinat (TEMPO, matricile EXP101E, EXP102D, EXP101F şi EXP102F).",
        "acoperire": {
            "de_la": 1991,
            "pana_la": 2025
        },
        "serii_returnate": 2,
        "unitate": "mii EUR",
        "nota_implicit": "Fără `nivel_nc`, răspunsul ar amesteca cele trei niveluri de nomenclator, care acoperă aceleaşi mărfuri. Implicit se întoarce totalul.",
        "nota_completitudine": "⚠️ Defalcarea sursei se completează în timp: secţiunile închid totalul pe toată seria, capitolele şi poziţiile abia din 2024. `identitati` spune din ce an, pe fiecare flux.",
        "nota_partener": "Defalcarea pe Uniunea Europeană se publică doar pe secţiuni şi capitole.",
        "nota_lista": "Nomenclatorul complet, pe niveluri: /financiar/v1/comert-exterior/nomenclator."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă sau invalid.
403feature_indisponibilfinanciar.indici nu e în planul curent.
422raspuns_prea_marePeste 20.000 de celule; cele 1.260 de poziţii pe toată seria depăşesc de departe plafonul. Plus flux, cod, nivel, partener ori monedă în afara listei.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "raspuns_prea_mare",
        "mesaj": "Peste 20.000 de celule; cele 1.260 de poziţii pe toată seria depăşesc de departe plafonul. Plus flux, cod, nivel, partener ori monedă în afara listei.",
        "detalii": {
            "nivel_nc": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}