Overview
OpenAQ operates as an open-source platform designed to collect, standardize, and provide access to air quality data from a global network of public and commercial sources. Established in 2015, the project aims to democratize access to environmental data, making it available for a wide range of applications including academic research, environmental monitoring, public health studies, and data journalism. The platform aggregates measurements of common air pollutants such as PM2.5, PM10, ozone, carbon monoxide, sulfur dioxide, and nitrogen dioxide, collected from government sensors, research-grade monitors, and other contributors worldwide.
The core offering is the OpenAQ API, which enables programmatic access to both real-time and historical air quality readings. This API standardizes disparate data formats into a common structure, simplifying data ingestion and analysis for developers. Users can query data based on location, parameter type, and time ranges, facilitating the creation of custom applications, dashboards, and research tools. Beyond the API, the OpenAQ Platform also includes tools and infrastructure for data ingestion, processing, and quality assurance.
OpenAQ is particularly suited for scenarios requiring broad geographic coverage of air quality data without the need for proprietary sensor networks. Its utility extends to organizations tracking localized pollution events, researchers conducting large-scale epidemiological studies, and journalists reporting on environmental issues. The platform's commitment to open data principles fosters collaboration and innovation within the environmental data community. While a free Community Plan supports non-commercial use, paid plans offer increased rate limits, advanced features, and commercial usage rights, catering to diverse organizational needs.
Key features
- Global Data Aggregation: Collects and standardizes air quality data from a diverse array of public and commercial sources across numerous countries and regions. This includes data from government monitoring stations and research initiatives.
- Standardized API Access: Provides a unified API endpoint for accessing various air quality parameters (e.g., PM2.5, NO2, O3) in a consistent JSON format, simplifying data retrieval and integration (OpenAQ API reference).
- Real-time and Historical Data: Offers both current air quality measurements and extensive archives of historical data, supporting trend analysis, predictive modeling, and retrospective studies.
- Geospatial Querying: Enables data retrieval based on geographic coordinates, bounding boxes, or specific locations, allowing users to focus on relevant areas.
- Parameter Filtering: Users can filter data by specific pollutant types, such as particulate matter (PM2.5, PM10), ozone (O3), carbon monoxide (CO), sulfur dioxide (SO2), and nitrogen dioxide (NO2).
- Open-Source Infrastructure: The platform is built on open-source principles, encouraging community contributions and transparency in data processing and methodology.
- Developer-Friendly Documentation: Comprehensive documentation with code examples in popular languages like Python, R, and JavaScript simplifies the integration process for developers.
Pricing
OpenAQ offers a tiered pricing model that includes a free community plan and various paid subscriptions for commercial and higher-volume usage. The pricing is structured to accommodate individual researchers, small development teams, and larger enterprises requiring extensive data access. Details are available on the OpenAQ billing page.
As of May 2026, the pricing structure is as follows:
| Plan Name | Monthly Cost | Primary Use Case | Features |
|---|---|---|---|
| Community Plan | Free | Non-commercial projects, personal use | Limited API requests, standard data access, community support |
| Developer Plan | $49 | Commercial applications, moderate usage | Increased API request limits, advanced data features, standard support |
| Startup Plan | Contact for pricing | Growing businesses, higher data volumes | Custom API limits, enhanced support, dedicated onboarding |
| Enterprise Plan | Contact for pricing | Large organizations, mission-critical applications | Highest API limits, premium support, custom data solutions, SLAs |
Common integrations
OpenAQ data can be integrated into various systems and applications. While OpenAQ does not provide specific integration guides for third-party platforms, its API output can be consumed by tools that support RESTful data ingestion.
- Data Visualization Tools: Integrate with platforms like Tableau, Power BI, or custom D3.js applications to create interactive maps and dashboards of air quality data.
- Environmental Modeling Software: Input OpenAQ data into atmospheric dispersion models or public health impact models for more accurate simulations.
- IoT Platforms: Combine OpenAQ's aggregated data with local sensor readings from IoT devices for comprehensive environmental monitoring.
- GIS Platforms: Utilize data in geographic information systems (GIS) like ArcGIS to perform spatial analysis and mapping of pollution patterns.
- Cloud Data Warehouses: Ingest data into services such as Google BigQuery (Google Cloud BigQuery documentation) or AWS Redshift for large-scale storage and analytics.
- Programming Languages & Libraries: Directly integrate using HTTP clients in Python (e.g., Requests), R, JavaScript (e.g., Axios, Fetch), or other languages.
Alternatives
- BreezoMeter: Offers hyper-local, real-time, and forecasted air quality and pollen data, often used in consumer-facing applications and smart home devices.
- IQAir: Provides real-time global air quality information, forecasts, and historical data, along with air purification solutions and public monitoring initiatives.
- Plume Labs: Specializes in hyper-local and personal air quality data, including forecasts and real-time mapping, often integrating with wearable sensors.
Getting started
To begin using the OpenAQ API, you typically need to obtain an API key (for paid plans) and then make HTTP requests to the API endpoints. The following Python example demonstrates how to retrieve the latest air quality measurements for a specific city. This example uses the requests library, which is a common choice for making HTTP requests in Python.
import requests
import json
API_BASE_URL = "https://api.openaq.org/v2"
# For paid plans, replace 'YOUR_API_KEY' with your actual API key
# headers = {"X-API-Key": "YOUR_API_KEY"}
headers = {}
# Get the latest measurements for a specific city, e.g., 'London'
city_name = "London"
params = {
"city": city_name,
"limit": 10, # Limit results to 10 measurements
"sort": "desc", # Sort by datetime descending
"order_by": "datetime"
}
response = requests.get(f"{API_BASE_URL}/latest", headers=headers, params=params)
if response.status_code == 200:
data = response.json()
print(f"Latest air quality data for {city_name}:")
for result in data['results']:
for measurement in result['measurements']:
print(f" Location: {result['location']}")
print(f" Parameter: {measurement['parameter']}")
print(f" Value: {measurement['value']} {measurement['unit']}")
print(f" Last Updated: {measurement['lastUpdated']}")
print("-" * 20)
else:
print(f"Error fetching data: {response.status_code}")
print(response.text)
This script first defines the base URL for the OpenAQ API. It then sets parameters to query for the latest measurements in 'London', limiting the results and sorting them by the most recent update. The requests.get() function sends the request, and if successful, the JSON response is parsed and iterated through to print out location, parameter, value, unit, and last updated timestamp for each measurement. For more advanced queries, including filtering by bounding boxes or historical data, refer to the OpenAQ API documentation.