Free fuel prices API
The data behind FuelWide, as JSON. No key, no registration, CORS enabled, cached an hour at the edge. National averages for 28 markets and per-forecourt prices for 43,067 stations across 4 countries.
Every figure arrives with the body that published it, that body’s licence, how the number was measured and when. See all data sources and the methodology.
- GET
/api/fuel-pricesNational average petrol 95, diesel and LPG prices in EUR per litre, including all duties and taxes, with each country's own source, licence and credit line. Returns 28 of the 111 markets published on the site; the other 83 are withheld and the response says by whom and why.
- GET
/api/fuel-prices/{country}Prices, pre-tax prices and one normalized observation per fuel — price basis, geographic precision, measurement date, retrieval date and confidence. Markets whose redistribution terms are unconfirmed answer 451 with the publisher named.
- GET
/api/stations/{country}Per-station prices with coordinates, brand, opening hours and every grade sold, for italy, spain, france, australia (Western Australia only). No key, no cap. 3 further sets are published on our pages but withheld here: Portugal, Bulgaria, Slovenia.
- fuel
- Keep only stations reporting this fuel.
- near
- `lat,lon` — filter by radius and sort nearest first.
- km
- Radius in kilometres for `near`. Default 25.
- sort
- `price` sorts cheapest first instead of nearest first.
- limit
- Maximum stations returned. Default and maximum 5000.
- GET
/api/widget/{slug}A self-contained HTML card for one market, styled to inherit the host page's background. Same rights gate as the JSON endpoints.
- GET
/api/widget/embed.jsA dependency-free script that renders a price card into any element carrying `data-fuelwide="{slug}"`. Include it once per page; it renders every matching element and re-scans for elements mounted later. Carries only the markets we may redistribute, and links back to the source page from the host's own markup.
A response, in full shape
{
"datasetVersion": "…",
"updatedAt": "2026-08-31",
"unit": "EUR per litre, pump price incl. duties and taxes",
"country": {
"name": "Germany",
"iso2": "DE",
"slug": "germany",
"prices": { "petrol95": 2.236, "diesel": 2.232, "lpg": 1.083 },
"netPrices": { "petrol95": 1.076, "diesel": 1.243 }
},
"observations": [
{
"fuel": "petrol95",
"priceBasis": "national_weighted_average",
"geographicPrecision": "national",
"observedAt": "2026-08-31",
"confidence": "high",
...
}
],
"source": { "id": "…", "publisher": "…", "licence": "…", "cadence": "weekly" },
"attribution": "…"
}curl -s https://fuelwide.com/api/fuel-prices/germany | jq .observations
Read observations rather than prices. The bare price map is kept for back-compatibility and cannot tell you what kind of average you are holding, what it is a measurement of, or when it was measured as opposed to fetched. Each observation can.
Station-level prices
Every forecourt in a covered market, with coordinates, brand where the feed publishes one, opening hours and every grade sold. No key and no cap — the whole dataset is a few megabytes and we would rather you built on it than scraped it.
/api/stations/italy21,156stationsMinistero delle Imprese e del Made in Italy/api/stations/spain11,311stationsMinisterio para la Transición Ecológica (Spain)/api/stations/france9,608stationsMinistère de l'Économie (France)/api/stations/australia992stations · Western Australia onlyGovernment of Western Australia, Department of Energy, Mines, Industry Regulation and Safety
What the API will not give you
We publish 83 markets and 3 station feeds that we may not pass on. These answer 451 Unavailable For Legal Reasons with the publisher named, rather than a price we have no right to hand over. They stay on our own pages, with credit.
- GlobalPetrolPrices.com69 markets
GlobalPetrolPrices.com's reuse terms have not been reviewed, so we do not pass the figures on.
- OpenVan.camp14 markets
OpenVan.camp's reuse terms have not been reviewed, so we do not pass the figures on.
- Direção-Geral de Energia e Geologia (Portugal)Portugal stations
Direção-Geral de Energia e Geologia (Portugal) permits display but not redistribution.
- Fuelo.netBulgaria stations
Fuelo.net's reuse terms have not been reviewed, so we do not pass the figures on.
- Goriva.siSlovenia stations
Goriva.si's reuse terms have not been reviewed, so we do not pass the figures on.
If you need one of these, licence it from the publisher — every one is named on our sources page. When a decision is recorded, the market reappears here without anyone editing this page.
Attribution
Free to use, including commercially. What the licences require is that you credit the bodies that produced the data — a FuelWide credit on its own does not satisfy them. Every response carries its own attribution string; reproduce that. Across everything the API currently serves, the lines are:
- Contains public sector information licensed under the Open Government Licence v3.0
- Source: European Commission, Weekly Oil Bulletin
- Station prices: FuelWatch, Government of Western Australia, CC BY 4.0
- Station prices: MIMIT, CC BY 4.0
- Station prices: Ministerio para la Transición Ecológica y el Reto Demográfico
- Station prices: prix-carburants.gouv.fr, Licence Ouverte
A link back to fuelwide.com is appreciated and not required.
Roadmap
Coming next: more station-level countries, US state and metro endpoints, and historical series. The Fair Price Score now ships on every market the API serves, as a fairPriceScore object. If you are building on this and need something, tell us — the roadmap is mostly other people’s requests.
