External trade by partner country
FOB exports and CIF imports across 249 partner countries, annually since 1991, in dollars and euro. 84,142 values from the TEMPO matrices EXP101B, EXP102G, EXP102E (the country total) and EXP101D, EXP102C (EU countries × nomenclature sections).
⚠️ For imports, „partner country" means TWO different things, and the source splits them in 2006. Up to then it publishes the country of origin; after, the country of consignment for intra-EU trade. On the import total the two coincide — it is the same goods, merely attributed differently — but across countries it moves billions. In 2006, the only year published on both: Hungary goes from 1.67 to 3.45 billion dollars, while China falls from 2.19 to 1.31 and the United States from 1.24 to 0.72. Chinese goods entering through Hungary or the Netherlands appear as coming from China by origin and as coming from there by consignment. Every series carries its own concept; the two are not spliced.
Exports do not have this ambiguity — the partner country is the destination.
⚠️ The product breakdown exists only for European Union countries — 27 countries × 22 sections. For the rest of the world only the country total is published.
✅ The sum of the countries gives the total row in 34 of 35 years for exports (maximum deviation 0.018%), 20/20 for imports by consignment and 16/16 for imports by origin.
Query parameters
total (default) or sectiune.
totalsectiune
toate (default) or ue.
toateue
eur (default) or usd.
usdeur
export, import. Both by default.
exportimport
total.
e.g. afganistane.g. austria
How it behaves
- Exports FOB and imports CIF across 249 partner countries, annually from 1991 to 2025, in dollars and euro. 84,142 values from TEMPO matrices
EXP101B,EXP102G,EXP102E(country totals) andEXP101D,EXP102C(EU countries × nomenclature sections). - ⚠️ For imports, “partner country” means TWO different things, and the source splits them in 2006. Until then it publishes the country of origin — where the goods were made; from 2006, the country of dispatch for intra-EU flows. On the import total the two coincide (in 2006: 51,106,041 against 51,106,042 thousand dollars, a difference of one thousand) — it is the same merchandise, only attributed differently. Across countries, however, it moves billions: in 2006, the only year published on both, Hungary goes from 1.67 to 3.45 billion dollars, while China falls from 2.19 to 1.31 and the United States from 1.24 to 0.72. Chinese goods entering through Hungary or the Netherlands appear as coming from China under origin and from there under dispatch.
- Each series carries its
concept, and the two do not join. The response also returns the largest differences in the overlapping year, inidentitati.concept, so the shift can be seen rather than merely described. Exports have no such ambiguity — the partner country is the destination. - ⚠️ The product breakdown exists only for European Union countries — 27 countries × 22 nomenclature sections. For the rest of the world only the country total is published.
grup_tariseparates the two sets:toateandue. - ⚠️ Imports by section change concept too, but one year later: EU countries × sections are on origin up to and including 2006 and on dispatch from 2007 (Hungary, euro: 1,331,563 in 2006 = origin, 3,566,110 in 2007 = dispatch).
conceptstates it for every year, so a country's section series breaks in two, just like the total. - ✅ The countries sum to the
totalrow in 34 of 35 years for exports (maximum deviation 0.018%), 20 of 20 for imports on dispatch and 16 of 16 on origin, at a relative threshold of 0.01%. - The largest export partners in 2024, in euro: Germany 19.04 billion, Italy 8.85, France 5.87, Hungary 4.92, Bulgaria 4.11.
- The country code is a slug of the source name (
germania,africa_de_sud). Czechia appears at the source under two names depending on the group; the slug served isrepublica_ceha, andcehiastays accepted as a synonym so requests written before the unification keep working. There is no ISO nomenclature in the platform to join against, so the original name stays indenumire. The one exception: the source writes “Cehia” for the Union countries and “Republica Ceha” for the country totals — both carry the slugrepublica_ceha.
What it is for
- The destination structure of Romanian exports, across thirty-five years.
- Dependence on a particular partner, with the full series behind it.
- What we buy from each EU country, by section of goods.
- The effect of the 2006 concept change, measured country by country.
Response structure
partener for exports, origine or expediere for imports — it says what the country means on that row.
toate (country total) or ue (with the section breakdown).
data is null and this says why. The projection over the INS data is empty. The lists are at /financiar/v1/comert-exterior/tari/nomenclator. The combination has no series; note that the section breakdown exists only for EU countries. As for the other series.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": 2020,
"pana_la": 2024,
"unitate": "mii EUR",
"filtre": {
"flux": [
"export"
],
"nivel_nc": "total",
"grup_tari": "toate",
"moneda": "eur"
},
"ani": [
2020,
2021,
2022,
2023,
2024
],
"serii": [
{
"flux": "export",
"concept": "partener",
"tara": "afganistan",
"denumire": "Afganistan",
"grup_tari": "toate",
"nc": "total",
"nivel_nc": "total",
"moneda": "eur",
"unitate": "mii EUR",
"ani_publicati": 5,
"valori": {
"2020": "5017",
"2021": "6964",
"2022": "500",
"2023": "528",
"2024": "2550"
}
}
],
"identitati": {
"tari": {
"identitate": "suma ţărilor partenere = rândul `total`",
"toleranta": "relativă, 0.0001 din total",
"nota": "Cerută din bază — un răspuns pe o singură ţară n-ar avea cum s-o închidă. Măsurat pe toată seria: 34 din 35 de ani la export (abatere maximă 0,018%), 20/20 la importul pe expediere şi 16/16 la cel pe origine.",
"pe_serie": [
{
"flux": "export",
"concept": "partener",
"verificari": 5,
"inchise": 5,
"abatere_maxima_procente": "0.000"
}
]
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional pe ţări partenere (TEMPO, matricile EXP101B, EXP102G, EXP102E, EXP101D şi EXP102C).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 220,
"unitate": "mii EUR",
"nota_implicit": "Fără `nivel_nc` şi `grup_tari`, răspunsul ar amesteca totalul pe ţară cu defalcarea pe secţiuni. Implicit: toate ţările, pe total.",
"nota_concept": "La import, `concept` spune dacă ţara e cea de origine (până în 2006) ori cea de expediere (după).",
"nota_produse": "Defalcarea pe secţiuni de nomenclator există numai pentru cele 27 de ţări ale Uniunii Europene.",
"nota_identitate": "Cerută din bază — un răspuns pe o singură ţară n-ar avea cum s-o închidă. Măsurat pe toată seria: 34 din 35 de ani la export (abatere maximă 0,018%), 20/20 la importul pe expediere şi 16/16 la cel pe origine.",
"nota_lista": "Lista ţărilor, cu grupul şi anii fiecăreia: /financiar/v1/comert-exterior/tari/nomenclator."
}
}
{
"data": {
"de_la": 2023,
"pana_la": 2024,
"unitate": "mii EUR",
"filtre": {
"nivel_nc": "total",
"grup_tari": "ue",
"moneda": "eur"
},
"ani": [
2023,
2024
],
"serii": [
{
"flux": "export",
"concept": "partener",
"tara": "austria",
"denumire": "Austria",
"grup_tari": "ue",
"nc": "total",
"nivel_nc": "total",
"moneda": "eur",
"unitate": "mii EUR",
"ani_publicati": 2,
"valori": {
"2023": "1982181",
"2024": "1884842"
}
}
],
"identitati": {
"tari": {
"identitate": "suma ţărilor partenere = rândul `total`",
"toleranta": "relativă, 0.0001 din total",
"nota": "Cerută din bază — un răspuns pe o singură ţară n-ar avea cum s-o închidă. Măsurat pe toată seria: 34 din 35 de ani la export (abatere maximă 0,018%), 20/20 la importul pe expediere şi 16/16 la cel pe origine.",
"pe_serie": [
{
"flux": "export",
"concept": "partener",
"verificari": 2,
"inchise": 2,
"abatere_maxima_procente": "0.000"
}
]
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional pe ţări partenere (TEMPO, matricile EXP101B, EXP102G, EXP102E, EXP101D şi EXP102C).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 52,
"unitate": "mii EUR",
"nota_implicit": "Fără `nivel_nc`, răspunsul ar amesteca totalul pe ţară cu defalcarea pe secţiuni. Implicit: toate ţările, pe total.",
"nota_concept": "⚠️ Răspunsul poartă mai multe concepte de ţară parteneră (partener, expediere). La import, `origine` şi `expediere` NU se lipesc — vezi `identitati.concept`.",
"nota_produse": "Defalcarea pe secţiuni de nomenclator există numai pentru cele 27 de ţări ale Uniunii Europene.",
"nota_identitate": "Cerută din bază — un răspuns pe o singură ţară n-ar avea cum s-o închidă. Măsurat pe toată seria: 34 din 35 de ani la export (abatere maximă 0,018%), 20/20 la importul pe expediere şi 16/16 la cel pe origine.",
"nota_lista": "Lista ţărilor, cu grupul şi anii fiecăreia: /financiar/v1/comert-exterior/tari/nomenclator."
}
}
{
"data": {
"de_la": 2024,
"pana_la": 2025,
"unitate": "mii EUR",
"filtre": {
"nivel_nc": "total",
"grup_tari": "toate",
"moneda": "eur"
},
"ani": [
2024,
2025
],
"serii": [
{
"flux": "export",
"concept": "partener",
"tara": "afganistan",
"denumire": "Afganistan",
"grup_tari": "toate",
"nc": "total",
"nivel_nc": "total",
"moneda": "eur",
"unitate": "mii EUR",
"ani_publicati": 2,
"valori": {
"2024": "2550",
"2025": "2796"
}
}
],
"identitati": {
"tari": {
"identitate": "suma ţărilor partenere = rândul `total`",
"toleranta": "relativă, 0.0001 din total",
"nota": "Cerută din bază — un răspuns pe o singură ţară n-ar avea cum s-o închidă. Măsurat pe toată seria: 34 din 35 de ani la export (abatere maximă 0,018%), 20/20 la importul pe expediere şi 16/16 la cel pe origine.",
"pe_serie": [
{
"flux": "export",
"concept": "partener",
"verificari": 2,
"inchise": 2,
"abatere_maxima_procente": "0.000"
}
]
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional pe ţări partenere (TEMPO, matricile EXP101B, EXP102G, EXP102E, EXP101D şi EXP102C).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 415,
"unitate": "mii EUR",
"nota_implicit": "Fără `nivel_nc` şi `grup_tari`, răspunsul ar amesteca totalul pe ţară cu defalcarea pe secţiuni. Implicit: toate ţările, pe total.",
"nota_concept": "⚠️ Răspunsul poartă mai multe concepte de ţară parteneră (partener, expediere). La import, `origine` şi `expediere` NU se lipesc — vezi `identitati.concept`.",
"nota_produse": "Defalcarea pe secţiuni de nomenclator există numai pentru cele 27 de ţări ale Uniunii Europene.",
"nota_identitate": "Cerută din bază — un răspuns pe o singură ţară n-ar avea cum s-o închidă. Măsurat pe toată seria: 34 din 35 de ani la export (abatere maximă 0,018%), 20/20 la importul pe expediere şi 16/16 la cel pe origine.",
"nota_lista": "Lista ţărilor, cu grupul şi anii fiecăreia: /financiar/v1/comert-exterior/tari/nomenclator."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Missing or invalid token. |
| 403 | feature_indisponibil | financiar.indici is not in the current plan. |
| 422 | raspuns_prea_mare | Over 20,000 cells; the 249 countries across the whole series exceed the cap. Plus flux, country, section, group or currency outside the list. |
| 429 | cota_depasita | The 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; the 249 countries across the whole series exceed the cap. Plus flux, country, section, group or currency outside the list.",
"detalii": {
"nivel_nc": [
"The value sent does not satisfy the parameter rule."
]
}
}
}