PricesPump pricesStation pricesSet pricesTaxes and margins
MarketsCrude benchmarksJet and heating oilRefined productsCurrencies
DataCountriesSupply and stocksHistoryStatus
DocsQuick startAPI referenceMCP serverChangelog
Pricing
BRENT123.1$/bbl ▼ 3.92%WTI103.4$/bbl ▼ 1.79%ULSD4.687$/gal ▼ 3.02%RBOB3.521$/gal ▼ 1.92%MX REGULAR23.99MX$/l ▲ 0.00%ES PETROL 951.749€/l ▼ 0.34%FR PETROL 952.195€/l ▼ 0.07%PT PETROL 952.094€/l ▼ 0.01%CA REGULAR1.829C$/l ▲ 6.04%GB PETROL 95 E101.719£/l ▼ 0.29%AT PETROL 951.780€/l ▼ 2.48%HR PETROL 951.640€/l ▲ 0.00%SI PETROL 951.627€/l ▲ 0.00%AL PETROL196.0ALL/lDZ PETROL47.00DZD/lAO PETROL304.0AOA/lBRENT123.1$/bbl ▼ 3.92%WTI103.4$/bbl ▼ 1.79%ULSD4.687$/gal ▼ 3.02%RBOB3.521$/gal ▼ 1.92%MX REGULAR23.99MX$/l ▲ 0.00%ES PETROL 951.749€/l ▼ 0.34%FR PETROL 952.195€/l ▼ 0.07%PT PETROL 952.094€/l ▼ 0.01%CA REGULAR1.829C$/l ▲ 6.04%GB PETROL 95 E101.719£/l ▼ 0.29%AT PETROL 951.780€/l ▼ 2.48%HR PETROL 951.640€/l ▲ 0.00%SI PETROL 951.627€/l ▲ 0.00%AL PETROL196.0ALL/lDZ PETROL47.00DZD/lAO PETROL304.0AOA/l

Oil price API: list countries

List countries

Every country we price, what we hold for it and how far back it goes.

GEThttps://api.oilapi.net/v1/countries
PlansEvery plan
Cost1 call per request
ReturnsEvery country in one call
UpdatedHourly

What it is for

The list to start from: every country we hold prices for, what kind (stations, pump averages, set prices, taxes), how many fuels and stations, the first year on record and how often its prices change.

Narrow it with region. The answer is small and changes slowly, so it is safe to keep for a day.

Good for
  • A country picker for your app
  • Which countries have station by station prices
  • How far back history goes before you ask for it
Also the MCP tool coverage

Parameters 1 in the query

NameWhere and typeRequiredWhat it doesExample
regionquery one ofoptionalOnly this region. One of europe, americas, asia_pacific, middle_east, africa.europe

Try it runs against the live API with your key

No key yet? Get a free one; it is saved in this browser for every page.

The answer 200, application/json

FieldTypeWhat it holdsExample
countrystringTwo letter country code"AL"
namestringOur name for it"Albania"
regionstringThe region, or the town or zone a set price is for"europe"
holdsobjectWhat we hold: stations, pump_averages, set_prices, taxes{"stations":false,"pump_averages":fal...
fuelsintegerHow many fuels we price there2
stationsintegerHow many stations we read0
sinceintegerThe first year on record2026
cadencestringlive, daily, weekly or monthly"monthly"
last_changestringWhen a price last changed"2026-10-01T00:00:00Z"

Example answer real, from what we hold now; long lists cut to three

GET /v1/countries?region=europe
{
    "data": [
        {
            "country": "AL",
            "name": "Albania",
            "region": "europe",
            "holds": {
                "stations": false,
                "pump_averages": false,
                "set_prices": true,
                "taxes": false
            },
            "fuels": 2,
            "stations": 0,
            "since": 2026,
            "cadence": "monthly",
            "last_change": "2026-10-01T00:00:00Z"
        },
        {
            "country": "AT",
            "name": "Austria",
            "region": "europe",
            "holds": {
                "stations": true,
                "pump_averages": true,
                "set_prices": false,
                "taxes": true
            },
            "fuels": 5,
            "stations": 2029,
            "since": 2005,
            "cadence": "live",
            "last_change": "2026-10-29T21:47:01Z"
        },
        {
            "country": "AZ",
            "name": "Azerbaijan",
            "region": "europe",
            "holds": {
                "stations": false,
                "pump_averages": false,
                "set_prices": true,
                "taxes": false
            },
            "fuels": 3,
            "stations": 0,
            "since": 2026,
            "cadence": "monthly",
            "last_change": "2026-10-01T00:00:00Z"
        }
    ],
    "meta": {
        "count": 43
    }
}

Errors every error has the same shape

HTTPCodeWhenWhat to do
401unauthorizedNo key, or not a valid oneSend your key in the X-API-Key header; your account page shows it.
400bad_requestA value is wrong or a required one is missingThe message names the parameter and the form it takes.
422unknown_parameterA parameter this endpoint does not takeTake it out; the parameters this endpoint takes are listed above.
429rate_limitedToo many calls this minuteWait the seconds in the Retry-After header, then call again.
429quota_exceededToday's calls are used upWait for the day to reset at midnight UTC, or move to a larger plan.
Dates and times are UTC. A point's date is the day its price took effect, or the first day of its week or month for weekly and monthly series. Conversions use each day's own rate, so a converted series moves with both the price and the exchange rate.

Related