oneapi
Sign in
Financiar v1 / Inflatie

The structure of external trade

Trade broken down by attributes that do not belong to the goods nomenclature — seven dimensions, 14,456 values from eighteen TEMPO matrices: the SITC classification (11 sections, annually since 1991 and monthly since 2013), the mode of transport (5 modes, since 2001) and the profile of the firms that export or import — by NACE sector, size class, type of capital, form of ownership and concentration (since 2013).

⚠️ SITC changes revision in 2006 — sitc_rev3 up to then, csci_rev4 after. The eleven sections carry the same numbers, but their names and contents changed: the source writes „Food and live animals" in one revision and „Food products and live animals" in the other. revizie separates them, and the series are not spliced.

⚠️ The four firm breakdowns have TWO measures on the same row: the number of firms (VAT numbers) and the value of their trade. They are not variants of the same figure — without masura, the response stops at value.

⚠️ concentrare is a CUMULATIVE series, not a partition: „the top 10 firms" includes the top 5. Added up, the same firms would be counted several times. Its series carry cumulata: true.

⚠️ necunoscut is a real category for size, capital and ownership — firms the source cannot classify. Anyone skipping it loses part of the total.

⚠️ Only SITC is also published monthly, in euro only and with an intra/extra-EU breakdown. Requested on another dimension, the monthly frequency gets an explicit refusal.

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

Query parameters

NameTypeDescriptionAccepted values
frecventaoptional string | null Optional: anual (default) or lunar — monthly for SITC only. anuallunar
masuraoptional string | null Optional: valoare, numar_firme, pondere. valoare by default on firm dimensions. valoarenumar_firmepondere
parteneroptional string | null Optional: total, intra_ue, extra_ue — on monthly SITC only. totalintra_ueextra_ue
monedaoptional string | null Optional: eur or usd. usdeur
revizieoptional string | null Optional: sitc_rev3 or csci_rev4. sitc_rev3csci_rev4
de_laoptional integer | null Optional, a year, from 1991. 1991 – 2100
pana_laoptional integer | null Optional, a year. 1991 – 2100
dimensiunelistoptional text Optional, comma-separated: csci, transport, sector, marime, capital, proprietate, concentrare. cscitransportsectormarimecapitalproprietateconcentrare
fluxlistoptional text Optional: export, import. exportimport
categorielistoptional text Optional, slugs from the chosen dimension. e.g. integral_romanesc

How it behaves

  • Trade broken down by attributes outside the goods nomenclature — seven dimensions, 14,456 values from eighteen TEMPO matrices: the SITC/CSCI classification (11 sections, annually from 1991 and monthly from 2013), mode of transport (5 modes, from 2001) and the profile of exporting and importing firms, by CAEN sector, size class, type of capital, ownership form and concentration (from 2013).
  • The figure that says most: in 2024 the top 100 firms account for 50.75% of Romanian exports, the top 10 for 19.84%, and the top 1,000 reach 83.63%. Concentration has no trend: for the top 100 it swings between 48.87% (2022) and 52.44% (2018), starting from 51.56% in 2013.
  • ⚠️ SITC changes revision in 2006 — sitc_rev3 before, csci_rev4 after. The eleven sections keep the same numbers but changed both names and content: the source writes “Food and live animals” in one revision and “Food products and live animals” in the other. revizie keeps them apart, and the series do not join.
  • ⚠️ The four firm breakdowns carry TWO measures on the same row: the number of firms (VAT codes) and the value of their trade. They are not variants of one figure — without masura the response stops at value and says so in meta.
  • ⚠️ concentrare is a CUMULATIVE series, not a partition: “top 10 firms” includes the top 5. Added together, they would count the same firms several times. Its series carry cumulata: true.
  • ⚠️ necunoscut is a real category for size, capital and ownership — firms the source cannot classify. In 2024 that is 1.26 billion euro of exports, 1.4% of the total; leaving it out loses exactly that.
  • ⚠️ Only SITC is also published monthly, in euro only and with an intra/extra-EU split. Asked for on another dimension, the monthly frequency gets an explicit refusal rather than an empty list.

What it is for

  • How concentrated Romanian exports are in a handful of firms, year by year.
  • Trade structure on the international SITC classification, comparable with other countries.
  • The share of road against maritime transport in our trade.
  • How many firms export and what their trade is worth, by size class and type of capital.

Response structure

FieldTypeDescription
data.frecventa string How often the source publishes the series (daily, monthly, quarterly, yearly).
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.frecventa string How often the source publishes the series (daily, monthly, quarterly, yearly).
data.perioade array Years, or months as YYYY-MM when frecventa=lunar.
data.serii[].dimensiune string The dimension the values are broken down by.
data.serii[].flux string Direction of the flow (usually import or export).
data.serii[].categorie string Category in the source classification.
data.serii[].denumire string The name, exactly as the source publishes it.
data.serii[].masura string valoare, numar_firme or pondere — what the row counts.
data.serii[].unitate string Unit of measure of the values. Read it before plotting or summing them.
data.serii[].partener string
data.serii[].perioade_publicate integer How many periods the source actually published.
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 integer The first period we have data for.
meta.acoperire.pana_la integer 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_revizie string What changed at the last source revision and what is no longer comparable.
meta.nota_cumulata string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_necunoscut string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_lista string What the list contains and what it does not — its limits.
data.serii[].cumulata Present on concentration series: the values contain one another and must not be added.
data.serii[].revizie The SITC revision; series from different revisions do not join.
meta.fara_date data is null and this says why. The projection over the INS data is empty. The catalogue is in the nomenclature. 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.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/comert-exterior/structura
{
    "data": {
        "frecventa": "anual",
        "de_la": 1991,
        "pana_la": 2025,
        "filtre": {
            "frecventa": "anual"
        },
        "perioade": [
            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": [
            {
                "dimensiune": "capital",
                "flux": "export",
                "categorie": "integral_romanesc",
                "denumire": "Integral romanesc",
                "masura": "numar_firme",
                "unitate": "numar firme",
                "partener": "total",
                "perioade_publicate": 12,
                "valori": {
                    "1991": null,
                    "1992": null,
                    "1993": null,
                    "1994": null,
                    "1995": null,
                    "1996": null,
                    "1997": null,
                    "1998": null,
                    "1999": null,
                    "2000": null,
                    "2001": null,
                    "2002": null,
                    "2003": null,
                    "2004": null,
                    "2005": null,
                    "2006": null,
                    "2007": null,
                    "2008": null,
                    "2009": null,
                    "2010": null,
                    "2011": null,
                    "2012": null,
                    "2013": "13325",
                    "2014": "13877",
                    "2015": "14143",
                    "2016": "14061",
                    "2017": "15267",
                    "2018": "15691",
                    "2019": "16298",
                    "2020": "15663",
                    "2021": "18124",
                    "2022": "19773",
                    "2023": "20365",
                    "2024": "19725",
                    "2025": null
                }
            }
        ]
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — comerţul internaţional pe clasificarea CSCI, moduri de transport şi profilul firmelor exportatoare şi importatoare (TEMPO, familia EXP10x).",
        "acoperire": {
            "de_la": 1991,
            "pana_la": 2025
        },
        "serii_returnate": 262,
        "nota_revizie": "⚠️ Răspunsul poartă amândouă reviziile CSCI (sitc_rev3, csci_rev4). Secţiunile şi-au schimbat conţinutul în 2006: NU se lipesc într-o singură serie.",
        "nota_cumulata": "⚠️ `concentrare` e o serie CUMULATĂ: „primele 10 firme\" le include pe primele 5. Nu se adună.",
        "nota_necunoscut": "`necunoscut` e o categorie reală — firme pe care sursa nu le poate încadra. Cine o sare pierde o parte din total.",
        "nota_lista": "Catalogul complet — dimensiuni, categorii, măsuri şi ani: /financiar/v1/comert-exterior/structura/nomenclator."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
422raspuns_prea_mareOver 20,000 cells. Plus dimension, flux, measure, partner, currency or revision outside the list. frecventa_indisponibila — monthly asked for on something other than SITC.
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 dimension, flux, measure, partner, currency or revision outside the list. frecventa_indisponibila — monthly asked for on something other than SITC.",
        "detalii": {
            "frecventa": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}