Air Quality Forecast API

Returns hourly air quality forecasts over a 72-hour window for global locations.

API Guide

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

Geolocation options: lat/lon (recommended), city or postal_code and country

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
{
  "error": "Some relevant message"
}
403 Unauthorized/No Access for current plan level
{
  "error": "Some relevant message"
}
429 Daily or Velocity limit exceeded See rate limit guidance.
{
  "error": "Rate limit exceeded.",
  "status_code": 429,
  "status_message": "Rate limit exceeded. Try again later."
}
500 Internal Server Error
{
  "error": "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³)