Fuel prices near a place (France, Austria)
Filling stations near a place in France with their current pump prices (diesel, E10, SP95, SP98, E85, LPG; EUR per litre, with update times), fuels out of stock, address, motorway or road, 24-hour automat and services, sorted by price for a fuel or by distance, plus min/max/average price per fuel in the area. Source: prix-carburants.gouv.fr (Licence Ouverte), updated through the day. Austria (a place there, e.g. q=Wien): the 10 nearest stations selling each fuel (diesel, e5_95 for Super 95, cng), with name, address, coordinates, open-now flag, opening hours, phone, website, payment methods and services; by law prices are published only for the cheapest five per fuel, others list the fuel in price_not_published. Source: E-Control (Austria).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
lat | number | Latitude (with lon); or use q / postal_code. |
lon | number | Longitude. |
q | string | Place name in France or Austria, e.g. Lyon, Nice, FR, Wien. Example: Lyon |
postal_code | string | French postal code, with country=FR. |
country | string | Country for q/postal_code (FR). |
fuel | diesel | e10 | e5_95 | e5_98 | e85 | lpg | cng | Only stations selling this fuel (and sort by its price). Austria: diesel, e5_95 or cng. Example: diesel |
radius_km | number | Radius in km (default 5, max 30). |
sort | price | distance | price (default with fuel) or distance. |
limit | integer | Max stations (default 20, max 100). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/fuel/v1/stations" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/fuel/v1/stations",
params={},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/fuel/v1/stations");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).