Carburanti v1 / Carburanti
Change over an interval
How much the price moved between two moments, in absolute and percentage terms, with the value at each end of the interval.
GET
https://oneapi.ro/api/carburanti/v1/variatie
Query parameters
NameTypeDescriptionAccepted values
taraoptional
string | null
Country code. Defaults to
RO.
ATBEBGCYCZDEDKEEESFIFRGRHRHUIEITLTLULVMTNLPLPTROSESISKUKEUEA
produsrequired
string
Product code. Required: the change is computed on the series of a single product.
benzina95motorinamotorina_incalzirepacura_sulf_micpacura_sulf_maregpl
de_larequired
string
Start date,
YYYY-MM-DD. Required.
e.g. 2021-01-04
pana_laoptional
string | null
End date,
YYYY-MM-DD. Defaults to today.
e.g. 2026-08-31
How it behaves
- The weekly series has gaps, and they belong to the source. Of the 1,082 weeks published between 2005 and today, 37 intervals skip a week or two: 17 resume in January and 15 in April — the Commission does not publish the bulletin during the Christmas and Easter weeks. These are not failed imports. If you plot a weekly chart, expect the breaks and do not fill them by interpolation: no quotation existed in those weeks.
- Two known source inconsistencies, handled explicitly. (1) The bulletin has 2 rows with both prices at 0.00 (Slovakia, fuel oil, 2006-05-01) — missing data published as zero. We serve those as
nullrather than as a price, and build nothing on top of them. (2) In 32 rows, all fuel oil, the price WITH taxes is lower than the price WITHOUT, which would imply a negative tax: 30 on theEUaggregate and one each on BE and IE. Both prices are reported as published, but nothing is computed from them —taxe_din_pret_procentisnulland anatentionarefield appears. - Both ends are resolved to the week published on or before the requested date, and the response carries the full row for each end — including the actual week used. In a contract dispute it matters exactly which week the calculation rested on.
- The change is given both in euro (with and without taxes) and in national currency. These are not the same number: the exchange rate also moves between the two dates, and an indexation clause must say which currency it indexes in.
- Omitting
pana_lameans today.
What it is for
- Apply an indexation clause: the contract says "adjusts with the change in the official diesel price since signing", and this is exactly that figure.
- Justify a rate increase to a client with the percentage change between two dates, not with an impression.
- Compare fuel inflation with other costs in a fiscal-year analysis.
Response structure
All fields below live inside data.
FieldTypeDescription
tara
string
Țara.
produs
string
Produsul.
de_la
object
Rândul complet de preț la capătul de început, ca la
GET /preturi.
pana_la
object
Rândul complet de preț la capătul de final.
variatie.eur_cu_taxe
object
The difference in euro with taxes: absolute value and percentage.
variatie.eur_cu_taxe.absolut
number
Diferența în euro pe unitate, cu taxe.
variatie.eur_cu_taxe.procent
number
Diferența procentuală, cu taxe, în euro.
variatie.eur_fara_taxe
object
The difference in euro before taxes — shows how much of the move comes from the market rather than taxation.
variatie.eur_fara_taxe.absolut
number
Diferența în euro pe unitate, fără taxe — arată mișcarea pieței, curățată de fiscalitate.
variatie.eur_fara_taxe.procent
number
Diferența procentuală fără taxe.
variatie.national_cu_taxe
object
The difference in national currency. Compare it with the euro one: a large gap means the move is exchange-rate, not price.
variatie.national_cu_taxe.absolut
number
Diferența în monedă națională, cu taxe. Prezentă doar dacă ambele capete au curs.
variatie.national_cu_taxe.procent
number
Diferența procentuală în monedă națională — de regulă diferită de cea în euro, din cauza cursului.
sursa
object
Sursa și licența.
de_la.tara
string
The country code.
de_la.data
string
The week the price refers to (the bulletin's Monday).
de_la.produs
string
The product code.
de_la.denumire
string
The product name.
de_la.unitate
string
The unit the product is quoted in: 1,000 litres for road fuels, 1,000 kg for heavy fuel oil.
de_la.eur.cu_taxe
number
The price in euro, all taxes included, per quoted unit.
de_la.eur.fara_taxe
number
The price in euro, excluding taxes.
de_la.eur.pe_litru_cu_taxe
number
The same price brought to a litre —
null for products quoted per tonne.
de_la.eur.pe_litru_fara_taxe
number
The tax-free price, per litre.
de_la.national.moneda
string
The country's national currency at that date. It changes over time: states that adopted the euro have series in two currencies.
de_la.national.curs_eur_pe_unitate
number
The exchange rate the source used. When it is missing or 1.0, the country was already on the euro — that is how we derive the currency, not from a table.
de_la.national.cu_taxe
number
The price in national currency, with taxes.
de_la.national.fara_taxe
number
The price in national currency, without taxes.
de_la.national.pe_litru_cu_taxe
number
The national price per litre, with taxes.
de_la.national.pe_litru_fara_taxe
number
The national price per litre, without taxes.
de_la.taxe_din_pret_procent
number
What percentage of the final price is tax — the most quoted figure from a bulletin.
pana_la.tara
string
The country code.
pana_la.data
string
The week the price refers to (the bulletin's Monday).
pana_la.produs
string
The product code.
pana_la.denumire
string
The product name.
pana_la.unitate
string
The unit the product is quoted in: 1,000 litres for road fuels, 1,000 kg for heavy fuel oil.
pana_la.eur.cu_taxe
number
The price in euro, all taxes included, per quoted unit.
pana_la.eur.fara_taxe
number
The price in euro, excluding taxes.
pana_la.eur.pe_litru_cu_taxe
number
The same price brought to a litre —
null for products quoted per tonne.
pana_la.eur.pe_litru_fara_taxe
number
The tax-free price, per litre.
pana_la.national.moneda
string
The country's national currency at that date. It changes over time: states that adopted the euro have series in two currencies.
pana_la.national.curs_eur_pe_unitate
number
The exchange rate the source used. When it is missing or 1.0, the country was already on the euro — that is how we derive the currency, not from a table.
pana_la.national.cu_taxe
number
The price in national currency, with taxes.
pana_la.national.fara_taxe
number
The price in national currency, without taxes.
pana_la.national.pe_litru_cu_taxe
number
The national price per litre, with taxes.
pana_la.national.pe_litru_fara_taxe
number
The national price per litre, without taxes.
pana_la.taxe_din_pret_procent
number
What percentage of the final price is tax — the most quoted figure from a bulletin.
Response examples
GEThttps://oneapi.ro/api/carburanti/v1/variatie?produs=benzina95&de_la=2021-01-04
{
"data": {
"tara": "RO",
"produs": "benzina95",
"de_la": {
"tara": "RO",
"data": "2020-12-21",
"produs": "benzina95",
"denumire": "Benzină Euro-super 95",
"unitate": "1000l",
"eur": {
"cu_taxe": 974.65,
"fara_taxe": 454.14,
"pe_litru_cu_taxe": 0.9747,
"pe_litru_fara_taxe": 0.4541
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.2057486163,
"cu_taxe": 4737.09,
"fara_taxe": 2207.26,
"pe_litru_cu_taxe": 4.7371,
"pe_litru_fara_taxe": 2.2073
},
"taxe_din_pret_procent": 53.4,
"atentionare": null
},
"pana_la": {
"tara": "RO",
"data": "2026-09-14",
"produs": "benzina95",
"denumire": "Benzină Euro-super 95",
"unitate": "1000l",
"eur": {
"cu_taxe": 1888.8411,
"fara_taxe": 978.9606,
"pe_litru_cu_taxe": 1.8888,
"pe_litru_fara_taxe": 0.979
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.1902297976,
"cu_taxe": 9929.26,
"fara_taxe": 5146.2,
"pe_litru_cu_taxe": 9.9293,
"pe_litru_fara_taxe": 5.1462
},
"taxe_din_pret_procent": 48.17,
"atentionare": null
},
"variatie": {
"eur_cu_taxe": {
"absolut": 914.1911,
"procent": 93.8
},
"eur_fara_taxe": {
"absolut": 524.8206,
"procent": 115.56
},
"national_cu_taxe": {
"absolut": 5192.17,
"procent": 109.61
}
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Prețuri medii naționale raportate de statele membre pentru săptămâna indicată, nu prețuri per stație de alimentare."
}
}
}
GEThttps://oneapi.ro/api/carburanti/v1/variatie?produs=motorina&de_la=2022-01-03&pana_la=2023-01-02
{
"data": {
"tara": "RO",
"produs": "motorina",
"de_la": {
"tara": "RO",
"data": "2022-01-03",
"produs": "motorina",
"denumire": "Motorină auto",
"unitate": "1000l",
"eur": {
"cu_taxe": 1239.82,
"fara_taxe": 703.46,
"pe_litru_cu_taxe": 1.2398,
"pe_litru_fara_taxe": 0.7035
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.2020896065,
"cu_taxe": 6135,
"fara_taxe": 3480.93,
"pe_litru_cu_taxe": 6.135,
"pe_litru_fara_taxe": 3.4809
},
"taxe_din_pret_procent": 43.26,
"atentionare": null
},
"pana_la": {
"tara": "RO",
"data": "2023-01-02",
"produs": "motorina",
"denumire": "Motorină auto",
"unitate": "1000l",
"eur": {
"cu_taxe": 1525.1,
"fara_taxe": 930.45,
"pe_litru_cu_taxe": 1.5251,
"pe_litru_fara_taxe": 0.9305
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.2024291498,
"cu_taxe": 7533.99,
"fara_taxe": 4596.42,
"pe_litru_cu_taxe": 7.534,
"pe_litru_fara_taxe": 4.5964
},
"taxe_din_pret_procent": 38.99,
"atentionare": null
},
"variatie": {
"eur_cu_taxe": {
"absolut": 285.28,
"procent": 23.01
},
"eur_fara_taxe": {
"absolut": 226.99,
"procent": 32.27
},
"national_cu_taxe": {
"absolut": 1398.99,
"procent": 22.8
}
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Prețuri medii naționale raportate de statele membre pentru săptămâna indicată, nu prețuri per stație de alimentare."
}
}
}
GEThttps://oneapi.ro/api/carburanti/v1/variatie?produs=benzina95&de_la=2024-06-15
{
"data": {
"tara": "RO",
"produs": "benzina95",
"de_la": {
"tara": "RO",
"data": "2024-06-10",
"produs": "benzina95",
"denumire": "Benzină Euro-super 95",
"unitate": "1000l",
"eur": {
"cu_taxe": 1409.084,
"fara_taxe": 778.3098,
"pe_litru_cu_taxe": 1.4091,
"pe_litru_fara_taxe": 0.7783
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.2009282887,
"cu_taxe": 7012.87,
"fara_taxe": 3873.57,
"pe_litru_cu_taxe": 7.0129,
"pe_litru_fara_taxe": 3.8736
},
"taxe_din_pret_procent": 44.76,
"atentionare": null
},
"pana_la": {
"tara": "RO",
"data": "2026-09-14",
"produs": "benzina95",
"denumire": "Benzină Euro-super 95",
"unitate": "1000l",
"eur": {
"cu_taxe": 1888.8411,
"fara_taxe": 978.9606,
"pe_litru_cu_taxe": 1.8888,
"pe_litru_fara_taxe": 0.979
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.1902297976,
"cu_taxe": 9929.26,
"fara_taxe": 5146.2,
"pe_litru_cu_taxe": 9.9293,
"pe_litru_fara_taxe": 5.1462
},
"taxe_din_pret_procent": 48.17,
"atentionare": null
},
"variatie": {
"eur_cu_taxe": {
"absolut": 479.7571,
"procent": 34.05
},
"eur_fara_taxe": {
"absolut": 200.6508,
"procent": 25.78
},
"national_cu_taxe": {
"absolut": 2916.39,
"procent": 41.59
}
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Prețuri medii naționale raportate de statele membre pentru săptămâna indicată, nu prețuri per stație de alimentare."
}
}
}
GEThttps://oneapi.ro/api/carburanti/v1/variatie?produs=motorina&de_la=2024-06-15
{
"data": {
"tara": "RO",
"produs": "motorina",
"de_la": {
"tara": "RO",
"data": "2024-06-10",
"produs": "motorina",
"denumire": "Motorină auto",
"unitate": "1000l",
"eur": {
"cu_taxe": 1411.6538,
"fara_taxe": 814.3563,
"pe_litru_cu_taxe": 1.4117,
"pe_litru_fara_taxe": 0.8144
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.2009282887,
"cu_taxe": 7025.66,
"fara_taxe": 4052.97,
"pe_litru_cu_taxe": 7.0257,
"pe_litru_fara_taxe": 4.053
},
"taxe_din_pret_procent": 42.31,
"atentionare": null
},
"pana_la": {
"tara": "RO",
"data": "2026-09-14",
"produs": "motorina",
"denumire": "Motorină auto",
"unitate": "1000l",
"eur": {
"cu_taxe": 1999.6937,
"fara_taxe": 1252.5434,
"pe_litru_cu_taxe": 1.9997,
"pe_litru_fara_taxe": 1.2525
},
"national": {
"moneda": "RON",
"curs_eur_pe_unitate": 0.1902297976,
"cu_taxe": 10511.99,
"fara_taxe": 6584.37,
"pe_litru_cu_taxe": 10.512,
"pe_litru_fara_taxe": 6.5844
},
"taxe_din_pret_procent": 37.36,
"atentionare": null
},
"variatie": {
"eur_cu_taxe": {
"absolut": 588.0399,
"procent": 41.66
},
"eur_fara_taxe": {
"absolut": 438.1871,
"procent": 53.81
},
"national_cu_taxe": {
"absolut": 3486.33,
"procent": 49.62
}
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)",
"observatie": "Prețuri medii naționale raportate de statele membre pentru săptămâna indicată, nu prețuri per stație de alimentare."
}
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | No prices published for at least one of the requested dates. |
| 422 | validare | produs or de_la is missing, or pana_la precedes de_la. |
| 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": "produs or de_la is missing, or pana_la precedes de_la.",
"detalii": {
"tara": [
"The value sent does not satisfy the parameter rule."
]
}
}
}