{"openapi":"3.1.0","info":{"title":"FuelWide fuel prices API","version":"2026-08-17|2026-08-24|2026-07|2026-07-06|2026-07-13|2026-07-13|2026-07-13","summary":"Retail fuel prices with their provenance attached.","description":"National average prices for 28 markets and forecourt-level prices for 5 (46,212 stations). No key, no registration, CORS open, cached an hour at the edge.\nEvery figure carries the source that published it, that source's licence, and the exact credit line the licence requires. A FuelWide credit alone does not satisfy them — reproduce each response's own `attribution` string.\nMarkets whose reuse terms are unconfirmed answer 451 rather than a price: GlobalPetrolPrices.com (69 markets), OpenVan.camp (13 markets), and the Bulgaria and Slovenia station feeds. They are published on fuelwide.com with attribution.","termsOfService":"https://fuelwide.com/methodology","contact":{"name":"FuelWide","url":"https://fuelwide.com/contact"},"license":{"name":"Per-source — see each response's `attribution`","url":"https://fuelwide.com/sources"}},"servers":[{"url":"https://fuelwide.com"}],"tags":[{"name":"Prices","description":"National average prices."},{"name":"Stations","description":"Forecourt-level prices."},{"name":"Widgets","description":"Embeddable HTML cards."},{"name":"Exports","description":"Bulk CSV and JSON downloads."}],"paths":{"/api/export/countries.csv":{"get":{"operationId":"exportcountries_csv","summary":"Bulk download","description":"One row per market: price, pre-tax price, tax share, rank, Fair Price Score, source and reference date. Same rights gate as the JSON endpoints — withheld markets do not appear.","tags":["Exports"],"parameters":[],"responses":{"200":{"description":"The file","content":{"text/csv":{"schema":{"type":"string"}}}}}}},"/api/export/countries.json":{"get":{"operationId":"exportcountries_json","summary":"Bulk download","description":"The same table as JSON, with the attribution block attached. Same rights gate as the JSON endpoints — withheld markets do not appear.","tags":["Exports"],"parameters":[],"responses":{"200":{"description":"The file","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/api/export/history.csv":{"get":{"operationId":"exporthistory_csv","summary":"Bulk download","description":"FuelWide's own weekly archive, long format — one row per market per week per fuel. Same rights gate as the JSON endpoints — withheld markets do not appear.","tags":["Exports"],"parameters":[],"responses":{"200":{"description":"The file","content":{"text/csv":{"schema":{"type":"string"}}}}}}},"/api/export/sources.csv":{"get":{"operationId":"exportsources_csv","summary":"Bulk download","description":"The provenance registry: every source with its licence, review status and credit line. Same rights gate as the JSON endpoints — withheld markets do not appear.","tags":["Exports"],"parameters":[],"responses":{"200":{"description":"The file","content":{"text/csv":{"schema":{"type":"string"}}}}}}},"/api/fuel-prices":{"get":{"operationId":"listFuelPrices","summary":"Every market we may redistribute","description":"National 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 110 markets published on the site; the other 82 are withheld and the response says by whom and why.","tags":["Prices"],"parameters":[],"responses":{"200":{"description":"Every market we may redistribute","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown slug. The body lists the slugs that do answer.","content":{"application/json":{"schema":{"type":"object"}}}},"451":{"description":"Unavailable for legal reasons — the market exists and is published on fuelwide.com, but its source's redistribution terms are unconfirmed. The body names the publisher and links to the page where the price is shown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Withheld"}}}}}}},"/api/fuel-prices/{country}":{"get":{"operationId":"getCountryFuelPrices","summary":"One market, with its provenance","description":"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.","tags":["Prices"],"parameters":[{"name":"country","in":"path","required":true,"description":"Country slug. 28 slugs answer 200; the rest answer 451.","schema":{"type":"string","enum":["austria","belgium","bulgaria","croatia","cyprus","czechia","denmark","estonia","finland","france","germany","greece","hungary","ireland","italy","latvia","lithuania","luxembourg","malta","netherlands","poland","portugal","romania","slovakia","slovenia","spain","sweden","united-kingdom"],"example":"germany"}}],"responses":{"200":{"description":"One market, with its provenance","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown slug. The body lists the slugs that do answer.","content":{"application/json":{"schema":{"type":"object"}}}},"451":{"description":"Unavailable for legal reasons — the market exists and is published on fuelwide.com, but its source's redistribution terms are unconfirmed. The body names the publisher and links to the page where the price is shown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Withheld"}}}}}}},"/api/stations/{country}":{"get":{"operationId":"listStations","summary":"Every forecourt in a covered market","description":"Per-station prices with coordinates, brand, opening hours and every grade sold, for italy, spain, france, portugal, australia (Western Australia only). No key, no cap. 2 further sets are published on our pages but withheld here: Bulgaria, Slovenia.","tags":["Stations"],"parameters":[{"name":"country","in":"path","required":true,"description":"Station-set slug.","schema":{"type":"string","enum":["italy","spain","france","portugal","australia"],"example":"spain"}},{"name":"fuel","in":"query","required":false,"description":"Keep only stations reporting this fuel.","schema":{"type":"string","enum":["petrol95","diesel"]}},{"name":"near","in":"query","required":false,"description":"`lat,lon` — filter by radius and sort nearest first.","schema":{"type":"string","example":"39.4699,-0.3763"}},{"name":"km","in":"query","required":false,"description":"Radius in kilometres for `near`. Default 25.","schema":{"type":"string","example":"5"}},{"name":"sort","in":"query","required":false,"description":"`price` sorts cheapest first instead of nearest first.","schema":{"type":"string","enum":["price"]}},{"name":"limit","in":"query","required":false,"description":"Maximum stations returned. Default and maximum 5000.","schema":{"type":"string","example":"20"}}],"responses":{"200":{"description":"Every forecourt in a covered market","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown slug. The body lists the slugs that do answer.","content":{"application/json":{"schema":{"type":"object"}}}},"451":{"description":"Unavailable for legal reasons — the market exists and is published on fuelwide.com, but its source's redistribution terms are unconfirmed. The body names the publisher and links to the page where the price is shown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Withheld"}}}}}}},"/api/widget/{slug}":{"get":{"operationId":"getWidget","summary":"Embeddable price card","description":"A self-contained HTML card for one market, styled to inherit the host page's background. Same rights gate as the JSON endpoints.","tags":["Widgets"],"parameters":[{"name":"slug","in":"path","required":true,"description":"`usa`, or a served country slug.","schema":{"type":"string","example":"germany"}}],"responses":{"200":{"description":"Embeddable price card","content":{"text/html":{"schema":{"type":"string"}}}},"404":{"description":"Unknown slug. The body lists the slugs that do answer.","content":{"application/json":{"schema":{"type":"object"}}}},"451":{"description":"Unavailable for legal reasons — the market exists and is published on fuelwide.com, but its source's redistribution terms are unconfirmed. The body names the publisher and links to the page where the price is shown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Withheld"}}}}}}},"/api/widget/embed.js":{"get":{"operationId":"getWidgetScript","summary":"Embed script for the price card","description":"A 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.","tags":["Widgets"],"parameters":[],"responses":{"200":{"description":"Embed script for the price card","content":{"text/html":{"schema":{"type":"string"}}}},"404":{"description":"Unknown slug. The body lists the slugs that do answer.","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Withheld":{"type":"object","required":["error","reason"],"properties":{"error":{"type":"string","const":"Not available through the API"},"country":{"type":"string"},"reason":{"type":"string"},"publisher":{"type":"string","description":"Who to licence it from."},"seeInstead":{"type":"string","format":"uri","description":"Where the price is published."}}}}},"x-fuelwide":{"datasetVersion":"2026-08-17|2026-08-24|2026-07|2026-07-06|2026-07-13|2026-07-13|2026-07-13","updatedAt":"2026-08-17","countriesServed":28,"countriesWithheld":82,"stationSetsServed":["italy","spain","france","portugal","australia"],"attribution":["Contains public sector information licensed under the Open Government Licence v3.0","Source: European Commission, Weekly Oil Bulletin","Station prices: DGEG, dados.gov.pt","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"],"docs":"https://fuelwide.com/fuel-prices-api","sources":"https://fuelwide.com/sources","press":"https://fuelwide.com/press","fairPriceScore":"https://fuelwide.com/fair-price-score"}}