German Fuel Station Prices Scraper - Petrol & Diesel
Pricing
from $0.50 / 1,000 results
German Fuel Station Prices Scraper - Petrol & Diesel
$0.5/1K 🔥 German fuel price scraper! Live petrol & diesel prices for 15k stations with brands & locations. JSON, CSV, Excel or API in seconds. Build price comparison & fleet tools ⚡
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
German Fuel Station Prices Scraper 🇩🇪⛽
Live petrol and diesel prices for 15,000+ German fuel stations. Scrape current E5, E10 and diesel prices with brand, street address, postcode, GPS coordinates, open/closed status and opening hours — searched by radius around any coordinates or looked up by station ID.
Data comes from MTS-K (Markttransparenzstelle für Kraftstoffe), the official German federal fuel-price reporting body, published via the Tankerkönig Creative-Commons API. Every filling station in Germany is legally required to report price changes to MTS-K within five minutes, so this is the authoritative source for German fuel prices — not a scraped price-comparison site.
✨ What you get
| Capability | Details |
|---|---|
| Coverage | ~15,000 German fuel stations (all brands, incl. independents) |
| Fuels | Diesel, Super E5, Super E10 — prices in EUR (e.g. 1.789) |
| Radius search | Any lat,lng centre point, up to 25 km, unlimited centres per run |
| Station lookup | Full detail records including structured opening hours |
| Freshness | Prices update within minutes of a station changing its pylon |
| Cost | ~$0.5 per 1,000 stations |
🚀 Quick start
{"mode": "radius","centers": ["52.5200,13.4050", "48.1351,11.5820"],"radiusKm": 5,"fuelType": "all","maxItems": 500}
This returns every fuel station within 5 km of central Berlin and central Munich, with all three fuel prices for each.
Cheapest diesel near a location
{"mode": "radius","centers": ["50.1109,8.6821"],"radiusKm": 25,"fuelType": "diesel","maxItems": 200}
Selecting a single fuel type sorts the results cheapest first.
Full detail for specific stations
{"mode": "stations","stationIds": ["278130b1-e062-4a0f-80cc-19e486b4c024","94e70fc4-b22f-4e5a-877f-bc1082cdae81"]}
Station mode adds opening_times and open_whole_day, then refreshes every
station against the live price endpoint. Run radius mode first to discover the
station IDs you want to monitor.
🔑 API key — read this before your first run
The actor ships with Tankerkönig's shared public demo key
(00000000-0000-0000-0000-000000000002) so you can try it instantly.
Verified demo-key behaviour (tested against all three endpoints):
| Aspect | Demo key |
|---|---|
list.php, detail.php, prices.php | ✅ All work, HTTP 200, ok: true |
| Station master data (name, brand, address, postcode, GPS, distance) | ✅ Real |
| Open/closed status, opening hours, whole-day flag | ✅ Real |
| Fuel prices | ❌ Placeholders — 1.009 from list.php/detail.php, 1.234 from prices.php, identical for every station |
| Rate limit | No throttling observed at ~3 requests/second across 25 consecutive calls |
So: the demo key is perfect for building and testing your integration, but it
will never give you real prices. Get your own key — it is free, personal and
issued in a few clicks at
creativecommons.tankerkoenig.de — and
paste it into the apiKey input. Everything else works identically.
📥 Input reference
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | radius | radius = search around coordinates · stations = look up explicit IDs |
centers | array | Berlin + Munich | "lat,lng" centre points; each is searched separately, results de-duplicated |
radiusKm | integer | 5 | Search radius, max 25 km (the API silently clamps larger values) |
fuelType | select | all | all, e5, e10 or diesel; a single fuel sorts results by price |
stationIds | array | [] | Tankerkönig station UUIDs (stations mode) |
apiKey | string | demo key | Your free personal Tankerkönig key |
maxItems | integer | 500 | Hard cap on stations collected per run (max 5000) |
📤 Output
One dataset item per fuel station:
{"station_id": "278130b1-e062-4a0f-80cc-19e486b4c024","name": "Aral Tankstelle","brand": "ARAL","street": "Holzmarktstraße","house_number": "12/14","post_code": "10179","city": "Berlin","state": null,"latitude": 52.514153,"longitude": 13.421487,"distance_km": 1.3,"is_open": true,"price_diesel": 1.699,"price_e5": 1.859,"price_e10": 1.799,"cheapest_fuel": "diesel","opening_times": null,"open_whole_day": true,"search_lat": 52.52,"search_lng": 13.405,"search_radius_km": 5,"source": "tankerkoenig","scraped_at": "2026-07-28T18:06:52Z"}
Field notes
price_diesel/price_e5/price_e10— EUR floats. The upstream API returns the booleanfalsefor a fuel a station does not sell, and occasionally0. Both are normalised tonull— this actor never emits a 0.00 EUR fuel price.cheapest_fuel— the fuel type with the lowest non-null price, ornullwhen the station has no usable price (e.g. it is closed).distance_km— only populated inradiusmode,nullotherwise.opening_times— only populated instationsmode, as a compact list of{text, start, end}blocks. Empty whenopen_whole_dayistrue.search_lat/search_lng/search_radius_km— the query centre that produced the row, so you can trace multi-centre runs.nullinstationsmode.post_code— emitted as a zero-padded 5-character string (the API returns an int).- All fields are nullable.
💡 Use cases
- Fuel price comparison apps — power a "cheapest station near me" feature with authoritative, legally-mandated price data instead of scraped estimates.
- Fleet cost optimisation — route delivery and service fleets past the cheapest diesel on their corridor and quantify the saving per refuel.
- Price monitoring — schedule the actor hourly and track competitor pylon prices, regional spreads, and how fast brands pass through wholesale moves.
- Local market analysis — map brand density, pricing power and station coverage by postcode for site selection, real-estate or energy-transition research.
⚖️ Licence & attribution (important)
The underlying data is published by Tankerkönig under CC BY 4.0. This licence requires attribution wherever you publish or display the data. Include a credit such as:
Fuel price data: Tankerkönig / MTS-K, licensed under CC BY 4.0
Please also respect Tankerkönig's fair-use guidance: do not poll far more often than prices actually change, and cache aggressively. This actor batches requests and de-duplicates stations to keep your footprint small.
🔗 Related actors
❓ FAQ
Why are all my prices exactly 1.009 or 1.234?
You are on the demo key. Add your own free key to apiKey. See the API key section.
Can I search a radius larger than 25 km?
No — the API caps it at 25 km and silently ignores larger values. Pass several
centers instead; results are de-duplicated by station_id.
Why is price_e10 null for some stations?
That station does not sell E10 (the API returns false), or it is currently closed.
How current are the prices? German stations must report price changes to MTS-K within five minutes, and Tankerkönig republishes them immediately.
Does it cover all of Germany? Yes — around 15,000 stations. It does not cover Austria, Switzerland or other countries.
Keywords: German fuel prices, Tankstellen Preise scraper, Benzinpreise API, diesel price Germany, E5 E10 petrol prices, Tankerkönig scraper, MTS-K fuel data, gas station scraper Germany, fuel price monitoring, Spritpreise API.