OpenAQ API v3
OpenAQ API v3
OpenAQ API v3 is OpenAQ's REST API for global air-quality data, reached at api.openaq.org with endpoints such as /v3/locations. Access needs a free API key (sign up at explore.openaq.org/register) sent in the X-API-Key header; OpenAQ's earlier v1 and v2 APIs were retired on 2025-01-31 (now HTTP 410). OpenAQ's terms say attribution to OpenAQ as the source data is also required, and that because the underlying measurements come from many different data providers under their own licences, users must review and comply with each provider's own terms.
Required Attribution:
Attribution to OpenAQ as the source is required when using OpenAQ services for accessing the data; per-source data-provider attribution/licence terms may also apply. Do not use the official hosted API to build products or services that substantially duplicate or directly compete with OpenAQ's core offerings (restriction applies to the hosted API, not self-hosted or modified open-source instances).
Coverage
Not stated as a country, station or sensor count on the checked pages; v3 is the only live API version after the 2025-01-31 retirement of v1/v2. Querying api.openaq.org/v3/locations without a key returned HTTP 401 on 2026-11-05 (expected; v3 requires a key), while the documentation pages returned HTTP 200.
Verdict
This is a free global air-quality API for agents that need station-level measurements, but only through v3: OpenAQ retired its older v1 and v2 APIs on 2025-01-31, so integrations need the free API key (sign up at explore.openaq.org/register, sent as the X-API-Key header; one key per individual). OpenAQ's terms require attribution to OpenAQ as the source, but the underlying measurements come from many different data providers under their own licences (for example Creative Commons or open-government terms), so users must review and comply with each upstream source's licence rather than treat the dataset as uniformly free; OpenAQ's terms add that it gives no assurance the data is free of third-party claims. OpenAQ's terms also prohibit utilizing the official hosted API "to develop products or services that substantially duplicate or directly compete with OpenAQ’s core offerings"; that restriction "applies specifically to the use of our hosted API service, not to self-hosted instances or modified versions of the open-source code." The free "General use" key is rate-limited to 60 requests a minute and 2,000 an hour, with a custom paid tier for higher-volume use.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Query OpenAQ v3 locations with a free API key. Checked against the provider's documentation on Nov 6, 2026.
Access
- Needs a free API key (sign up at explore.openaq.org/register), read from the OPENAQ_API_KEY environment variable and sent in the X-API-Key header; never hardcode it.
- v1 and v2 were retired 2025-01-31 (now HTTP 410); only v3 at api.openaq.org is live.
Request
curl -H "X-API-Key: $OPENAQ_API_KEY" 'https://api.openaq.org/v3/locations?limit=100'Format
JSON response from v3 endpoints (for example /v3/locations); exact result-object schema was not confirmed here since the endpoint was probed without a key.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""OpenAQ API v3 locations -> pandas -> Parquet. Needs a free API key in OPENAQ_API_KEY; v1/v2 are retired."""
import os
import requests
import pandas as pd
API_KEY = os.environ["OPENAQ_API_KEY"]
URL = "https://api.openaq.org/v3/locations"
params = {"limit": 100}
r = requests.get(URL, params=params, headers={"X-API-Key": API_KEY}, timeout=60)
r.raise_for_status()
results = r.json().get("results", [])
df = pd.json_normalize(results, sep=".")
df.to_parquet("openaq_locations.parquet", index=False)
print(len(df), "OpenAQ locations")Needs a personal API key (OPENAQ_API_KEY); not run here.
Limits
- Free "General use" key: 60 requests/minute, 2,000/hour (from OpenAQ rate-limits plan table); a custom paid tier covers higher use.
- One API key per individual (terms).
Quirks
- v1 and v2 are retired (HTTP 410 since 2025-01-31); only v3 is live and it always requires a key.
- Key goes in the X-API-Key header, read from OPENAQ_API_KEY; never embed a key in code or commit it.
Terms and attribution
- "Attribution to OpenAQ as the source data is also required when using OpenAQ services for accessing the data."
- Users "must therefore review and comply with any terms published by data providers" since per-source licences vary (CC, open-government, bespoke).
- "we provide no assurance that the data provided may be used free of any third-party claims."
- "However, utilizing our official, hosted API implementation to develop products or services that substantially duplicate or directly compete with OpenAQ’s core offerings is prohibited." "This restriction applies specifically to the use of our hosted API service, not to self-hosted instances or modified versions of the open-source code."
- "An individual is permitted to register for only one API key."
Sources
- https://docs.openaq.org/about/terms: “Attribution to OpenAQ as the source data is also required when using OpenAQ services for accessing the data.”
- https://docs.openaq.org/about/terms: “However, utilizing our official, hosted API implementation to develop products or services that substantially duplicate or directly compete with OpenAQ’s core offerings is prohibited.”
- https://docs.openaq.org/about/terms: “This restriction applies specifically to the use of our hosted API service, not to self-hosted instances or modified versions of the open-source code.”
- https://docs.openaq.org/using-the-api/api-key: “Sign up at explore.openaq.org/register to get your API key.”
- https://docs.openaq.org/using-the-api/api-key: “Include your API key in the X-API-Key header of each request.”
- https://docs.openaq.org/about/terms: “An individual is permitted to register for only one API key.”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer