External trade — total and trade balance
FOB exports, CIF imports, the two trade balances and the two indices, annually from 1991 to 2025. 630 values from the TEMPO matrices EXP101A, EXP102A, EXP103A, EXP103B, EXP104A and EXP105A.
⚠️ The currency is a dimension, not a label. The same quantity is published simultaneously in lei, dollars and euro; without moneda, the response would carry the same series three times over. The default is euro. The indices are in percent and have no currency — the filter does not remove them from the response.
⚠️ The lei series hides the 2005 denomination, with a different factor from the rest of the module. It is in millions of old lei, not billions: total exports jump from 767,940,109 in 2004 to 80,663 in 2005, that is a division by 10,000. The publicat block keeps the raw value.
✅ FOB exports − CIF imports = the fob_cif balance closes 35 of 35 years, with a derived tolerance of 1 million — the source publishes whole millions, and two rounded terms can deviate by that much.
⚠️ The fob_fob balance is NOT a presentational variant of the other and cannot be checked from the published data: it would require imports valued FOB, which are not published separately. The difference between the two balances is the CIF−FOB margin, that is transport and insurance on imports — 446 million dollars in 1991, 5,503 in 2024. The response gives it computed, in identitati.marja_cif_fob.
⚠️ The private ownership breakdown stops in 2006, 16 years out of 35.
Query parameters
fob_cif or fob_fob.
fob_fobfob_cif
total (default) or privata, the latter only up to 2006.
totalprivata
valoare, sold, indice_valoric, indice_valoare_unitara. All by default.
valoaresoldindice_valoricindice_valoare_unitara
export, import. The balance has no flux — it is the difference between them.
exportimport
lei, usd, eur. eur by default. The indices have no currency.
leiusdeur
How it behaves
- Exports FOB, imports CIF, both trade-balance figures and the two indices — annually from 1991 to 2025. 630 values from TEMPO matrices
EXP101A,EXP102A,EXP103A,EXP103B,EXP104AandEXP105A. - ⚠️ Currency is a dimension, not a label. The same magnitude is published in lei, dollars and euro at once; without
monedathe response would carry the same series three times. The default is euro. The two indices are percentages and have no currency — the currency filter does not drop them from the response. - ⚠️ The lei series hides the 2005 denomination, with a DIFFERENT factor from the rest of the module. Here the source publishes in millions of old lei, not billions: total exports fall from 767,940,109 in 2004 to 80,663 in 2005. So million ROL → million RON means dividing by 10,000, not multiplying by 0.1 as in
/financiar/v1/intreprinderi/rezultate. Verified: 767,940,109 / 10,000 = 76,794 against 80,663 in 2005 — a 5% rise, a continuous series. Thepublicatblock keeps the raw value and the factor. - ✅
exports FOB − imports CIF = the fob_cif balancecloses in 35 of 35 years, at a derived tolerance of 1 million: the source publishes whole millions, and two rounded terms can drift by that much. The identity is computed from the database rather than the filtered response — asking for exports alone could never close it. - ⚠️ The
fob_fobbalance is NOT a presentational variant of the other and cannot be verified from published data: it would require imports valued FOB, which are not published separately. The difference between the two balances IS the CIF−FOB margin — freight and insurance on imports: 446 million dollars in 1991, 5,503 in 2024. The response returns it computed, inidentitati.marja_cif_fob, so nobody has to perform a subtraction they might do the wrong way round. - ⚠️ The private-ownership breakdown stops in 2006 — 16 years out of 35. The total runs to the present.
- ⚠️ The source writes “the total” two ways on the same dimension:
-for exports,Totalfor imports. The projection normalises both tototal; a literal match would have missed half the pair.
What it is for
- Romania’s trade deficit across thirty-five years, in the currency of choice.
- The freight and insurance cost of imports, as a series in its own right.
- Separating price growth from volume growth through the two indices.
- The same series in lei, dollars and euro, without doing the conversion yourself.
Response structure
exports − imports = fob_cif balance check, computed from the database, at a tolerance derived from the published precision.
fob_cif or fob_fob. The two are not variants of one figure.
data is null and this says why. The projection over the INS data is empty. The combination has no series; note that varianta exists only on the balance and privata stops in 2006. As for the other series.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": 1991,
"pana_la": 2025,
"filtre": {
"moneda": [
"eur"
],
"proprietate": "total"
},
"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": [
{
"indicator": "indice_valoare_unitara",
"denumire": "Indicele valorii unitare",
"flux": "export",
"unitate": "procente",
"ani_publicati": 25,
"valori": {
"1991": null,
"1992": null,
"1993": null,
"1994": null,
"1995": null,
"1996": null,
"1997": null,
"1998": null,
"1999": null,
"2000": "108.9",
"2001": "100.6",
"2002": "98.5",
"2003": "98.2",
"2004": "105.1",
"2005": "109.5",
"2006": "108.2",
"2007": "106",
"2008": "103.8",
"2009": "89.3",
"2010": "107",
"2011": "107.9",
"2012": "103.9",
"2013": "97",
"2014": "98.5",
"2015": "100.2",
"2016": "98.2",
"2017": "101.6",
"2018": "103.8",
"2019": "101.4",
"2020": "98.8",
"2021": "109.4",
"2022": "116.8",
"2023": "100.8",
"2024": "99.9",
"2025": null
}
}
],
"identitati": {
"sold": {
"identitate": "export FOB − import CIF = sold `fob_cif`",
"toleranta": "1",
"nota": "Cerută din bază, pe moneda şi proprietatea răspunsului — un răspuns filtrat pe un singur flux n-ar avea cum s-o închidă. Toleranţa e derivată: sursa publică milioane întregi, iar doi termeni rotunjiţi pot devia cu 1. Măsurat pe toată seria: 35 din 35 de ani.",
"verificari": 35,
"inchise": 35,
"abatere_maxima": "0",
"unde": null
},
"marja_cif_fob": {
"ce_e": "Diferenţa dintre cele două solduri publicate: costul de transport şi asigurare al importurilor, adică exact ce separă evaluarea CIF de cea FOB.",
"nota": "⚠️ `sold fob_fob` NU se poate verifica din datele publicate — ar cere importul evaluat FOB, care nu se publică separat. Nu e o variantă de prezentare a celuilalt sold.",
"unitate": "milioane EUR",
"valori": {
"1991": "365",
"1992": "371",
"1993": "429",
"1994": "461",
"1995": "612",
"1996": "702",
"1997": "769",
"1998": "811",
"1999": "764",
"2000": "1095",
"2001": "1338",
"2002": "1454",
"2003": "1632",
"2004": "2023",
"2005": "2507",
"2006": "3137",
"2007": "3951",
"2008": "4406",
"2009": "2999",
"2010": "3608",
"2011": "4230",
"2012": "2255",
"2013": "2280",
"2014": "2412",
"2015": "2596",
"2016": "2777",
"2017": "3117",
"2018": "3340",
"2019": "3478",
"2020": "3247",
"2021": "3965",
"2022": "5080",
"2023": "4920",
"2024": "5082",
"2025": "5213"
}
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional cu bunuri (TEMPO, matricile EXP101A, EXP102A, EXP103A, EXP103B, EXP104A şi EXP105A).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 8,
"nota_implicit": "Fără `moneda` şi `proprietate`, răspunsul ar purta aceeaşi mărime de mai multe ori. Implicit: euro, total.",
"nota_identitate": "Verificat pe acest răspuns: 35 din 35 ani se închid la toleranţa de 1 milion.",
"nota_sold": "Cele două solduri nu sunt variante de prezentare: `fob_cif` se verifică din export şi import, `fob_fob` nu. Diferenţa dintre ele e marja de transport şi asigurare a importurilor.",
"nota_proprietate": "Defalcarea `privata` se opreşte în 2006; totalul merge până la zi."
}
}
{
"data": {
"de_la": 2024,
"pana_la": 2025,
"filtre": {
"moneda": [
"eur"
],
"proprietate": "total"
},
"ani": [
2024,
2025
],
"serii": [
{
"indicator": "indice_valoare_unitara",
"denumire": "Indicele valorii unitare",
"flux": "export",
"unitate": "procente",
"ani_publicati": 1,
"valori": {
"2024": "99.9",
"2025": null
}
}
],
"identitati": {
"sold": {
"identitate": "export FOB − import CIF = sold `fob_cif`",
"toleranta": "1",
"nota": "Cerută din bază, pe moneda şi proprietatea răspunsului — un răspuns filtrat pe un singur flux n-ar avea cum s-o închidă. Toleranţa e derivată: sursa publică milioane întregi, iar doi termeni rotunjiţi pot devia cu 1. Măsurat pe toată seria: 35 din 35 de ani.",
"verificari": 2,
"inchise": 2,
"abatere_maxima": "0",
"unde": null
},
"marja_cif_fob": {
"ce_e": "Diferenţa dintre cele două solduri publicate: costul de transport şi asigurare al importurilor, adică exact ce separă evaluarea CIF de cea FOB.",
"nota": "⚠️ `sold fob_fob` NU se poate verifica din datele publicate — ar cere importul evaluat FOB, care nu se publică separat. Nu e o variantă de prezentare a celuilalt sold.",
"unitate": "milioane EUR",
"valori": {
"2024": "5082",
"2025": "5213"
}
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional cu bunuri (TEMPO, matricile EXP101A, EXP102A, EXP103A, EXP103B, EXP104A şi EXP105A).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 8,
"nota_implicit": "Fără `moneda` şi `proprietate`, răspunsul ar purta aceeaşi mărime de mai multe ori. Implicit: euro, total.",
"nota_identitate": "Verificat pe acest răspuns: 2 din 2 ani se închid la toleranţa de 1 milion.",
"nota_sold": "Cele două solduri nu sunt variante de prezentare: `fob_cif` se verifică din export şi import, `fob_fob` nu. Diferenţa dintre ele e marja de transport şi asigurare a importurilor.",
"nota_proprietate": "Defalcarea `privata` se opreşte în 2006; totalul merge până la zi."
}
}
{
"data": {
"de_la": 2024,
"pana_la": 2024,
"filtre": {
"indicator": [
"valoare"
],
"flux": [
"export"
],
"moneda": [
"lei"
],
"proprietate": "total"
},
"ani": [
2024
],
"serii": [
{
"indicator": "valoare",
"denumire": "Valoarea exportului (FOB)",
"flux": "export",
"moneda": "lei",
"proprietate": "total",
"unitate": "milioane lei RON",
"ani_publicati": 1,
"valori": {
"2024": "461014"
}
}
],
"identitati": []
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional cu bunuri (TEMPO, matricile EXP101A, EXP102A, EXP103A, EXP103B, EXP104A şi EXP105A).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 1,
"nota_implicit": "Fără `proprietate`, răspunsul ar purta aceeaşi mărime de mai multe ori. Implicit: euro, total.",
"nota_sold": "Cele două solduri nu sunt variante de prezentare: `fob_cif` se verifică din export şi import, `fob_fob` nu. Diferenţa dintre ele e marja de transport şi asigurare a importurilor.",
"nota_proprietate": "Defalcarea `privata` se opreşte în 2006; totalul merge până la zi."
}
}
{
"data": {
"de_la": 1991,
"pana_la": 2024,
"filtre": {
"moneda": [
"eur"
],
"proprietate": "total"
},
"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
],
"serii": [
{
"indicator": "indice_valoare_unitara",
"denumire": "Indicele valorii unitare",
"flux": "export",
"unitate": "procente",
"ani_publicati": 25,
"valori": {
"1991": null,
"1992": null,
"1993": null,
"1994": null,
"1995": null,
"1996": null,
"1997": null,
"1998": null,
"1999": null,
"2000": "108.9",
"2001": "100.6",
"2002": "98.5",
"2003": "98.2",
"2004": "105.1",
"2005": "109.5",
"2006": "108.2",
"2007": "106",
"2008": "103.8",
"2009": "89.3",
"2010": "107",
"2011": "107.9",
"2012": "103.9",
"2013": "97",
"2014": "98.5",
"2015": "100.2",
"2016": "98.2",
"2017": "101.6",
"2018": "103.8",
"2019": "101.4",
"2020": "98.8",
"2021": "109.4",
"2022": "116.8",
"2023": "100.8",
"2024": "99.9"
}
}
],
"identitati": {
"sold": {
"identitate": "export FOB − import CIF = sold `fob_cif`",
"toleranta": "1",
"nota": "Cerută din bază, pe moneda şi proprietatea răspunsului — un răspuns filtrat pe un singur flux n-ar avea cum s-o închidă. Toleranţa e derivată: sursa publică milioane întregi, iar doi termeni rotunjiţi pot devia cu 1. Măsurat pe toată seria: 35 din 35 de ani.",
"verificari": 34,
"inchise": 34,
"abatere_maxima": "0",
"unde": null
},
"marja_cif_fob": {
"ce_e": "Diferenţa dintre cele două solduri publicate: costul de transport şi asigurare al importurilor, adică exact ce separă evaluarea CIF de cea FOB.",
"nota": "⚠️ `sold fob_fob` NU se poate verifica din datele publicate — ar cere importul evaluat FOB, care nu se publică separat. Nu e o variantă de prezentare a celuilalt sold.",
"unitate": "milioane EUR",
"valori": {
"1991": "365",
"1992": "371",
"1993": "429",
"1994": "461",
"1995": "612",
"1996": "702",
"1997": "769",
"1998": "811",
"1999": "764",
"2000": "1095",
"2001": "1338",
"2002": "1454",
"2003": "1632",
"2004": "2023",
"2005": "2507",
"2006": "3137",
"2007": "3951",
"2008": "4406",
"2009": "2999",
"2010": "3608",
"2011": "4230",
"2012": "2255",
"2013": "2280",
"2014": "2412",
"2015": "2596",
"2016": "2777",
"2017": "3117",
"2018": "3340",
"2019": "3478",
"2020": "3247",
"2021": "3965",
"2022": "5080",
"2023": "4920",
"2024": "5082"
}
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — comerţul internaţional cu bunuri (TEMPO, matricile EXP101A, EXP102A, EXP103A, EXP103B, EXP104A şi EXP105A).",
"acoperire": {
"de_la": 1991,
"pana_la": 2025
},
"serii_returnate": 8,
"nota_implicit": "Fără `moneda` şi `proprietate`, răspunsul ar purta aceeaşi mărime de mai multe ori. Implicit: euro, total.",
"nota_identitate": "Verificat pe acest răspuns: 34 din 34 ani se închid la toleranţa de 1 milion.",
"nota_sold": "Cele două solduri nu sunt variante de prezentare: `fob_cif` se verifică din export şi import, `fob_fob` nu. Diferenţa dintre ele e marja de transport şi asigurare a importurilor.",
"nota_proprietate": "Defalcarea `privata` se opreşte în 2006; totalul merge până la zi."
}
}
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 | validare | Indicator, flux, currency, variant or form outside the list; year outside the range. |
| 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": "validare",
"mesaj": "Indicator, flux, currency, variant or form outside the list; year outside the range.",
"detalii": {
"varianta": [
"The value sent does not satisfy the parameter rule."
]
}
}
}