Overview
OpenAQ is an open-source platform providing access to air quality data aggregated from thousands of government and research-grade monitoring stations worldwide. It requires a free API key for higher usage, but unauthenticated requests are also allowed at low rate limits. Developers can query historical and real-time PM2.5, NO2, ozone, and other pollutant measurements by location or country.
Beginner Tip
Register for a free API key at openaq.org to increase your rate limit from 60 to 1,000 requests per hour. Start by exploring /locations to find monitoring stations near you, then use the location ID in /measurements to fetch actual pollutant readings.
Available Data
The kind of data this API exposes, based on its documentation. We could not call the endpoint to confirm the exact field names.
Example Response
Illustrative shape only — we were not able to call this endpoint (it requires credentials or exposes no public sample URL), so the fields below show the kind of data this API returns rather than a recorded response.
{
"status": "success",
"data": {
"result": "Data from OpenAQ",
"description": "Open air quality data",
"timestamp": "2025-01-15T10:00:00Z"
}
} Field Reference
results Array of location or measurement objects matching the query results[].id Unique identifier for the monitoring location, used to query measurements at that station results[].name Name or identifier of the monitoring station results[].country Country information including ISO code and full name where the station is located results[].coordinates Latitude and longitude of the monitoring station meta.total Total number of records matching the query before pagination Implementation Example
Calls a real endpoint of this API. Replace any placeholder credentials with your own key.
const url = "https://api.openaq.org/v3/locations?country_id=US&limit=10";
// Replace headers or query params with the values required by this API.
const response = await fetch(url, {
headers: {
"X-API-Key": "YOUR_API_KEY"
}
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data); What Can You Build?
Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.
Common Errors & Troubleshooting
Generated guidance based on this API's documentation, not observed by us. Treat it as a starting point and check against the provider's own error reference.
Metadata Score Breakdown
Estimated from metadata — endpoint not independently tested
Metadata estimate · endpoint not independently tested
Technical Specifications
Related Tags
Similar APIs
View All →BreezoMeter Pollen
BreezoMeter Pollen API (now part of Google Maps Platform) provides daily pollen forecast data including pollen type, index values, and risk levels for a specific geographic location.
Carbon Interface
Carbon Interface API calculates estimated CO2 emissions for common activities such as electricity usage, flights, vehicle travel, and shipping.
Climatiq
Climatiq is an API for calculating carbon emissions and environmental footprint across a wide range of activities including travel, energy use, and shipping.
IQAir
⭐ Beginner's PickIQAir API provides real-time air quality index (AQI) data and weather conditions for cities and stations worldwide, powered by the IQAir sensor network.
GrünstromIndex
⭐ Beginner's PickGrünstromIndex (Green Power Index) provides real-time and forecast data about the proportion of renewable energy in the German electricity grid.