French Fuel Station Prices (Diesel, E10, SP95, SP98, E85, LPG, Opening Hours)
dataeconomie/fuel-station-prices
Current data on petrol stations in France from the French government's instant fuel feed: for each station its address, postcode, city, department, region and coordinates, the price and last update time of each fuel (diesel, SP95, SP98, E10, E85, LPG), which fuels are unavailable, services offered and opening hours. Filter by postcode, city or department with a where expression, sort with order_by, and page with limit and offset. Hours, services, prices and shortages also arrive as JSON text in the horaires, services, prix and rupture fields. Data of the Ministère de l'Économie published on data.economie.gouv.fr under Licence Ouverte v2.0 (Etalab), served by Eden Engine; not an official ministry product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Ministère de l'Économie et des Finances (France)
Source: Ministère de l'Économie, des Finances et de la Souveraineté industrielle, énergétique et numérique, data.economie.gouv.fr, under Licence Ouverte v2.0 (Etalab), https://www.etalab.gouv.fr/wp-content/uploads/2017/04/ETALAB-Licence-Ouverte-v2.0.pdf. Cite the date of the data. Served by Eden Engine; not an official data.economie.gouv.fr product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "dataeconomie/fuel-station-prices" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "dataeconomie/fuel-station-prices" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "dataeconomie/fuel-station-prices", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "dataeconomie/fuel-station-prices", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 20, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"limit"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many stations to return, 1 to 50. Each station is a large record (about 1.5 KB), so ask for what you need."
},
"where": {
"type": "string",
"maxLength": 300,
"description": "Optional filter expression in the portal's query language, sent unchanged. Fields include cp (postcode, text), ville (city, text), code_departement (text, for example \"69\"), region, and the numeric gazole_prix, e10_prix, sp95_prix, sp98_prix, e85_prix, gplc_prix. Examples: cp=\"75001\"; ville=\"Lyon\"; code_departement=\"69\" and e10_prix<2. Text must match the stored spelling. Leave out for no filter."
},
"offset": {
"type": "integer",
"maximum": 9950,
"minimum": 0,
"description": "How many matching stations to skip, for paging: offset 50 with limit 50 is the second page. Leave out for the first page."
},
"order_by": {
"type": "string",
"pattern": "^[a-z0-9_]+( (asc|desc))?(,[a-z0-9_]+( (asc|desc))?)*$",
"maxLength": 120,
"description": "Optional sort, a field name with an optional direction, comma separated for several: gazole_prix asc, or e10_prix desc. Leave out for the service's own order."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"total_count",
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cp": {
"type": "string",
"description": "Postcode."
},
"id": {
"type": "integer",
"description": "Station identifier."
},
"geom": {
"type": "object",
"description": "Decimal degrees: { lon, lat }.",
"additionalProperties": true
},
"prix": {
"type": "string",
"description": "Fuel prices as JSON text."
},
"ville": {
"type": "string",
"description": "City."
},
"region": {
"type": "string"
},
"adresse": {
"type": "string",
"description": "Street address."
},
"rupture": {
"type": "string",
"description": "Fuel shortages as JSON text."
},
"e10_prix": {
"type": [
"number",
"null"
],
"description": "E10, euros per litre."
},
"e85_prix": {
"type": [
"number",
"null"
],
"description": "E85, euros per litre."
},
"horaires": {
"type": "string",
"description": "Opening hours as JSON text."
},
"latitude": {
"type": "string",
"description": "Scaled integer text, not decimal degrees. Use geom."
},
"services": {
"type": [
"string",
"null"
],
"description": "Services as JSON text; null when none are listed."
},
"gplc_prix": {
"type": [
"number",
"null"
],
"description": "LPG, euros per litre."
},
"longitude": {
"type": "string",
"description": "Scaled integer text, not decimal degrees. Use geom."
},
"sp95_prix": {
"type": [
"number",
"null"
],
"description": "SP95, euros per litre."
},
"sp98_prix": {
"type": [
"number",
"null"
],
"description": "SP98, euros per litre."
},
"gazole_maj": {
"type": [
"string",
"null"
],
"description": "Diesel price update time."
},
"code_region": {
"type": "string"
},
"departement": {
"type": "string"
},
"gazole_prix": {
"type": [
"number",
"null"
],
"description": "Diesel, euros per litre."
},
"code_departement": {
"type": "string"
},
"services_service": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"carburants_disponibles": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"horaires_automate_24_24": {
"type": [
"string",
"null"
]
},
"carburants_indisponibles": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
}
},
"additionalProperties": true
}
},
"total_count": {
"type": "integer",
"description": "Stations matching the filter, across all pages."
}
},
"description": "`total_count` is the number of stations matching the filter; `results` holds up to `limit` station records.",
"additionalProperties": true
}