OpenAQ Air Quality Scraper
Pricing
$1.00 / 1,000 results
OpenAQ Air Quality Scraper
Find air quality monitors anywhere by coordinates or country code. Every station carries its name, coordinates, provider, measured pollutants, and latest readings for PM2.5, PM10, ozone, and NO2 with timestamps. Handy for environmental research, public dashboards, and health monitoring.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

🌍 OpenAQ Air Quality Scraper
🚀 Map air quality monitors anywhere in seconds. One query around London returns 100+ stations with live PM2.5, PM10, NO2, and ozone readings.
🕒 Last updated: 2026-06-02 · 📊 22 fields per station · coordinate or country queries · live pollutant readings
Pull air quality monitoring stations and their latest measurements from the OpenAQ global network. Search by coordinates with a radius or by country code, and for every station get its location, provider, the pollutants it tracks, and the most recent readings for PM2.5, PM10, ozone, NO2, SO2, and CO with timestamps.
Coverage: the worldwide OpenAQ network of government and research monitors. Pass coordinates (for example "34.0522,-118.2437") with a radius, or a two-letter country code.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Environmental researchers | Study pollution across regions |
| App and dashboard builders | Power live air quality maps |
| Health and safety teams | Trigger alerts on poor air |
| Data scientists | Build air quality datasets |
📋 What the OpenAQ Air Quality Scraper does
- Finds monitoring stations near coordinates or within a country.
- Returns 22 structured fields per station, including a full measurements list.
- Joins each sensor to its pollutant, value, units, and timestamp.
- Flattens PM2.5 and PM10 to top-level columns for quick comparison.
- Optionally filters to stations that measure a chosen pollutant.
- Exports to CSV, Excel, JSON, XML, or via API.
🎬 Full Demo (🚧 Coming soon)
⚙️ Input
| Field | Type | Description |
|---|---|---|
coordinates | string | Center point "lat,lon". Returns nearby stations. |
radiusKm | integer | Search radius in km (max 25). |
countryCode | string | Optional. Two-letter ISO code, used when no coordinates are given. |
parameter | string | Optional. Keep only stations measuring this pollutant. |
maxItems | integer | Cap on stations returned. Free plan is limited to 10. |
apiKey | string | OpenAQ API key. A shared key is provided by default. |
Example 1: by coordinates
{"coordinates": "34.0522,-118.2437","radiusKm": 15,"maxItems": 50}
Example 2: by country, only PM2.5 stations
{"countryCode": "GB","parameter": "pm25","maxItems": 100}
⚠️ Good to Know: OpenAQ requires a free API key. A shared key ships by default, but for heavy use get your own at explore.openaq.org. Some stations are historical, so check
datetimeLastfor the freshness of each reading. Coordinate queries surface the most active stations.
📊 Output
Each record contains the following fields:
| Field | Description |
|---|---|
🆔 locationId | OpenAQ station ID |
📍 name | Station name |
🏘 locality | Locality, when available |
🌍 country | Country name |
🏳 countryCode | Two-letter country code |
🧭 latitude | Latitude |
🧭 longitude | Longitude |
🕓 timezone | Station timezone |
🏢 provider | Data provider |
👤 owner | Station owner |
🚐 isMobile | Mobile sensor flag |
🖥 isMonitor | Reference monitor flag |
🔬 instruments | Instruments used |
🧪 parameters | Pollutants the station measures |
🟣 pm25 | Latest PM2.5 reading |
🟠 pm10 | Latest PM10 reading |
📈 measurements | All latest readings with value, units, and time |
🗓 datetimeFirst | First data timestamp |
🕒 datetimeLast | Most recent data timestamp |
🔗 locationUrl | OpenAQ Explorer page |
🕒 scrapedAt | Collection timestamp |
❌ error | Error message, null on success |
Real sample records:
{"locationId": 146,"name": "Southwark A2 Old Kent Road - UKA00558","country": "United Kingdom","countryCode": "GB","latitude": 51.4804989994662,"longitude": -0.059550000208953166,"provider": "EEA","parameters": ["no2", "pm10", "pm25"],"pm25": 5.1,"pm10": 19,"measurements": [{ "parameter": "pm10", "displayName": "PM10", "value": 19, "units": "µg/m³", "datetimeUtc": "2026-06-01T00:00:00Z" },{ "parameter": "no2", "displayName": "NO₂ mass", "value": 6.5025, "units": "µg/m³", "datetimeUtc": "2026-06-02T17:00:00Z" }],"datetimeLast": "2026-06-02T17:00:00Z","locationUrl": "https://explore.openaq.org/locations/146","error": null}
{"locationId": 148,"name": "London Bloomsbury - UKA00211","country": "United Kingdom","countryCode": "GB","latitude": 51.52228999923011,"longitude": -0.12588900021133392,"provider": "EEA","parameters": ["no2", "o3", "pm10", "pm25", "so2"],"pm25": 13.9,"pm10": 31.3,"measurements": [{ "parameter": "o3", "displayName": "O₃ mass", "value": 86.6, "units": "µg/m³", "datetimeUtc": "2026-05-26T23:00:00Z" },{ "parameter": "no2", "displayName": "NO₂ mass", "value": 19.3, "units": "µg/m³", "datetimeUtc": "2026-05-26T23:00:00Z" }],"datetimeLast": "2026-05-28T15:00:00Z","locationUrl": "https://explore.openaq.org/locations/148","error": null}
{"locationId": 60,"name": "Haringey Roadside - UKA00260","country": "United Kingdom","countryCode": "GB","latitude": 51.59929999967941,"longitude": -0.06821799979396657,"provider": "EEA","parameters": ["no2", "pm25"],"pm25": 10,"pm10": null,"measurements": [{ "parameter": "no2", "displayName": "NO₂ mass", "value": 26.20125, "units": "µg/m³", "datetimeUtc": "2026-06-02T17:00:00Z" }],"datetimeLast": "2026-06-02T17:00:00Z","locationUrl": "https://explore.openaq.org/locations/60","error": null}
✨ Why choose this Actor
- Global reach. Query any city by coordinates or any nation by code.
- Joined and clean. Every sensor is matched to its pollutant, value, units, and time.
- Quick comparison. PM2.5 and PM10 are flattened to their own columns.
- Freshness visible.
datetimeLastshows how current each station is. - Ready to export. CSV, Excel, JSON, XML, or API, with a clean table view.
📈 How it compares to alternatives
| OpenAQ Air Quality Scraper | Manual API calls | Generic web scrapers | |
|---|---|---|---|
| Sensor to pollutant join | ✅ | ⚠️ Manual | ❌ |
| Coordinate and country search | ✅ | ⚠️ | ❌ |
| Flattened PM2.5 and PM10 | ✅ | ❌ | ❌ |
| Pagination handled | ✅ | ⚠️ | ⚠️ |
| Export to CSV/Excel/JSON/XML | ✅ | ❌ | ⚠️ |
🚀 How to use
- Create a free Apify account using this sign-up link.
- Open the OpenAQ Air Quality Scraper.
- Enter
coordinateswith aradiusKm, or acountryCode, and setmaxItems. - Click Start and watch the dataset fill in real time.
- Export your results as CSV, Excel, JSON, or XML, or pull them via API.
💼 Business use cases
🌫 Environmental monitoring
| Goal | How |
|---|---|
| Track a city | Query coordinates on a schedule |
| Compare regions | Aggregate by country code |
🏥 Health and safety
| Goal | How |
|---|---|
| Alert on spikes | Watch PM2.5 across stations |
| Protect workers | Map nearby monitors to a site |
📊 Research and analytics
| Goal | How |
|---|---|
| Build datasets | Collect stations across areas |
| Study trends | Pair readings with timestamps |
🗺 Apps and dashboards
| Goal | How |
|---|---|
| Power a map | Use coordinates and latest values |
| Show pollutants | Render the measurements list |
🔌 Automating OpenAQ Air Quality Scraper
Connect this Actor to your stack with Apify integrations: Make, Zapier, Slack, Airbyte, GitHub, and Google Drive. Schedule runs and push fresh air quality data into spreadsheets, databases, or alerts.
🌟 Beyond business use cases
- Research: study pollution patterns across cities and seasons.
- Personal: check the air near your home or commute.
- Non-profit: support clean air advocacy with open data.
- Experimentation: build environmental analytics projects.
🤖 Ask an AI assistant
Paste your dataset into ChatGPT, Claude, Perplexity, or Copilot and ask for the cleanest stations, average PM2.5 by area, or pollution hotspots.
❓ Frequently Asked Questions
1. Do I need an API key? OpenAQ requires a free key. A shared key ships by default, and you can add your own for heavy use.
2. How do I search a city?
Pass coordinates as "lat,lon" with a radiusKm. Coordinate queries surface the most active stations.
3. Can I search a whole country?
Yes. Use countryCode with a two-letter ISO code.
4. What pollutants are covered? PM2.5, PM10, ozone, NO2, SO2, CO, and more, depending on each station.
5. Why is PM2.5 sometimes null?
That station does not measure PM2.5. Check the parameters and measurements fields.
6. How fresh is the data?
Each station shows datetimeLast. Some stations are historical, so this field reveals freshness.
7. Can I filter by pollutant?
Yes. Set parameter to keep only stations measuring it.
8. What export formats are supported? CSV, Excel, JSON, XML, and API.
9. Can I run it on a schedule? Yes, with Apify Schedules and integrations.
10. Is there a free option? Yes. Free runs are limited to 10 items as a preview. Paid plans unlock up to 1,000,000.
🔌 Integrate with any app
Use the Apify API, webhooks, and 5,000-plus integrations to push OpenAQ data into Make, Zapier, Google Sheets, Airtable, databases, and more.
🔗 Recommended Actors
- WAQI Air Quality Scraper
- EPA AQS Air Quality Scraper
- Open-Meteo Weather Scraper
- NOAA Weather Scraper
- USGS Earthquake Scraper
💡 Pro Tip: browse the complete ParseForge collection.
🆘 Need Help? Open our contact form
⚠️ Disclaimer: independent tool, not affiliated with OpenAQ. Data is provided by the OpenAQ open data platform and its contributors.