Current Air Quality API
Current air quality observations for major pollutants and AQI at global scale.
This API 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 (AQI) as well as pollen levels (USA and EU only).
- Current concentration values for six major pollutants.
- AQI values for operational and public-facing products.
- Compatible with current-weather location query methods.
Request Parameters
| Field | Optional/Required | Type | Data Type | Description |
|---|---|---|---|---|
lat
|
Optional | query | number | Latitude component of location. |
lon
|
Optional | 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. |
* One of the following location methods is required: lat/lon (recommended), city,ST + country or postal_code + country .
Example Requests
Enter API key
lat/lon (recommended)
https://api.weatherbit.io/v2.0/current/airquality?key=API_KEY&lat=35.7796&lon=-78.6382
curl -s "https://api.weatherbit.io/v2.0/current/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/current/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/current/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_current(lat='35.7796', lon='-78.6382', source='airquality').get()
print(response)
Estimated quota: 1 requeststandard
Example Response HTTP 200
{
"city_name": "Blissville",
"country_code": "US",
"data": [
{
"aqi": 33,
"co": 72.3664,
"mold_level": 0,
"no2": 6,
"o3": 72,
"pm10": 3,
"pm25": 2,
"pollen_level_grass": 1,
"pollen_level_tree": 1,
"pollen_level_weed": 1,
"predominant_pollen_type": "Trees",
"so2": 1
}
],
"lat": 40.7306,
"lon": -73.9352,
"state_code": "NY",
"timezone": "America/New_York"
}
HTTP Statuses
| Code | Description | Example |
|---|---|---|
| 200 | Current 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<AQCurrent> | |
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³) |
data[].mold_level
|
integer | Mold level category |
data[].pollen_level_grass
|
integer | Grass pollen level category |
data[].pollen_level_tree
|
integer | Tree pollen level category |
data[].pollen_level_weed
|
integer | Weed pollen level category |
data[].predominant_pollen_type
|
string | Predominant pollen type |