German Air Quality Index & Pollutants (Umweltbundesamt)
Pricing
from $1.00 / 1,000 results
German Air Quality Index & Pollutants (Umweltbundesamt)
Official hourly air quality for about 400 German measuring stations from the Umweltbundesamt: air quality index plus NO2, PM10, PM2.5, ozone, SO2 and CO. Latest hour or any period since 2016, by state, city or near a location.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Taylor Ford
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Get official, hourly air quality data for Germany – the air quality index plus NO₂, PM10, PM2.5, ozone, SO₂ and CO – for about 400 measuring stations run by the federal states and the Umweltbundesamt (German Environment Agency).
Ask for the latest hour, the last 24 hours, the last 7 days, or any period back to 2016. Filter by federal state, city, station, or near any location ("the 3 stations closest to my address"). No API key, no scraping, no login.
What can I use it for?
- 🏠 Real estate & location reports – air quality around an address or district.
- 📱 Apps & smart home – show current air quality, warn when it turns "poor".
- 🌱 ESG and sustainability reporting – NO₂ and particulate matter near sites and offices.
- 📰 Journalism & research – compare cities, track trends since 2016.
- 🤖 AI agents – call it as a tool via the Apify MCP server: "How is the air quality in Munich right now?"
Data you get
One row per station and hour:
| Field | Meaning |
|---|---|
stationName, stationCode, city, state, stateCode, postalCode, street | Where the station is |
latitude, longitude, areaType, sourceType | Location; urban/suburban/rural; traffic/industry/background |
start, end, timestampUtc | The hour measured (CET as published, plus UTC) |
airQualityIndex, airQualityLabel | 0 = very good, 1 = good, 2 = moderate, 3 = poor, 4 = very poor |
no2, pm10, pm25, o3, so2 (µg/m³), co (mg/m³) | Pollutant values, each with its own index (no2Index, …) |
distanceKm | Distance to your location (when you give coordinates) |
incomplete | true if not all pollutants were available for that hour |
A summary (average index, counts per level, best and worst stations) is saved in the key-value store under OUTPUT.
Example input
{"period": "latest","latitude": "48.137","longitude": "11.575","maxStations": 3}
Example output
{"stationName": "München/Stachus","stationCode": "DEBY115","city": "München","stateCode": "BY","areaType": "urban","sourceType": "traffic","start": "2026-10-06T12:00:00+01:00","timestampUtc": "2026-10-06T11:00:00.000Z","airQualityIndex": 1,"airQualityLabel": "good","no2": 31,"pm10": 18,"pm25": 9,"o3": 52,"distanceKm": 0.4}
(Values above are illustrative.)
Notes
- The source publishes times in CET (UTC+1) all year;
timestampUtcgives the exact instant. - Data for the current year is provisional; the Umweltbundesamt publishes validated data the following June.
- Not every station measures every pollutant; missing values are
null.
Pricing
You pay only per row returned – no monthly fee.
Source and license
Data: Umweltbundesamt mit Daten der Messnetze der Länder und des Bundes, licensed under Datenlizenz Deutschland – Namensnennung – Version 2.0. Please keep this attribution when you publish the data. This tool is independent and not affiliated with or endorsed by the Umweltbundesamt.