Skip to content
Eden Engine

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.

activeper callv1

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.

agent
// 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 do

Not 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.

ChargePrice
Per call
$0.0026
Updated
Oct 20, 2026

Input and output schemas

Input schema
input_schema.json
{
  "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
output_schema.json
{
  "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
}