oneapi
Sign in
Carburanti v1 / Carburanti

Country ranking

The countries ranked by a fuel's price in a given week: where it is cheapest and where dearest, with the gap from the average.

GET
https://oneapi.ro/api/carburanti/v1/clasament

Query parameters

NameTypeDescriptionAccepted values
produsrequired string Product code. Required: a ranking orders countries by the price of a single product. benzina95motorinamotorina_incalzirepacura_sulf_micpacura_sulf_maregpl
dataoptional string | null Reference date, YYYY-MM-DD. Defaults to the most recent week. e.g. 2026-08-31
ordineoptional string | null crescator (cheapest first, the default) or descrescator. crescatordescrescator
limitaoptional integer | null How many countries to return, maximum 30. Defaults to 30, i.e. all of them. 1 – 30

How it behaves

  • 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 null rather 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 the EU aggregate and one each on BE and IE. Both prices are reported as published, but nothing is computed from them — taxe_din_pret_procent is null and an atentionare field appears.
  • The EU and EA averages are excluded from the ranking: they are not countries, and a "cheapest" list where an average competes with a country would mean nothing.
  • As with the comparison, all countries come from the same reference week. Whoever did not report in it is simply absent from the ranking.
  • Ordering is by the price with taxes, in euro.

What it is for

  • Find where diesel is cheapest in the EU in a given week, for planning refuelling on long routes.
  • Illustrate in an article or report where a country sits in the European ranking, with the source visible.

Response structure

All fields below live inside data.

FieldTypeDescription
produs string Produsul clasat.
ceruta string Data cerută.
saptamana string Săptămâna de referință.
ordine string Ordinea aplicată.
rezultate[].pozitie integer Poziția în clasament, de la 1.
rezultate[] object Restul câmpurilor sunt ca la un element din data.produse[] la GET /preturi.
sursa object Sursa și licența.
rezultate[].tara string The country code.
rezultate[].data string The week the price refers to (the bulletin's Monday).
rezultate[].produs string The product code.
rezultate[].denumire string The product name.
rezultate[].unitate string The unit the product is quoted in: 1,000 litres for road fuels, 1,000 kg for heavy fuel oil.
rezultate[].eur.cu_taxe integer The price in euro, all taxes included, per quoted unit.
rezultate[].eur.fara_taxe number The price in euro, excluding taxes.
rezultate[].eur.pe_litru_cu_taxe number The same price brought to a litre — null for products quoted per tonne.
rezultate[].eur.pe_litru_fara_taxe number The tax-free price, per litre.
rezultate[].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.
rezultate[].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.
rezultate[].national.cu_taxe integer The price in national currency, with taxes.
rezultate[].national.fara_taxe integer The price in national currency, without taxes.
rezultate[].national.pe_litru_cu_taxe number The national price per litre, with taxes.
rezultate[].national.pe_litru_fara_taxe number The national price per litre, without taxes.
rezultate[].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/clasament?produs=motorina&limita=5
{
    "data": {
        "produs": "motorina",
        "ceruta": "2026-09-14",
        "saptamana": "2026-09-14",
        "ordine": "crescator",
        "rezultate": [
            {
                "pozitie": 1,
                "tara": "MT",
                "data": "2026-09-14",
                "produs": "motorina",
                "denumire": "Motorină auto",
                "unitate": "1000l",
                "eur": {
                    "cu_taxe": 1210,
                    "fara_taxe": 553.02,
                    "pe_litru_cu_taxe": 1.21,
                    "pe_litru_fara_taxe": 0.553
                },
                "national": null,
                "taxe_din_pret_procent": 54.3,
                "atentionare": null
            }
        ],
        "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

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareprodus is missing, or ordine is neither crescator nor descrescator.
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": "validare",
        "mesaj": "produs is missing, or ordine is neither crescator nor descrescator.",
        "detalii": {
            "produs": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}