Fuel Prices France by Station
Pricing
$1.00 / 1,000 stations
Fuel Prices France by Station
Current fuel prices per filling station in Italy and France, from the open data published by the two governments. Filter by city, province, postal code or distance from a point, and get one normalised row per station with every price, the cheapest one for your fuel, source, licence and dates.
Pricing
$1.00 / 1,000 stations
Rating
0.0
(0)
Developer
IOCODO LLC
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
What does Fuel Prices France by Station do?
Fuel Prices France by Station downloads the current fuel prices per filling station that the French Ministry of the Economy publishes as open data.
It filters them by the place and fuel you choose and returns one row per station.
The source is the prix-carburants open data, the instantaneous feed, with about 9,800 stations that report prices.
It needs no API key, no login and no browser.
Why use it?
- Price monitoring. Schedule a run each day and follow the price of diesel or petrol in the cities that matter to you.
- Fleet and travel costs. Find the cheapest stations within a radius of a depot, a hotel or a border crossing, sorted by price.
- Maps and apps. Latitude, longitude and distance come ready to plot.
- Comparison and research. Prices per station, not averages, with the date each price was reported.
On Apify you can schedule runs, call the Actor through the API, and send results to Google Sheets, Zapier, Make or a webhook.
What data does it return?
| Field | Example |
|---|---|
country | FR |
stationId | 69007008 |
brand | null (the feed does not give it) |
stationType | road or motorway |
address, city | AVENUE TONY GARNIER, LYON |
province, postalCode | null (not used for France), 69007 |
latitude, longitude | 45.727, 4.829 |
distanceKm | 1.4 (only when you set a point) |
prices | every price: fuel, fuelLabel, price, currency, selfService, updatedAt |
cheapest | { "fuel": "diesel", "price": 2.25 } |
source_updated_at | 2026-10-23T22:01:00.000Z (the newest price of the station) |
Every record also carries source, license and retrieved_at, so you know where a row came from and when it was read.
What is not in the output. The output is a fixed list of fields about the station. Opening hours, services and any person name never appear.
What is left out.
- Stations with no price for the fuels you chose.
- Prices below 0.3 or above 5 EUR, treated as typing errors in the source.
- Rows that cannot be read. They are counted as
skippedRowsin the summary.
How to get fuel prices
- Open the Actor and pick the Fuels, for example Diesel. Leave it empty for every fuel.
- Narrow the place with a city, a postal code, or a point and a radius.
- Choose how to sort and how many stations you want, then click Start.
- Download the results as JSON, CSV, Excel or HTML.
How the filters work:
- A station must match every filter you set.
- With no place filter at all, the run returns up to
maxStationsstations.
How much does it cost?
You pay $1 per 1,000 stations returned ($0.001 each), and nothing for a run that matches no station. A run stops by itself at the maximum charge you set, so a wide query cannot cost more than you allow. The monthly credit of the free Apify plan is enough to try it.
Input
See the input tab for every option. In short:
fuels: fuel codes from the table below, empty for all. The first one is used forcheapestand for sorting by pricecities: exact city names. Case, accents and punctuation are ignored, soSaint-ÉtiennefindsSAINT ETIENNEpostalCodes: a prefix matches longer codes, so75gives all of Paris and69001gives one arrondissementlatitude,longitudeandradiusKm: stations within a straight-line distance of a point. The radius is in kilometres, default10, from0.5to200maxStations: up to 100,000 (default 1,000). It is applied after sortingsortBy:none(order of the source file),price(lowestcheapest.pricefirst, needs at least one fuel) ordistance(nearest first, needs a point)
Example, diesel in Lyon, cheapest first:
{"fuels": ["diesel"],"cities": ["Lyon"],"maxStations": 20,"sortBy": "price"}
Output
One dataset row per station. This is a row from a run of the example above:
{"country": "FR","stationId": "69007008","brand": null,"stationType": "road","address": "AVENUE TONY GARNIER","city": "LYON","province": null,"postalCode": "69007","latitude": 45.727,"longitude": 4.829,"distanceKm": null,"prices": [{ "fuel": "diesel", "fuelLabel": "Gazole", "price": 2.25, "currency": "EUR", "selfService": null, "updatedAt": "2026-10-23T22:01:00.000Z" }],"cheapest": { "fuel": "diesel", "price": 2.25 },"source": {"name": "Ministère de l'Économie, prix-carburants.gouv.fr open data","url": "https://www.prix-carburants.gouv.fr/rubrique/opendata/"},"license": {"name": "Licence Ouverte 2.0 (Etalab)","url": "https://www.etalab.gouv.fr/licence-ouverte-open-licence/","attribution": "Source: Ministère de l'Économie (prix-carburants.gouv.fr), Licence Ouverte 2.0"},"source_updated_at": "2026-10-23T22:01:00.000Z","retrieved_at": "2026-10-24T19:22:59.969Z"}
A SUMMARY record in the key-value store lists:
- the date of the newest price in the feed
- how many stations were read and matched
- how many rows were skipped and how many records were pushed
- whether the run stopped at the charge limit
If the feed cannot be downloaded, the run fails and the log says why.
Fuel codes
The original fuel name always stays in fuelLabel. The fuel code comes from it:
fuel | France (nom) |
|---|---|
diesel | Gazole |
gasoline | SP95 |
gasoline_e10 | E10 |
gasoline_98 | SP98 |
e85 | E85 |
lpg | GPLc |
other | any other name the feed lists |
other cannot be picked in fuels. Leave fuels empty to get those prices too.
Tips
- Schedule a run as often as you need. Stations report their prices through the day, and each price has its own
updatedAt. - Check
updatedAt. Some stations report rarely. A price can be days or weeks old, so filter on the date in your own pipeline if you need fresh prices only. - No self-service flag. The feed does not say whether a price is self-service, so
selfServiceisnull. - Cities with districts. Some stations write the district in the city field (
LYON 5EME,PARIS 13). For a whole city, usepostalCodes, for example75for Paris or690for Lyon. - The cheapest stations near you. Set a point and a radius, pick one fuel, set
sortBytopriceandmaxStationsto 10. - Distance is a straight line, not a road distance.
- Dates. The feed gives local time without a zone. The Actor reads it as Central European time and writes UTC in
updatedAt. Coordinates are rounded to 6 decimals and converted from the feed's degrees multiplied by 100,000.
Data source and licence
- Publisher: Ministère de l'Économie
- Dataset: prix-carburants.gouv.fr open data, the instantaneous feed
- Licence: Licence Ouverte 2.0 (Etalab)
- Attribution: Source: Ministère de l'Économie (prix-carburants.gouv.fr), Licence Ouverte 2.0
The Actor selects, renames and converts fields (coordinates, dates, fuel names); prices are not changed.
This Actor is independent and is not affiliated with, endorsed by or approved by the French Ministry of the Economy.
Prices are what the stations reported to the publisher. Check the price at the pump before any decision that depends on it.
FAQ
Which fuels are covered?
Every fuel the French feed lists: diesel (Gazole), petrol (SP95, E10, SP98), E85 and LPG (GPLc). Electric charging prices are not in this feed.
Is Italy available?
Not at the moment.
Why is a station missing?
Common reasons:
- It has no price for the fuels you chose.
- Its city is written differently in the source. Try a postal code.
- It has no coordinates and you set a radius.
- Its row could not be read. The
SUMMARYrecord shows how many rows were skipped.
Why do some prices look old?
Each price carries the time the station reported it, in updatedAt. The Actor does not hide old prices, so you can decide what is too old for your use.
Can I get the data without paying for stations I do not need?
Yes. Use the filters and maxStations. You pay only for the stations returned, and a run stops by itself at the maximum charge you set.
Found a problem?
Open an issue in the Issues tab and describe the input that went wrong.