Weekly national fuel prices back to 2005 and live, station-level prices from official national sources — as JSON, GeoJSON or CSV. Start free, upgrade when you need station detail.
Prices exclude VAT. Monthly, cancel any time. Quotas are per calendar month and reset on the 1st; going over them slows you down, it does not cut you off mid-month.
Research, journalism, side projects, and anyone testing before they buy.
Apps and dashboards that show real prices at real stations.
Fleets, fuel cards, logistics and navigation products that depend on the feed.
The same endpoints, different depth and volume.
swipe the table sideways for the Pro and Business columns →
| Feature | Free | Pro | Business |
|---|---|---|---|
| Price per month, excl. VAT | €0 | €29 | €149 |
| Weekly national history (2005–today) | Yes | Yes | Yes |
| Live country averages, min/max | Yes | Yes | Yes |
| Natural-language endpoint | Yes | Yes | Yes |
| Tolls & vignettes dataset | Yes | Yes | Yes |
| Station-level prices & radius search | — | Yes | Yes |
| Brand breakdowns per market | — | Yes | Yes |
| GeoJSON map layer | — | Yes | Yes |
| Daily CSV snapshot | — | Yes | Yes |
| Full station database export | — | — | Yes |
| Full history export in one file | — | — | Yes |
| Requests per month | 1,000 | 50,000 | 500,000 |
| Burst limit | 60 / hour | 600 / hour | 3,000 / hour |
| Attribution link required | Yes | No | No |
| Redistribution in your product | — | Within your app | Yes |
| Uptime commitment | — | — | 99.5% / month |
| Support | Best effort | Email, 2 working days | Named contact, 1 working day |
Every example below is a Free-tier call against the live service — copy, paste, run. Full parameter reference in the documentation.
Today’s national averages and freshness stamps for every live market.
curl -s "https://www.fuel-prices.eu/live/api.php?action=summary" \
| python3 -m json.tool | head -20
Five years of weekly Euro 95 and diesel prices for one country.
<?php
$url = 'https://www.fuel-prices.eu/lang/api/country-history.php?cc=DE';
$data = json_decode(file_get_contents($url), true);
printf("%s: %d weekly points, latest %s -> %.3f EUR/L\n",
$data['cc'],
$data['count'],
end($data['labels']),
end($data['diesel'])
);
Cheapest diesel within 10 km of a point (Pro tier — station level).
import requests
r = requests.get("https://www.fuel-prices.eu/live/api.php", params={
"action": "stations", "country": "FR",
"lat": 48.85, "lng": 2.35, "radius": 10, "limit": 20,
}, timeout=20)
for s in r.json()["data"]["stations"]:
d = s["prices"].get("diesel")
if d:
print(f'{d["price"]:.3f} {s["distance_km"]:>4} km {s["name"]}')
Straight from the browser — the live endpoints send
Access-Control-Allow-Origin: *, so no proxy is needed.
const r = await fetch('https://www.fuel-prices.eu/live/api.php?action=summary');
const { data } = await r.json();
const fr = data.countries.find(c => c.country_code === 'FR');
console.log(`France diesel ${fr.fuels.diesel.avg} EUR/L`,
`across ${fr.fuels.diesel.stations} stations`,
`(fetched ${fr.last_fetched} UTC)`);
The weekly national series is derived from the European Commission Weekly Oil Bulletin and is published under CC BY 4.0 with attribution to fuel-prices.eu. You can use it commercially on any plan.
Live station prices are collected from official national sources (data.gouv.fr, MIMIT, MITECO, the UK Fuel Finder scheme, E-Control, ANPC and others). Free and Pro let you show them inside your own product; Business adds the right to redistribute them onward. Reselling the raw feed as a competing data product is not included on any plan — talk to us instead.
One thing we flag up front: opening hours for 6,637 stations are enriched from OpenStreetMap, so that field carries ODbL 1.0 share-alike obligations no matter which plan you are on. Prices and station identity are ours. We keep a per-record provenance flag on that field, so if ODbL does not fit your product, ask and we ship you the feed without the OpenStreetMap-derived hours.
A visible link on the page or screen showing the data:
Fuel price data by fuel-prices.eu.
In an app, a line in the data-sources or about screen is fine. No logo required, no
approval needed. Pro and Business have no attribution requirement.
The weekly series updates every Thursday afternoon, when the European Commission publishes the Oil Bulletin; latest point in the database right now is 2026-08-31.
Live markets refresh on their own cadence, between every 20 minutes and every few
hours, set by how often each national source republishes. Every response carries a
last_fetched stamp in UTC and
action=stats shows the last fetch of every market, so you never have to
guess how old a number is.
Fleets and fuel cards — cost-per-kilometre models, budget forecasts, and picking refuelling stops on a route.
Navigation and travel apps — cheapest station along a route, cross-border price gaps for trips like Britain to France.
Newsrooms and analysts — twenty years of comparable weekly national prices, the series behind most “fuel is up X% this year” charts.
Energy and retail research — brand-level price positioning per market, from the same feed the retailers file with their regulator.
You get an HTTP 429 with a Retry-After header rather than a
hard cut-off, and the monthly counter resets on the 1st. If you are consistently over,
we would rather move you to the next plan than throttle you — write to us.
EUR per litre, tax inclusive, everywhere — including markets that trade in their own currency. Local-currency figures are converted at the daily central-bank rate at read time, so a British or Romanian price is comparable with a French one in the same response. If you need the raw local figure instead, say so in your request and we will include it on Pro and Business.
The Free plan is the trial and it has no time limit. Pro and Business are monthly with no minimum term: tell us to stop and we stop at the end of the paid month. Because billing is still manual, there is no card on file to forget about.
Often, yes. Where an official national source publishes station prices we can usually add the market in a few weeks. Germany, Poland, Belgium and Hungary come up most often. Put it in the use-case box below — the request queue is how we decide what to build next.
Two working days for a reply, from a person, with a real answer about whether we can cover what you need. No card, no automated sales sequence.