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
- Car park API for German cities with live occupancy
- Roadworks and closure API for German cities
- Water level API for German cities (PEGELONLINE)
- Weather warning API for German cities (DWD)
- EV charging station API for German cities (BNetzA)
- Weather API for German cities (DWD)
- Air quality API for German cities (UBA)
- Electricity price API for Germany (SMARD)
- Land values API for German cities (BORIS)
- Solar API for German cities (PVGIS)
- Solar cadastre API for German cities (rooftop PV)
- Real-time public transport API for German cities
- Public procurement API for German cities
- Council information API for German cities
- Municipal tax rate API for German cities
- Population and density API for German cities
- Crime statistics API for German cities (PKS)
- Road accident API for German cities
- Labour market API for German cities
- Business and insolvency API for German cities