German Fuel Station Prices Scraper - Petrol & Diesel avatar

German Fuel Station Prices Scraper - Petrol & Diesel

Pricing

from $0.50 / 1,000 results

Go to Apify Store
German Fuel Station Prices Scraper - Petrol & Diesel

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

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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

CapabilityDetails
Coverage~15,000 German fuel stations (all brands, incl. independents)
FuelsDiesel, Super E5, Super E10 — prices in EUR (e.g. 1.789)
Radius searchAny lat,lng centre point, up to 25 km, unlimited centres per run
Station lookupFull detail records including structured opening hours
FreshnessPrices 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):

AspectDemo 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 flagReal
Fuel pricesPlaceholders1.009 from list.php/detail.php, 1.234 from prices.php, identical for every station
Rate limitNo 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

FieldTypeDefaultDescription
modeselectradiusradius = search around coordinates · stations = look up explicit IDs
centersarrayBerlin + Munich"lat,lng" centre points; each is searched separately, results de-duplicated
radiusKminteger5Search radius, max 25 km (the API silently clamps larger values)
fuelTypeselectallall, e5, e10 or diesel; a single fuel sorts results by price
stationIdsarray[]Tankerkönig station UUIDs (stations mode)
apiKeystringdemo keyYour free personal Tankerkönig key
maxItemsinteger500Hard 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 boolean false for a fuel a station does not sell, and occasionally 0. Both are normalised to null — this actor never emits a 0.00 EUR fuel price.
  • cheapest_fuel — the fuel type with the lowest non-null price, or null when the station has no usable price (e.g. it is closed).
  • distance_km — only populated in radius mode, null otherwise.
  • opening_times — only populated in stations mode, as a compact list of {text, start, end} blocks. Empty when open_whole_day is true.
  • search_lat / search_lng / search_radius_km — the query centre that produced the row, so you can trace multi-centre runs. null in stations mode.
  • 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.



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