Carburanti v1 / Carburanti
Tax history
Every excise duty and VAT change, with the date it took effect. For correctly reconstructing a price from a past year.
GET
https://oneapi.ro/api/carburanti/v1/taxe/serie
Query parameters
NameTypeDescriptionAccepted values
taraoptional
string | null
Country code. Defaults to
RO.
ATBEBGCYCZDEDKEEESFIFRGRHRHUIEITLTLULVMTNLPLPTROSESISKUK
produsrequired
string
Product code. Required: a tax series belongs to a single product.
benzina95motorinamotorina_incalzirepacura_sulf_micpacura_sulf_maregpl
tipoptional
string | null
Restrict to one type:
tva, acciza or alte_indirecte. Defaults to all.
tvaaccizaalte_indirecte
de_laoptional
string | null
Only changes effective on or after this date.
e.g. 2020-01-01
pana_laoptional
string | null
Only changes effective on or before this date.
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.
- When the source publishes a price WITH taxes lower than the one WITHOUT,
reconciliere.posibilaisfalseandmotivsays exactly that. Without this rule the route gave the generic explanation ("the member state applies an unpublished component") — plausible, but wrong here, and with advice that does not hold: you cannot "use the published price" when the published price is the inconsistent one. - Each row is a change, not a weekly value: an entry stays in force until the next one appears. Romania has 23 excise changes since 2008 and 5 VAT changes since 2000.
- Units differ by type and are explained in
legenda: VAT is a percentage, excise and other indirect taxes are amounts in national currency per product unit. - Ordering is descending by effective date.
What it is for
- Redo a three-year-old calculation with the excise duty that applied then, not the one in force today.
- Document every excise change in a period for a fiscal analysis, with their dates.
- Check whether an observed price increase coincides with a tax change or is market movement.
Response structure
All fields below live inside data.
FieldTypeDescription
tara
string
Țara.
produs
string
Produsul.
moneda
string
Moneda sumelor (nu se aplică la
tva, care e procent).
unitate
string
Unitatea la care se raportează sumele.
inregistrari
integer
Câte schimbări conține răspunsul.
schimbari[].tip
string
tva, acciza sau alte_indirecte.
schimbari[].in_vigoare_de_la
string
Data de la care se aplică.
schimbari[].valoare
number
Procent la
tva, sumă pe unitate la celelalte.
legenda
object
Ce înseamnă valoarea pentru fiecare tip.
sursa
object
Sursa și licența.
Response examples
GEThttps://oneapi.ro/api/carburanti/v1/taxe/serie?produs=benzina95&tip=acciza
{
"data": {
"tara": "RO",
"produs": "benzina95",
"moneda": "RON",
"unitate": "1000l",
"inregistrari": 21,
"schimbari": [
{
"tip": "acciza",
"in_vigoare_de_la": "2026-01-01",
"valoare": 3059.8
}
],
"legenda": {
"tva": "Procent.",
"acciza": "Monedă națională pe unitatea produsului.",
"alte_indirecte": "Monedă națională pe unitatea produsului."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)"
}
}
}
GEThttps://oneapi.ro/api/carburanti/v1/taxe/serie?produs=motorina&de_la=2024-01-01
{
"data": {
"tara": "RO",
"produs": "motorina",
"moneda": "RON",
"unitate": "1000l",
"inregistrari": 8,
"schimbari": [
{
"tip": "acciza",
"in_vigoare_de_la": "2026-09-07",
"valoare": 2103.22
}
],
"legenda": {
"tva": "Procent.",
"acciza": "Monedă națională pe unitatea produsului.",
"alte_indirecte": "Monedă națională pe unitatea produsului."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)"
}
}
}
GEThttps://oneapi.ro/api/carburanti/v1/taxe/serie?produs=benzina95
{
"data": {
"tara": "RO",
"produs": "benzina95",
"moneda": "RON",
"unitate": "1000l",
"inregistrari": 30,
"schimbari": [
{
"tip": "acciza",
"in_vigoare_de_la": "2026-01-01",
"valoare": 3059.8
}
],
"legenda": {
"tva": "Procent.",
"acciza": "Monedă națională pe unitatea produsului.",
"alte_indirecte": "Monedă națională pe unitatea produsului."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)"
}
}
}
GEThttps://oneapi.ro/api/carburanti/v1/taxe/serie?produs=motorina
{
"data": {
"tara": "RO",
"produs": "motorina",
"moneda": "RON",
"unitate": "1000l",
"inregistrari": 32,
"schimbari": [
{
"tip": "acciza",
"in_vigoare_de_la": "2026-09-07",
"valoare": 2103.22
}
],
"legenda": {
"tva": "Procent.",
"acciza": "Monedă națională pe unitatea produsului.",
"alte_indirecte": "Monedă națională pe unitatea produsului."
},
"sursa": {
"nume": "European Commission — Weekly Oil Bulletin (DG ENER)",
"licenta": "CC BY 4.0 (Decizia 2011/833/UE)"
}
}
}
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. |
| 422 | validare | produs is missing, or tip is not one of the three. |
| 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 is missing, or tip is not one of the three.",
"detalii": {
"tara": [
"The value sent does not satisfy the parameter rule."
]
}
}
}