InfraNode.dev
MCP InfraNode is also available as an MCP server for AI assistants like Claude and ChatGPT.

Fuel price API for German cities (MTS-K)

Current fuel prices per city through a free, key-free REST API. The basis is the reported data of the German market transparency unit for fuels, retrieved via Tankerkönig and aggregated per city into average and best prices.

What data you get

Per city the endpoint returns average and minimum prices for Super E5, Super E10 and diesel across the currently open stations around the city, plus the number of stations considered and open, the search radius and the individual stations with brand, address, distance and opening status.

  • Average price E5, E10, diesel
  • Best price per grade
  • Number of stations in radius
  • Number of open stations
  • Search radius in kilometres
  • Brand and name per station
  • Distance to city centre
  • Opening status

Source: Tankerkönig / German market transparency unit for fuels (MTS-K). License: CC BY 4.0. Source, license URL and timestamp are included in every API response in the meta and attribution block.

How to fetch it

A simple GET request, no key and no sign-up:

curl https://infranode.dev/api/v1/cities/koeln/fuel-prices

For another city, just put the slug from the cities list into the path.

No key, no sign-up, free.

Covered cities

40 cities with reported stations inside the search radius. The city figures are calculated, not reported.

Currently available for 40 cities. The exact per-city status is on the coverage and status page, the full list of cities on the cities overview.

Straight to the largest covered cities: Berlin , Hamburg , München , Köln , Frankfurt am Main , Stuttgart , Düsseldorf , Leipzig , Dortmund , Essen .

Endpoint reference

All parameters, fields and response examples are in the API reference for this endpoint. InfraNode is also available as an MCP server for AI assistants.

Frequently asked questions

How current are the prices?
Prices are fetched on request and cached only very briefly. Every response carries the retrieval timestamp. We deliberately do not retain historical prices, as the terms of use of the source prohibit it.
Why does the average differ from individual stations?
The city value is a calculated mean across the open stations around the city coordinate. Individual stations can be well above or below it, which is why the response also carries the best price and the individual stations.
May I use the data commercially?
The licence permits commercial use with attribution. The terms of the source apply in addition: retrieval only on actual user action, no automated background polling and no permanent storage of prices.
Why are some cities missing?
Only cities with reported stations inside the search radius return values. For the others the response honestly reports that no data is available instead of inventing an estimate.

More data types