Air Quality Forecast API
Returns hourly air quality forecasts over a 72-hour window for global locations.
Includes concentration forecasts for major pollutant categories.
- 72-hour hourly air quality forecast.
- Six major pollutant forecast streams.
- Operational support for health and environment apps.
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. |
key
|
Required | query | string | Your registered API key. |
hours
|
Optional | query | integer | Number of hours to return. |
Example Requests
Enter API key
lat/lon (recommended)
https://api.weatherbit.io/v2.0/forecast/airquality?key=API_KEY&lat=35.7796&lon=-78.6382
curl -s "https://api.weatherbit.io/v2.0/forecast/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/forecast/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/forecast/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_forecast(lat='35.7796', lon='-78.6382', source='airquality', tp='hourly').get()
print(response)
Estimated quota: 1 requeststandard
Example Response HTTP 200
{
"city_name": "Blissville",
"country_code": "US",
"data": [
{
"aqi": 33,
"co": 72,
"datetime": "2026-06-02:18",
"no2": 6,
"o3": 72,
"pm10": 7,
"pm25": 3,
"so2": 1,
"timestamp_local": "2026-06-02T14:00:00",
"timestamp_utc": "2026-06-02T18:00:00",
"ts": 1780423200
},
{
"aqi": 33,
"co": 71,
"datetime": "2026-06-02:19",
"no2": 6,
"o3": 72,
"pm10": 7,
"pm25": 3,
"so2": 1,
"timestamp_local": "2026-06-02T15:00:00",
"timestamp_utc": "2026-06-02T19:00:00",
"ts": 1780426800
},
{
"aqi": 33,
"co": 69,
"datetime": "2026-06-02:20",
"no2": 6,
"o3": 72,
"pm10": 7,
"pm25": 3,
"so2": 1,
"timestamp_local": "2026-06-02T16:00:00",
"timestamp_utc": "2026-06-02T20:00:00",
"ts": 1780430400
},
{
"aqi": 32,
"co": 67,
"datetime": "2026-06-02:21",
"no2": 7,
"o3": 70,
"pm10": 8,
"pm25": 4,
"so2": 1,
"timestamp_local": "2026-06-02T17:00:00",
"timestamp_utc": "2026-06-02T21:00:00",
"ts": 1780434000
},
{
"aqi": 29,
"co": 68,
"datetime": "2026-06-02:22",
"no2": 10,
"o3": 63,
"pm10": 10,
"pm25": 5,
"so2": 1,
"timestamp_local": "2026-06-02T18:00:00",
"timestamp_utc": "2026-06-02T22:00:00",
"ts": 1780437600
},
{
"aqi": 25,
"co": 68,
"datetime": "2026-06-02:23",
"no2": 15,
"o3": 52,
"pm10": 14,
"pm25": 6,
"so2": 1,
"timestamp_local": "2026-06-02T19:00:00",
"timestamp_utc": "2026-06-02T23:00:00",
"ts": 1780441200
},
{
"aqi": 46,
"co": 68,
"datetime": "2026-06-03:00",
"no2": 31,
"o3": 28,
"pm10": 27,
"pm25": 11,
"so2": 2,
"timestamp_local": "2026-06-02T20:00:00",
"timestamp_utc": "2026-06-03T00:00:00",
"ts": 1780444800
},
{
"aqi": 63,
"co": 68,
"datetime": "2026-06-03:01",
"no2": 42,
"o3": 10,
"pm10": 45,
"pm25": 18,
"so2": 2,
"timestamp_local": "2026-06-02T21:00:00",
"timestamp_utc": "2026-06-03T01:00:00",
"ts": 1780448400
},
{
"aqi": 74,
"co": 67,
"datetime": "2026-06-03:02",
"no2": 48,
"o3": 3,
"pm10": 57,
"pm25": 23,
"so2": 3,
"timestamp_local": "2026-06-02T22:00:00",
"timestamp_utc": "2026-06-03T02:00:00",
"ts": 1780452000
},
{
"aqi": 80,
"co": 67,
"datetime": "2026-06-03:03",
"no2": 49,
"o3": 2,
"pm10": 63,
"pm25": 26,
"so2": 3,
"timestamp_local": "2026-06-02T23:00:00",
"timestamp_utc": "2026-06-03T03:00:00",
"ts": 1780455600
},
{
"aqi": 72,
"co": 65,
"datetime": "2026-06-03:04",
"no2": 41,
"o3": 5,
"pm10": 52,
"pm25": 22,
"so2": 3,
"timestamp_local": "2026-06-03T00:00:00",
"timestamp_utc": "2026-06-03T04:00:00",
"ts": 1780459200
},
{
"aqi": 46,
"co": 64,
"datetime": "2026-06-03:05",
"no2": 31,
"o3": 9,
"pm10": 25,
"pm25": 11,
"so2": 1,
"timestamp_local": "2026-06-03T01:00:00",
"timestamp_utc": "2026-06-03T05:00:00",
"ts": 1780462800
},
{
"aqi": 25,
"co": 62,
"datetime": "2026-06-03:06",
"no2": 20,
"o3": 19,
"pm10": 12,
"pm25": 6,
"so2": 1,
"timestamp_local": "2026-06-03T02:00:00",
"timestamp_utc": "2026-06-03T06:00:00",
"ts": 1780466400
},
{
"aqi": 29,
"co": 61,
"datetime": "2026-06-03:07",
"no2": 23,
"o3": 15,
"pm10": 14,
"pm25": 7,
"so2": 1,
"timestamp_local": "2026-06-03T03:00:00",
"timestamp_utc": "2026-06-03T07:00:00",
"ts": 1780470000
},
{
"aqi": 33,
"co": 60,
"datetime": "2026-06-03:08",
"no2": 27,
"o3": 8,
"pm10": 18,
"pm25": 8,
"so2": 1,
"timestamp_local": "2026-06-03T04:00:00",
"timestamp_utc": "2026-06-03T08:00:00",
"ts": 1780473600
},
{
"aqi": 42,
"co": 60,
"datetime": "2026-06-03:09",
"no2": 31,
"o3": 8,
"pm10": 22,
"pm25": 10,
"so2": 1,
"timestamp_local": "2026-06-03T05:00:00",
"timestamp_utc": "2026-06-03T09:00:00",
"ts": 1780477200
},
{
"aqi": 52,
"co": 61,
"datetime": "2026-06-03:10",
"no2": 33,
"o3": 6,
"pm10": 30,
"pm25": 13,
"so2": 2,
"timestamp_local": "2026-06-03T06:00:00",
"timestamp_utc": "2026-06-03T10:00:00",
"ts": 1780480800
},
{
"aqi": 54,
"co": 63,
"datetime": "2026-06-03:11",
"no2": 30,
"o3": 14,
"pm10": 33,
"pm25": 14,
"so2": 2,
"timestamp_local": "2026-06-03T07:00:00",
"timestamp_utc": "2026-06-03T11:00:00",
"ts": 1780484400
},
{
"aqi": 42,
"co": 65,
"datetime": "2026-06-03:12",
"no2": 24,
"o3": 29,
"pm10": 24,
"pm25": 10,
"so2": 2,
"timestamp_local": "2026-06-03T08:00:00",
"timestamp_utc": "2026-06-03T12:00:00",
"ts": 1780488000
},
{
"aqi": 29,
"co": 65,
"datetime": "2026-06-03:13",
"no2": 17,
"o3": 47,
"pm10": 16,
"pm25": 7,
"so2": 1,
"timestamp_local": "2026-06-03T09:00:00",
"timestamp_utc": "2026-06-03T13:00:00",
"ts": 1780491600
},
{
"aqi": 30,
"co": 65,
"datetime": "2026-06-03:14",
"no2": 11,
"o3": 64,
"pm10": 11,
"pm25": 5,
"so2": 1,
"timestamp_local": "2026-06-03T10:00:00",
"timestamp_utc": "2026-06-03T14:00:00",
"ts": 1780495200
},
{
"aqi": 35,
"co": 64,
"datetime": "2026-06-03:15",
"no2": 8,
"o3": 76,
"pm10": 9,
"pm25": 4,
"so2": 1,
"timestamp_local": "2026-06-03T11:00:00",
"timestamp_utc": "2026-06-03T15:00:00",
"ts": 1780498800
},
{
"aqi": 38,
"co": 66,
"datetime": "2026-06-03:16",
"no2": 7,
"o3": 82,
"pm10": 8,
"pm25": 4,
"so2": 1,
"timestamp_local": "2026-06-03T12:00:00",
"timestamp_utc": "2026-06-03T16:00:00",
"ts": 1780502400
},
{
"aqi": 39,
"co": 67,
"datetime": "2026-06-03:17",
"no2": 6,
"o3": 84,
"pm10": 7,
"pm25": 3,
"so2": 1,
"timestamp_local": "2026-06-03T13:00:00",
"timestamp_utc": "2026-06-03T17:00:00",
"ts": 1780506000
},
{
"aqi": 40,
"co": 68,
"datetime": "2026-06-03:18",
"no2": 6,
"o3": 86,
"pm10": 7,
"pm25": 3,
"so2": 1,
"timestamp_local": "2026-06-03T14:00:00",
"timestamp_utc": "2026-06-03T18:00:00",
"ts": 1780509600
},
{
"aqi": 41,
"co": 63,
"datetime": "2026-06-03:19",
"no2": 6,
"o3": 89,
"pm10": 8,
"pm25": 4,
"so2": 1,
"timestamp_local": "2026-06-03T15:00:00",
"timestamp_utc": "2026-06-03T19:00:00",
"ts": 1780513200
},
{
"aqi": 43,
"co": 58,
"datetime": "2026-06-03:20",
"no2": 7,
"o3": 93,
"pm10": 8,
"pm25": 4,
"so2": 1,
"timestamp_local": "2026-06-03T16:00:00",
"timestamp_utc": "2026-06-03T20:00:00",
"ts": 1780516800
},
{
"aqi": 43,
"co": 53,
"datetime": "2026-06-03:21",
"no2": 7,
"o3": 92,
"pm10": 9,
"pm25": 4,
"so2": 1,
"timestamp_local": "2026-06-03T17:00:00",
"timestamp_utc": "2026-06-03T21:00:00",
"ts": 1780520400
},
{
"aqi": 41,
"co": 54,
"datetime": "2026-06-03:22",
"no2": 11,
"o3": 89,
"pm10": 12,
"pm25": 5,
"so2": 1,
"timestamp_local": "2026-06-03T18:00:00",
"timestamp_utc": "2026-06-03T22:00:00",
"ts": 1780524000
},
{
"aqi": 38,
"co": 54,
"datetime": "2026-06-03:23",
"no2": 18,
"o3": 82,
"pm10": 17,
"pm25": 7,
"so2": 1,
"timestamp_local": "2026-06-03T19:00:00",
"timestamp_utc": "2026-06-03T23:00:00",
"ts": 1780527600
},
{
"aqi": 42,
"co": 55,
"datetime": "2026-06-04:00",
"no2": 27,
"o3": 64,
"pm10": 23,
"pm25": 10,
"so2": 2,
"timestamp_local": "2026-06-03T20:00:00",
"timestamp_utc": "2026-06-04T00:00:00",
"ts": 1780531200
},
{
"aqi": 46,
"co": 55,
"datetime": "2026-06-04:01",
"no2": 32,
"o3": 46,
"pm10": 25,
"pm25": 11,
"so2": 2,
"timestamp_local": "2026-06-03T21:00:00",
"timestamp_utc": "2026-06-04T01:00:00",
"ts": 1780534800
},
{
"aqi": 42,
"co": 54,
"datetime": "2026-06-04:02",
"no2": 32,
"o3": 38,
"pm10": 24,
"pm25": 10,
"so2": 2,
"timestamp_local": "2026-06-03T22:00:00",
"timestamp_utc": "2026-06-04T02:00:00",
"ts": 1780538400
},
{
"aqi": 37,
"co": 54,
"datetime": "2026-06-04:03",
"no2": 32,
"o3": 33,
"pm10": 22,
"pm25": 9,
"so2": 2,
"timestamp_local": "2026-06-03T23:00:00",
"timestamp_utc": "2026-06-04T03:00:00",
"ts": 1780542000
},
{
"aqi": 42,
"co": 55,
"datetime": "2026-06-04:04",
"no2": 34,
"o3": 27,
"pm10": 22,
"pm25": 10,
"so2": 2,
"timestamp_local": "2026-06-04T00:00:00",
"timestamp_utc": "2026-06-04T04:00:00",
"ts": 1780545600
},
{
"aqi": 42,
"co": 55,
"datetime": "2026-06-04:05",
"no2": 37,
"o3": 20,
"pm10": 22,
"pm25": 10,
"so2": 2,
"timestamp_local": "2026-06-04T01:00:00",
"timestamp_utc": "2026-06-04T05:00:00",
"ts": 1780549200
},
{
"aqi": 46,
"co": 55,
"datetime": "2026-06-04:06",
"no2": 40,
"o3": 17,
"pm10": 23,
"pm25": 11,
"so2": 2,
"timestamp_local": "2026-06-04T02:00:00",
"timestamp_utc": "2026-06-04T06:00:00",
"ts": 1780552800
},
{
"aqi": 50,
"co": 56,
"datetime": "2026-06-04:07",
"no2": 43,
"o3": 10,
"pm10": 24,
"pm25": 12,
"so2": 2,
"timestamp_local": "2026-06-04T03:00:00",
"timestamp_utc": "2026-06-04T07:00:00",
"ts": 1780556400
},
{
"aqi": 52,
"co": 57,
"datetime": "2026-06-04:08",
"no2": 44,
"o3": 9,
"pm10": 27,
"pm25": 13,
"so2": 2,
"timestamp_local": "2026-06-04T04:00:00",
"timestamp_utc": "2026-06-04T08:00:00",
"ts": 1780560000
},
{
"aqi": 56,
"co": 57,
"datetime": "2026-06-04:09",
"no2": 45,
"o3": 7,
"pm10": 32,
"pm25": 15,
"so2": 3,
"timestamp_local": "2026-06-04T05:00:00",
"timestamp_utc": "2026-06-04T09:00:00",
"ts": 1780563600
},
{
"aqi": 65,
"co": 61,
"datetime": "2026-06-04:10",
"no2": 44,
"o3": 6,
"pm10": 42,
"pm25": 19,
"so2": 3,
"timestamp_local": "2026-06-04T06:00:00",
"timestamp_utc": "2026-06-04T10:00:00",
"ts": 1780567200
},
{
"aqi": 76,
"co": 65,
"datetime": "2026-06-04:11",
"no2": 37,
"o3": 9,
"pm10": 54,
"pm25": 24,
"so2": 4,
"timestamp_local": "2026-06-04T07:00:00",
"timestamp_utc": "2026-06-04T11:00:00",
"ts": 1780570800
},
{
"aqi": 69,
"co": 68,
"datetime": "2026-06-04:12",
"no2": 32,
"o3": 13,
"pm10": 47,
"pm25": 21,
"so2": 3,
"timestamp_local": "2026-06-04T08:00:00",
"timestamp_utc": "2026-06-04T12:00:00",
"ts": 1780574400
},
{
"aqi": 63,
"co": 69,
"datetime": "2026-06-04:13",
"no2": 31,
"o3": 21,
"pm10": 38,
"pm25": 18,
"so2": 3,
"timestamp_local": "2026-06-04T09:00:00",
"timestamp_utc": "2026-06-04T13:00:00",
"ts": 1780578000
},
{
"aqi": 54,
"co": 69,
"datetime": "2026-06-04:14",
"no2": 30,
"o3": 37,
"pm10": 31,
"pm25": 14,
"so2": 2,
"timestamp_local": "2026-06-04T10:00:00",
"timestamp_utc": "2026-06-04T14:00:00",
"ts": 1780581600
},
{
"aqi": 46,
"co": 70,
"datetime": "2026-06-04:15",
"no2": 25,
"o3": 62,
"pm10": 24,
"pm25": 11,
"so2": 2,
"timestamp_local": "2026-06-04T11:00:00",
"timestamp_utc": "2026-06-04T15:00:00",
"ts": 1780585200
},
{
"aqi": 42,
"co": 67,
"datetime": "2026-06-04:16",
"no2": 19,
"o3": 90,
"pm10": 18,
"pm25": 9,
"so2": 2,
"timestamp_local": "2026-06-04T12:00:00",
"timestamp_utc": "2026-06-04T16:00:00",
"ts": 1780588800
},
{
"aqi": 54,
"co": 63,
"datetime": "2026-06-04:17",
"no2": 13,
"o3": 116,
"pm10": 14,
"pm25": 7,
"so2": 1,
"timestamp_local": "2026-06-04T13:00:00",
"timestamp_utc": "2026-06-04T17:00:00",
"ts": 1780592400
},
{
"aqi": 64,
"co": 60,
"datetime": "2026-06-04:18",
"no2": 10,
"o3": 131,
"pm10": 12,
"pm25": 6,
"so2": 1,
"timestamp_local": "2026-06-04T14:00:00",
"timestamp_utc": "2026-06-04T18:00:00",
"ts": 1780596000
},
{
"aqi": 60,
"co": 60,
"datetime": "2026-06-04:19",
"no2": 9,
"o3": 128,
"pm10": 10,
"pm25": 5,
"so2": 1,
"timestamp_local": "2026-06-04T15:00:00",
"timestamp_utc": "2026-06-04T19:00:00",
"ts": 1780599600
},
{
"aqi": 50,
"co": 60,
"datetime": "2026-06-04:20",
"no2": 9,
"o3": 120,
"pm10": 10,
"pm25": 5,
"so2": 1,
"timestamp_local": "2026-06-04T16:00:00",
"timestamp_utc": "2026-06-04T20:00:00",
"ts": 1780603200
},
{
"aqi": 52,
"co": 60,
"datetime": "2026-06-04:21",
"no2": 11,
"o3": 113,
"pm10": 11,
"pm25": 5,
"so2": 1,
"timestamp_local": "2026-06-04T17:00:00",
"timestamp_utc": "2026-06-04T21:00:00",
"ts": 1780606800
},
{
"aqi": 48,
"co": 63,
"datetime": "2026-06-04:22",
"no2": 13,
"o3": 104,
"pm10": 13,
"pm25": 6,
"so2": 1,
"timestamp_local": "2026-06-04T18:00:00",
"timestamp_utc": "2026-06-04T22:00:00",
"ts": 1780610400
},
{
"aqi": 41,
"co": 65,
"datetime": "2026-06-04:23",
"no2": 21,
"o3": 88,
"pm10": 21,
"pm25": 9,
"so2": 1,
"timestamp_local": "2026-06-04T19:00:00",
"timestamp_utc": "2026-06-04T23:00:00",
"ts": 1780614000
},
{
"aqi": 59,
"co": 68,
"datetime": "2026-06-05:00",
"no2": 40,
"o3": 54,
"pm10": 41,
"pm25": 16,
"so2": 3,
"timestamp_local": "2026-06-04T20:00:00",
"timestamp_utc": "2026-06-05T00:00:00",
"ts": 1780617600
},
{
"aqi": 45,
"co": 67,
"datetime": "2026-06-05:01",
"no2": 33,
"o3": 88,
"pm10": 10,
"pm25": 9,
"so2": 6,
"timestamp_local": "2026-06-04T21:00:00",
"timestamp_utc": "2026-06-05T01:00:00",
"ts": 1780621200
},
{
"aqi": 45,
"co": 67,
"datetime": "2026-06-05:02",
"no2": 36,
"o3": 79,
"pm10": 11,
"pm25": 10,
"so2": 6,
"timestamp_local": "2026-06-04T22:00:00",
"timestamp_utc": "2026-06-05T02:00:00",
"ts": 1780624800
},
{
"aqi": 46,
"co": 67,
"datetime": "2026-06-05:03",
"no2": 39,
"o3": 71,
"pm10": 11,
"pm25": 11,
"so2": 6,
"timestamp_local": "2026-06-04T23:00:00",
"timestamp_utc": "2026-06-05T03:00:00",
"ts": 1780628400
},
{
"aqi": 41,
"co": 68,
"datetime": "2026-06-05:04",
"no2": 37,
"o3": 69,
"pm10": 10,
"pm25": 10,
"so2": 6,
"timestamp_local": "2026-06-05T00:00:00",
"timestamp_utc": "2026-06-05T04:00:00",
"ts": 1780632000
},
{
"aqi": 35,
"co": 70,
"datetime": "2026-06-05:05",
"no2": 34,
"o3": 66,
"pm10": 8,
"pm25": 8,
"so2": 6,
"timestamp_local": "2026-06-05T01:00:00",
"timestamp_utc": "2026-06-05T05:00:00",
"ts": 1780635600
},
{
"aqi": 30,
"co": 71,
"datetime": "2026-06-05:06",
"no2": 32,
"o3": 64,
"pm10": 7,
"pm25": 7,
"so2": 6,
"timestamp_local": "2026-06-05T02:00:00",
"timestamp_utc": "2026-06-05T06:00:00",
"ts": 1780639200
},
{
"aqi": 28,
"co": 73,
"datetime": "2026-06-05:07",
"no2": 31,
"o3": 60,
"pm10": 6,
"pm25": 6,
"so2": 7,
"timestamp_local": "2026-06-05T03:00:00",
"timestamp_utc": "2026-06-05T07:00:00",
"ts": 1780642800
},
{
"aqi": 26,
"co": 75,
"datetime": "2026-06-05:08",
"no2": 30,
"o3": 56,
"pm10": 6,
"pm25": 6,
"so2": 7,
"timestamp_local": "2026-06-05T04:00:00",
"timestamp_utc": "2026-06-05T08:00:00",
"ts": 1780646400
},
{
"aqi": 24,
"co": 77,
"datetime": "2026-06-05:09",
"no2": 29,
"o3": 52,
"pm10": 5,
"pm25": 5,
"so2": 8,
"timestamp_local": "2026-06-05T05:00:00",
"timestamp_utc": "2026-06-05T09:00:00",
"ts": 1780650000
},
{
"aqi": 26,
"co": 81,
"datetime": "2026-06-05:10",
"no2": 29,
"o3": 53,
"pm10": 6,
"pm25": 6,
"so2": 9,
"timestamp_local": "2026-06-05T06:00:00",
"timestamp_utc": "2026-06-05T10:00:00",
"ts": 1780653600
},
{
"aqi": 27,
"co": 85,
"datetime": "2026-06-05:11",
"no2": 30,
"o3": 55,
"pm10": 7,
"pm25": 6,
"so2": 9,
"timestamp_local": "2026-06-05T07:00:00",
"timestamp_utc": "2026-06-05T11:00:00",
"ts": 1780657200
},
{
"aqi": 29,
"co": 89,
"datetime": "2026-06-05:12",
"no2": 30,
"o3": 56,
"pm10": 8,
"pm25": 7,
"so2": 10,
"timestamp_local": "2026-06-05T08:00:00",
"timestamp_utc": "2026-06-05T12:00:00",
"ts": 1780660800
},
{
"aqi": 36,
"co": 86,
"datetime": "2026-06-05:13",
"no2": 26,
"o3": 77,
"pm10": 10,
"pm25": 8,
"so2": 9,
"timestamp_local": "2026-06-05T09:00:00",
"timestamp_utc": "2026-06-05T13:00:00",
"ts": 1780664400
},
{
"aqi": 43,
"co": 83,
"datetime": "2026-06-05:14",
"no2": 22,
"o3": 99,
"pm10": 11,
"pm25": 10,
"so2": 8,
"timestamp_local": "2026-06-05T10:00:00",
"timestamp_utc": "2026-06-05T14:00:00",
"ts": 1780668000
},
{
"aqi": 50,
"co": 81,
"datetime": "2026-06-05:15",
"no2": 18,
"o3": 120,
"pm10": 13,
"pm25": 11,
"so2": 7,
"timestamp_local": "2026-06-05T11:00:00",
"timestamp_utc": "2026-06-05T15:00:00",
"ts": 1780671600
},
{
"aqi": 63,
"co": 78,
"datetime": "2026-06-05:16",
"no2": 16,
"o3": 130,
"pm10": 13,
"pm25": 12,
"so2": 7,
"timestamp_local": "2026-06-05T12:00:00",
"timestamp_utc": "2026-06-05T16:00:00",
"ts": 1780675200
},
{
"aqi": 76,
"co": 75,
"datetime": "2026-06-05:17",
"no2": 13,
"o3": 141,
"pm10": 14,
"pm25": 12,
"so2": 6,
"timestamp_local": "2026-06-05T13:00:00",
"timestamp_utc": "2026-06-05T17:00:00",
"ts": 1780678800
}
],
"lat": 40.7306,
"lon": -73.9352,
"state_code": "NY",
"timezone": "America/New_York"
}
HTTP Statuses
| Code | Description | Example |
|---|---|---|
| 200 | A forecast object. | - |
| 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³) |