Historical Air Quality API
Hourly historical air quality observations and AQI data for global locations.
This Air Quality API returns hourly historical air quality conditions for any location in the world. It returns air quality data on the 6 major surface pollutants - PM 2.5, PM 10, CO, SO2, NO2, and O3. Additionally, this API returns an air quality index score. By default this API returns the past 72 hours, however, a start/end date may be passed to obtain a different range. Data is available going back to January 13th, 2022 at this time.. Requests for more than 5 days of data count as multiple historical requests against your daily quota ie. (30 days = 6 requests, 14 days = 3 requests).
- Major pollutant historical values.
- AQI context for history windows.
- Hourly time-step support.
Request Parameters
| Field | Optional/Required | Type | Data Type | Description |
|---|---|---|---|---|
lat
|
Required | query | number | Latitude component of location. |
lon
|
Required | query | number | Longitude component of location. |
city
|
Optional | query | string | City search.. Example - &city=Raleigh,NC or &city=Berlin,DE or city=Paris&country=FR |
postal_code
|
Optional | query | string | Postal Code. Example: 28546 |
country
|
Optional | query | string | Country Code (2 letter) - to be used with postal_code. |
start_date
|
Optional | query | string | Start Date (YYYY-MM-DD or YYYY-MM-DD:HH). |
end_date
|
Optional | query | string | End Date (YYYY-MM-DD or YYYY-MM-DD:HH). |
tz
|
Optional | query | string | Assume utc (default) or local time for start_date, end_date |
key
|
Required | query | string | Your registered API key. |
Example Requests
Enter API key
lat/lon (recommended)
https://api.weatherbit.io/v2.0/history/airquality?key=API_KEY&lat=35.7796&lon=-78.6382
curl -s "https://api.weatherbit.io/v2.0/history/airquality?key=API_KEY&lat=35.7796&lon=-78.6382"
require 'uri'
require 'net/http'
require 'json'
uri = URI("https://api.weatherbit.io/v2.0/history/airquality?key=API_KEY&lat=35.7796&lon=-78.6382")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == "https")
request = Net::HTTP::Get.new(uri)
response = http.request(request)
json = JSON.parse(response.body)
puts JSON.pretty_generate(json)
const https = require("https");
https.get("https://api.weatherbit.io/v2.0/history/airquality?key=API_KEY&lat=35.7796&lon=-78.6382", (res) => {
let raw = "";
res.on("data", (chunk) => { raw += chunk; });
res.on("end", () => {
const json = JSON.parse(raw);
console.log(JSON.stringify(json, null, 2));
});
}).on("error", (err) => {
console.error(err.message);
});
# pip install python-weatherbit
# https://pypi.org/project/pyweatherbit/
from weatherbit.api import Api
api = Api("YOUR_API_KEY")
response = api.get_history(lat='35.7796', lon='-78.6382', start_date='2026-06-08', end_date='2026-06-13', source='airquality', tp='hourly').get()
print(response)
Estimated quota: 1 requeststandard
Example Response HTTP 200
{
"city_name": "Blissville",
"country_code": "US",
"data": [
{
"aqi": 31,
"co": 125.6,
"datetime": "2026-06-02:17",
"no2": 14.3,
"o3": 63,
"pm10": 8.2,
"pm25": 7.53,
"so2": 5.3,
"timestamp_local": "2026-06-02T13:00:00",
"timestamp_utc": "2026-06-02T17:00:00",
"ts": 1780419600
},
{
"aqi": 15,
"co": 178.8,
"datetime": "2026-06-02:16",
"no2": 7.7,
"o3": 32.1,
"pm10": 4,
"pm25": 3,
"so2": 6.7,
"timestamp_local": "2026-06-02T12:00:00",
"timestamp_utc": "2026-06-02T16:00:00",
"ts": 1780416000
},
{
"aqi": 19,
"co": 232,
"datetime": "2026-06-02:15",
"no2": 1,
"o3": 1.1,
"pm10": 4.6,
"pm25": 4.6,
"so2": 8,
"timestamp_local": "2026-06-02T11:00:00",
"timestamp_utc": "2026-06-02T15:00:00",
"ts": 1780412400
},
{
"aqi": 12,
"co": 275.7,
"datetime": "2026-06-02:14",
"no2": 47.7,
"o3": 6.2,
"pm10": 3.7,
"pm25": 3,
"so2": 8.7,
"timestamp_local": "2026-06-02T10:00:00",
"timestamp_utc": "2026-06-02T14:00:00",
"ts": 1780408800
},
{
"aqi": 30,
"co": 232,
"datetime": "2026-06-02:13",
"no2": 1,
"o3": 1.1,
"pm10": 7.3,
"pm25": 7.25,
"so2": 8,
"timestamp_local": "2026-06-02T09:00:00",
"timestamp_utc": "2026-06-02T13:00:00",
"ts": 1780405200
},
{
"aqi": 31,
"co": 363,
"datetime": "2026-06-02:12",
"no2": 141,
"o3": 16.4,
"pm10": 8.4,
"pm25": 7.5,
"so2": 10,
"timestamp_local": "2026-06-02T08:00:00",
"timestamp_utc": "2026-06-02T12:00:00",
"ts": 1780401600
},
{
"aqi": 25,
"co": 373,
"datetime": "2026-06-02:11",
"no2": 56,
"o3": 6.9,
"pm10": 6,
"pm25": 6,
"so2": 9.7,
"timestamp_local": "2026-06-02T07:00:00",
"timestamp_utc": "2026-06-02T11:00:00",
"ts": 1780398000
},
{
"aqi": 34,
"co": 786,
"datetime": "2026-06-02:10",
"no2": 264,
"o3": 1.1,
"pm10": 9.3,
"pm25": 8.25,
"so2": 8,
"timestamp_local": "2026-06-02T06:00:00",
"timestamp_utc": "2026-06-02T10:00:00",
"ts": 1780394400
},
{
"aqi": 23,
"co": 74.7,
"datetime": "2026-06-02:09",
"no2": 46,
"o3": 23,
"pm10": 6.8,
"pm25": 5.6,
"so2": 9,
"timestamp_local": "2026-06-02T05:00:00",
"timestamp_utc": "2026-06-02T09:00:00",
"ts": 1780390800
},
{
"aqi": 26,
"co": 72,
"datetime": "2026-06-02:08",
"no2": 43.7,
"o3": 27,
"pm10": 7.7,
"pm25": 6.33,
"so2": 8.3,
"timestamp_local": "2026-06-02T04:00:00",
"timestamp_utc": "2026-06-02T08:00:00",
"ts": 1780387200
},
{
"aqi": 22,
"co": 69.3,
"datetime": "2026-06-02:07",
"no2": 41.3,
"o3": 31,
"pm10": 6,
"pm25": 5.2,
"so2": 7.7,
"timestamp_local": "2026-06-02T03:00:00",
"timestamp_utc": "2026-06-02T07:00:00",
"ts": 1780383600
},
{
"aqi": 19,
"co": 66.5,
"datetime": "2026-06-02:06",
"no2": 39,
"o3": 35,
"pm10": 5.6,
"pm25": 4.6,
"so2": 7,
"timestamp_local": "2026-06-02T02:00:00",
"timestamp_utc": "2026-06-02T06:00:00",
"ts": 1780380000
},
{
"aqi": 21,
"co": 61.7,
"datetime": "2026-06-02:05",
"no2": 31.7,
"o3": 44.3,
"pm10": 4.8,
"pm25": 3.8,
"so2": 6.3,
"timestamp_local": "2026-06-02T01:00:00",
"timestamp_utc": "2026-06-02T05:00:00",
"ts": 1780376400
},
{
"aqi": 25,
"co": 56.8,
"datetime": "2026-06-02:04",
"no2": 24.3,
"o3": 53.7,
"pm10": 4.5,
"pm25": 3,
"so2": 5.7,
"timestamp_local": "2026-06-02T00:00:00",
"timestamp_utc": "2026-06-02T04:00:00",
"ts": 1780372800
},
{
"aqi": 29,
"co": 51.9,
"datetime": "2026-06-02:03",
"no2": 17,
"o3": 63,
"pm10": 4.8,
"pm25": 3.8,
"so2": 5,
"timestamp_local": "2026-06-01T23:00:00",
"timestamp_utc": "2026-06-02T03:00:00",
"ts": 1780369200
},
{
"aqi": 32,
"co": 51.2,
"datetime": "2026-06-02:02",
"no2": 14.7,
"o3": 68.3,
"pm10": 7,
"pm25": 5.67,
"so2": 4.7,
"timestamp_local": "2026-06-01T22:00:00",
"timestamp_utc": "2026-06-02T02:00:00",
"ts": 1780365600
},
{
"aqi": 34,
"co": 50.4,
"datetime": "2026-06-02:01",
"no2": 12.3,
"o3": 73.7,
"pm10": 6.2,
"pm25": 5,
"so2": 4.3,
"timestamp_local": "2026-06-01T21:00:00",
"timestamp_utc": "2026-06-02T01:00:00",
"ts": 1780362000
},
{
"aqi": 37,
"co": 49.6,
"datetime": "2026-06-02:00",
"no2": 10,
"o3": 79,
"pm10": 6,
"pm25": 5.5,
"so2": 4,
"timestamp_local": "2026-06-01T20:00:00",
"timestamp_utc": "2026-06-02T00:00:00",
"ts": 1780358400
},
{
"aqi": 39,
"co": 49.2,
"datetime": "2026-06-01:23",
"no2": 8,
"o3": 84.7,
"pm10": 5.4,
"pm25": 4.4,
"so2": 3.7,
"timestamp_local": "2026-06-01T19:00:00",
"timestamp_utc": "2026-06-01T23:00:00",
"ts": 1780354800
},
{
"aqi": 42,
"co": 48.8,
"datetime": "2026-06-01:22",
"no2": 6,
"o3": 90.3,
"pm10": 6,
"pm25": 4.5,
"so2": 3.3,
"timestamp_local": "2026-06-01T18:00:00",
"timestamp_utc": "2026-06-01T22:00:00",
"ts": 1780351200
},
{
"aqi": 44,
"co": 48.4,
"datetime": "2026-06-01:21",
"no2": 4,
"o3": 96,
"pm10": 3.8,
"pm25": 3.2,
"so2": 3,
"timestamp_local": "2026-06-01T17:00:00",
"timestamp_utc": "2026-06-01T21:00:00",
"ts": 1780347600
},
{
"aqi": 30,
"co": 109.6,
"datetime": "2026-06-01:20",
"no2": 3,
"o3": 64.4,
"pm10": 4.3,
"pm25": 3.67,
"so2": 4.7,
"timestamp_local": "2026-06-01T16:00:00",
"timestamp_utc": "2026-06-01T20:00:00",
"ts": 1780344000
},
{
"aqi": 22,
"co": 343,
"datetime": "2026-06-01:19",
"no2": 136,
"o3": 1.1,
"pm10": 5.2,
"pm25": 5.2,
"so2": 8,
"timestamp_local": "2026-06-01T15:00:00",
"timestamp_utc": "2026-06-01T19:00:00",
"ts": 1780340400
},
{
"aqi": 17,
"co": 232,
"datetime": "2026-06-01:18",
"no2": 1,
"o3": 1.1,
"pm10": 4,
"pm25": 4,
"so2": 8,
"timestamp_local": "2026-06-01T14:00:00",
"timestamp_utc": "2026-06-01T18:00:00",
"ts": 1780336800
},
{
"aqi": 16,
"co": 171.6,
"datetime": "2026-06-01:17",
"no2": 2.3,
"o3": 29.7,
"pm10": 4.8,
"pm25": 3.75,
"so2": 6.3,
"timestamp_local": "2026-06-01T13:00:00",
"timestamp_utc": "2026-06-01T17:00:00",
"ts": 1780333200
},
{
"aqi": 27,
"co": 111.2,
"datetime": "2026-06-01:16",
"no2": 3.7,
"o3": 58.4,
"pm10": 3.7,
"pm25": 3.33,
"so2": 4.7,
"timestamp_local": "2026-06-01T12:00:00",
"timestamp_utc": "2026-06-01T16:00:00",
"ts": 1780329600
},
{
"aqi": 40,
"co": 50.8,
"datetime": "2026-06-01:15",
"no2": 5,
"o3": 87,
"pm10": 3.6,
"pm25": 2.8,
"so2": 3,
"timestamp_local": "2026-06-01T11:00:00",
"timestamp_utc": "2026-06-01T15:00:00",
"ts": 1780326000
},
{
"aqi": 29,
"co": 121.2,
"datetime": "2026-06-01:14",
"no2": 53.7,
"o3": 61.8,
"pm10": 5,
"pm25": 4,
"so2": 4.7,
"timestamp_local": "2026-06-01T10:00:00",
"timestamp_utc": "2026-06-01T14:00:00",
"ts": 1780322400
},
{
"aqi": 19,
"co": 191.6,
"datetime": "2026-06-01:13",
"no2": 102.3,
"o3": 36.6,
"pm10": 5.7,
"pm25": 4.57,
"so2": 6.3,
"timestamp_local": "2026-06-01T09:00:00",
"timestamp_utc": "2026-06-01T13:00:00",
"ts": 1780318800
},
{
"aqi": 23,
"co": 262,
"datetime": "2026-06-01:12",
"no2": 151,
"o3": 11.4,
"pm10": 6.4,
"pm25": 5.57,
"so2": 8,
"timestamp_local": "2026-06-01T08:00:00",
"timestamp_utc": "2026-06-01T12:00:00",
"ts": 1780315200
},
{
"aqi": 24,
"co": 262,
"datetime": "2026-06-01:11",
"no2": 151,
"o3": 11.4,
"pm10": 6.4,
"pm25": 5.71,
"so2": 8,
"timestamp_local": "2026-06-01T07:00:00",
"timestamp_utc": "2026-06-01T11:00:00",
"ts": 1780311600
},
{
"aqi": 16,
"co": 148.8,
"datetime": "2026-06-01:10",
"no2": 84.3,
"o3": 12.5,
"pm10": 4.8,
"pm25": 3.8,
"so2": 7.3,
"timestamp_local": "2026-06-01T06:00:00",
"timestamp_utc": "2026-06-01T10:00:00",
"ts": 1780308000
},
{
"aqi": 17,
"co": 92.2,
"datetime": "2026-06-01:09",
"no2": 51,
"o3": 13,
"pm10": 5,
"pm25": 4,
"so2": 7,
"timestamp_local": "2026-06-01T05:00:00",
"timestamp_utc": "2026-06-01T09:00:00",
"ts": 1780304400
},
{
"aqi": 14,
"co": 232,
"datetime": "2026-06-01:08",
"no2": 58,
"o3": 1.1,
"pm10": 3.3,
"pm25": 3.33,
"so2": 8,
"timestamp_local": "2026-06-01T04:00:00",
"timestamp_utc": "2026-06-01T08:00:00",
"ts": 1780300800
},
{
"aqi": 25,
"co": 554.7,
"datetime": "2026-06-01:07",
"no2": 193,
"o3": 5.1,
"pm10": 5,
"pm25": 4,
"so2": 7.7,
"timestamp_local": "2026-06-01T03:00:00",
"timestamp_utc": "2026-06-01T07:00:00",
"ts": 1780297200
},
{
"aqi": 34,
"co": 786,
"datetime": "2026-06-01:06",
"no2": 264,
"o3": 1.1,
"pm10": 8,
"pm25": 6.75,
"so2": 8,
"timestamp_local": "2026-06-01T02:00:00",
"timestamp_utc": "2026-06-01T06:00:00",
"ts": 1780293600
},
{
"aqi": 25,
"co": 252,
"datetime": "2026-06-01:05",
"no2": 92,
"o3": 19.5,
"pm10": 6.8,
"pm25": 6,
"so2": 7.3,
"timestamp_local": "2026-06-01T01:00:00",
"timestamp_utc": "2026-06-01T05:00:00",
"ts": 1780290000
},
{
"aqi": 24,
"co": 343,
"datetime": "2026-06-01:04",
"no2": 117,
"o3": 25.2,
"pm10": 6,
"pm25": 5.83,
"so2": 6.7,
"timestamp_local": "2026-06-01T00:00:00",
"timestamp_utc": "2026-06-01T04:00:00",
"ts": 1780286400
},
{
"aqi": 24,
"co": 222,
"datetime": "2026-06-01:03",
"no2": 59,
"o3": 19.5,
"pm10": 6,
"pm25": 5.67,
"so2": 6,
"timestamp_local": "2026-05-31T23:00:00",
"timestamp_utc": "2026-06-01T03:00:00",
"ts": 1780282800
},
{
"aqi": 28,
"co": 343,
"datetime": "2026-06-01:02",
"no2": 59,
"o3": 28.5,
"pm10": 6.7,
"pm25": 6.67,
"so2": 5,
"timestamp_local": "2026-05-31T22:00:00",
"timestamp_utc": "2026-06-01T02:00:00",
"ts": 1780279200
},
{
"aqi": 25,
"co": 113.3,
"datetime": "2026-06-01:01",
"no2": 34.3,
"o3": 53.8,
"pm10": 7.2,
"pm25": 6,
"so2": 4,
"timestamp_local": "2026-05-31T21:00:00",
"timestamp_utc": "2026-06-01T01:00:00",
"ts": 1780275600
},
{
"aqi": 33,
"co": 58.9,
"datetime": "2026-06-01:00",
"no2": 22,
"o3": 71,
"pm10": 6.2,
"pm25": 5.2,
"so2": 3,
"timestamp_local": "2026-05-31T20:00:00",
"timestamp_utc": "2026-06-01T00:00:00",
"ts": 1780272000
},
{
"aqi": 36,
"co": 54.9,
"datetime": "2026-05-31:23",
"no2": 17,
"o3": 78.3,
"pm10": 4.5,
"pm25": 3.75,
"so2": 2.7,
"timestamp_local": "2026-05-31T19:00:00",
"timestamp_utc": "2026-05-31T23:00:00",
"ts": 1780268400
},
{
"aqi": 40,
"co": 50.8,
"datetime": "2026-05-31:22",
"no2": 12,
"o3": 85.7,
"pm10": 5.5,
"pm25": 4.5,
"so2": 2.3,
"timestamp_local": "2026-05-31T18:00:00",
"timestamp_utc": "2026-05-31T22:00:00",
"ts": 1780264800
},
{
"aqi": 43,
"co": 46.7,
"datetime": "2026-05-31:21",
"no2": 7,
"o3": 93,
"pm10": 6.5,
"pm25": 5.5,
"so2": 2,
"timestamp_local": "2026-05-31T17:00:00",
"timestamp_utc": "2026-05-31T21:00:00",
"ts": 1780261200
},
{
"aqi": 43,
"co": 47.7,
"datetime": "2026-05-31:20",
"no2": 7.7,
"o3": 92.3,
"pm10": 5,
"pm25": 4,
"so2": 2.7,
"timestamp_local": "2026-05-31T16:00:00",
"timestamp_utc": "2026-05-31T20:00:00",
"ts": 1780257600
},
{
"aqi": 42,
"co": 48.6,
"datetime": "2026-05-31:19",
"no2": 8.3,
"o3": 91.7,
"pm10": 4,
"pm25": 3.5,
"so2": 3.3,
"timestamp_local": "2026-05-31T15:00:00",
"timestamp_utc": "2026-05-31T19:00:00",
"ts": 1780254000
},
{
"aqi": 42,
"co": 49.6,
"datetime": "2026-05-31:18",
"no2": 9,
"o3": 91,
"pm10": 5,
"pm25": 4.33,
"so2": 4,
"timestamp_local": "2026-05-31T14:00:00",
"timestamp_utc": "2026-05-31T18:00:00",
"ts": 1780250400
},
{
"aqi": 34,
"co": 786,
"datetime": "2026-05-31:17",
"no2": 264,
"o3": 1.1,
"pm10": 3.4,
"pm25": 3.4,
"so2": 8,
"timestamp_local": "2026-05-31T13:00:00",
"timestamp_utc": "2026-05-31T17:00:00",
"ts": 1780246800
},
{
"aqi": 34,
"co": 786,
"datetime": "2026-05-31:16",
"no2": 264,
"o3": 1.1,
"pm10": 4,
"pm25": 4,
"so2": 8,
"timestamp_local": "2026-05-31T12:00:00",
"timestamp_utc": "2026-05-31T16:00:00",
"ts": 1780243200
},
{
"aqi": 20,
"co": 121,
"datetime": "2026-05-31:15",
"no2": 1,
"o3": 1.1,
"pm10": 4.8,
"pm25": 4.8,
"so2": 8,
"timestamp_local": "2026-05-31T11:00:00",
"timestamp_utc": "2026-05-31T15:00:00",
"ts": 1780239600
},
{
"aqi": 34,
"co": 786,
"datetime": "2026-05-31:14",
"no2": 264,
"o3": 1.1,
"pm10": 5,
"pm25": 4.5,
"so2": 8,
"timestamp_local": "2026-05-31T10:00:00",
"timestamp_utc": "2026-05-31T14:00:00",
"ts": 1780236000
},
{
"aqi": 33,
"co": 232,
"datetime": "2026-05-31:13",
"no2": 29,
"o3": 1.1,
"pm10": 10,
"pm25": 8,
"so2": 8,
"timestamp_local": "2026-05-31T09:00:00",
"timestamp_utc": "2026-05-31T13:00:00",
"ts": 1780232400
},
{
"aqi": 28,
"co": 54.9,
"datetime": "2026-05-31:12",
"no2": 16,
"o3": 61,
"pm10": 4.4,
"pm25": 3.4,
"so2": 5,
"timestamp_local": "2026-05-31T08:00:00",
"timestamp_utc": "2026-05-31T12:00:00",
"ts": 1780228800
},
{
"aqi": 22,
"co": 57.2,
"datetime": "2026-05-31:11",
"no2": 23.7,
"o3": 48.3,
"pm10": 4.5,
"pm25": 3.5,
"so2": 6,
"timestamp_local": "2026-05-31T07:00:00",
"timestamp_utc": "2026-05-31T11:00:00",
"ts": 1780225200
},
{
"aqi": 16,
"co": 59.5,
"datetime": "2026-05-31:10",
"no2": 31.3,
"o3": 35.7,
"pm10": 4.8,
"pm25": 3.6,
"so2": 7,
"timestamp_local": "2026-05-31T06:00:00",
"timestamp_utc": "2026-05-31T10:00:00",
"ts": 1780221600
},
{
"aqi": 17,
"co": 61.9,
"datetime": "2026-05-31:09",
"no2": 39,
"o3": 23,
"pm10": 5.2,
"pm25": 4,
"so2": 8,
"timestamp_local": "2026-05-31T05:00:00",
"timestamp_utc": "2026-05-31T09:00:00",
"ts": 1780218000
},
{
"aqi": 17,
"co": 62.6,
"datetime": "2026-05-31:08",
"no2": 39.3,
"o3": 23.7,
"pm10": 4.5,
"pm25": 4,
"so2": 7.7,
"timestamp_local": "2026-05-31T04:00:00",
"timestamp_utc": "2026-05-31T08:00:00",
"ts": 1780214400
},
{
"aqi": 15,
"co": 63.4,
"datetime": "2026-05-31:07",
"no2": 39.7,
"o3": 24.3,
"pm10": 4.7,
"pm25": 3.67,
"so2": 7.3,
"timestamp_local": "2026-05-31T03:00:00",
"timestamp_utc": "2026-05-31T07:00:00",
"ts": 1780210800
},
{
"aqi": 17,
"co": 64.2,
"datetime": "2026-05-31:06",
"no2": 40,
"o3": 25,
"pm10": 5,
"pm25": 4,
"so2": 7,
"timestamp_local": "2026-05-31T02:00:00",
"timestamp_utc": "2026-05-31T06:00:00",
"ts": 1780207200
},
{
"aqi": 21,
"co": 161,
"datetime": "2026-05-31:05",
"no2": 40,
"o3": 19.5,
"pm10": 5.6,
"pm25": 5,
"so2": 6,
"timestamp_local": "2026-05-31T01:00:00",
"timestamp_utc": "2026-05-31T05:00:00",
"ts": 1780203600
},
{
"aqi": 19,
"co": 343,
"datetime": "2026-05-31:04",
"no2": 136,
"o3": 1.1,
"pm10": 5,
"pm25": 4.5,
"so2": 8,
"timestamp_local": "2026-05-31T00:00:00",
"timestamp_utc": "2026-05-31T04:00:00",
"ts": 1780200000
},
{
"aqi": 19,
"co": 51.9,
"datetime": "2026-05-31:03",
"no2": 25,
"o3": 42,
"pm10": 4.6,
"pm25": 3.8,
"so2": 4,
"timestamp_local": "2026-05-30T23:00:00",
"timestamp_utc": "2026-05-31T03:00:00",
"ts": 1780196400
},
{
"aqi": 25,
"co": 50,
"datetime": "2026-05-31:02",
"no2": 18.7,
"o3": 53,
"pm10": 3,
"pm25": 2.5,
"so2": 3.3,
"timestamp_local": "2026-05-30T22:00:00",
"timestamp_utc": "2026-05-31T02:00:00",
"ts": 1780192800
},
{
"aqi": 30,
"co": 48,
"datetime": "2026-05-31:01",
"no2": 12.3,
"o3": 64,
"pm10": 2,
"pm25": 2,
"so2": 2.7,
"timestamp_local": "2026-05-30T21:00:00",
"timestamp_utc": "2026-05-31T01:00:00",
"ts": 1780189200
},
{
"aqi": 35,
"co": 46.1,
"datetime": "2026-05-31:00",
"no2": 6,
"o3": 75,
"pm10": 4.3,
"pm25": 3,
"so2": 2,
"timestamp_local": "2026-05-30T20:00:00",
"timestamp_utc": "2026-05-31T00:00:00",
"ts": 1780185600
},
{
"aqi": 36,
"co": 45.1,
"datetime": "2026-05-30:23",
"no2": 5,
"o3": 77.3,
"pm10": 3.2,
"pm25": 2.4,
"so2": 2,
"timestamp_local": "2026-05-30T19:00:00",
"timestamp_utc": "2026-05-30T23:00:00",
"ts": 1780182000
},
{
"aqi": 37,
"co": 44.2,
"datetime": "2026-05-30:22",
"no2": 4,
"o3": 79.7,
"pm10": 2.5,
"pm25": 2.25,
"so2": 2,
"timestamp_local": "2026-05-30T18:00:00",
"timestamp_utc": "2026-05-30T22:00:00",
"ts": 1780178400
},
{
"aqi": 38,
"co": 43.2,
"datetime": "2026-05-30:21",
"no2": 3,
"o3": 82,
"pm10": 1,
"pm25": 1,
"so2": 2,
"timestamp_local": "2026-05-30T17:00:00",
"timestamp_utc": "2026-05-30T21:00:00",
"ts": 1780174800
},
{
"aqi": 37,
"co": 43,
"datetime": "2026-05-30:20",
"no2": 2.7,
"o3": 81,
"pm10": 1.5,
"pm25": 1.5,
"so2": 2,
"timestamp_local": "2026-05-30T16:00:00",
"timestamp_utc": "2026-05-30T20:00:00",
"ts": 1780171200
},
{
"aqi": 37,
"co": 42.8,
"datetime": "2026-05-30:19",
"no2": 2.3,
"o3": 80,
"pm10": 1,
"pm25": 1,
"so2": 2,
"timestamp_local": "2026-05-30T15:00:00",
"timestamp_utc": "2026-05-30T19:00:00",
"ts": 1780167600
},
{
"aqi": 37,
"co": 42.6,
"datetime": "2026-05-30:18",
"no2": 2,
"o3": 79,
"pm10": 1.5,
"pm25": 1.5,
"so2": 2,
"timestamp_local": "2026-05-30T14:00:00",
"timestamp_utc": "2026-05-30T18:00:00",
"ts": 1780164000
}
],
"lat": 40.7306,
"lon": -73.9352,
"state_code": "NY",
"timezone": "America/New_York"
}
HTTP Statuses
| Code | Description | Example |
|---|---|---|
| 200 | Historical air quality conditions | - |
| 204 | No Data Found | - |
| 400 | Client Error |
|
| 403 | Unauthorized/No Access for current plan level |
|
| 429 | Daily or Velocity limit exceeded See rate limit guidance. |
|
| 500 | Internal Server Error |
|
Return Fields
| Field | Data Type | Description |
|---|---|---|
city_name
|
string | Nearest city name |
state_code
|
string | State Abbreviation |
country_code
|
string | Country Abbreviation |
lat
|
number | Latitude |
lon
|
number | Longitude |
timezone
|
string | Local IANA time zone |
data
|
array<AQHour> | |
data[].ts
|
number | Unix Timestamp |
data[].timestamp_local
|
string | Timestamp in local time |
data[].timestamp_utc
|
string | Timestamp UTC |
data[].datetime
|
string | [DEPRECATED] Deprecated - use 'timestamp_utc' |
data[].aqi
|
integer | Cloud cover as a percentage (%) |
data[].co
|
number | Concentration of CO (µg/m³) |
data[].so2
|
number | Concentration of SO2 (µg/m³) |
data[].no2
|
number | Concentration of NO2 (µg/m³) |
data[].o3
|
number | Concentration of O3 (µg/m³) |
data[].pm25
|
number | Concentration of PM 2.5 (µg/m³) |
data[].pm10
|
number | Concentration of PM 10 (µg/m³) |