Global, hyperlocal, and accurate air quality data

Track global pollution exposure across seven critical pollutants and multiple AQI standards.

Trusted Across Industries
GSK Logo
Bayer Logo
Sanofi Logo
Lilly Logo
HALEON Logo
Kimberly-Clark Logo
3M Logo
Electrolux logo
WPP Logo
Publicis Groupe Logo
Teads logo
The Weather Channel Logo
EDF Logo
Ambee air quality API background
At a glance

Ambee Air Quality

Air quality pollutants measured

All pollutants measured

PM2.5, PM10, NO2, SO2, CO, O3, and location-specific AQI.

Air Quality Global Coverage

Global coverage

Available for any location on any landmass in the world.

Air quality hyperlocal granularity

Hyperlocal granularity

Ability to map to any lat/lon coordinates, ZIP or postal codes, DMAs, or user-defined boundaries.

ZIP, DMA, and custom boundaries available on request.

Air quality continuously refreshed

Continuously refreshed

Present conditions refresh hourly. Forecasts refresh daily.

Air quality gap-free time series

Gap-free time series

Continuous historical archives from 2010 with data extending to present conditions and into the forecast.

AQI across global standards

AQI across global standards

US EPA, UK DAQI, Indian AQI, European CAQI, and additional global standards supported.

All major pollutants covered

PM2.5

Fine particulate matter (<2.5 micrometers) linked to respiratory and cardiovascular health.

PM2.5 pollutant

PM10

Coarse particles (<10 micrometers) affecting lung function and visibility.

PM10 Pollutant

NO2

Nitrogen dioxide from traffic and industrial sources, a respiratory irritant.

NO2 Pollutant

AQI

Overall air quality score combining all pollutants into a unified health risk assessment.

AQI

SO2

Sulfur dioxide from fossil fuel combustion, linked to asthma and breathing difficulties.

SO2 pollutant

CO

Carbon monoxide from incomplete combustion resulting in reduced oxygen delivery in the body.

CO pollutant

O3

Ground-level ozone, a respiratory irritant formed from vehicle and industrial emissions.

O3 pollutant

Ambee’s air quality data is validated against ground truth, continuously

Ambee's air quality data is continuously validated against ground monitoring stations across four major regions. The report here compares the accuracy of Ambee's air quality data against a leading competitor.

Get Accuracy Report

Ambee achieves over 90% accuracy across all regions, measured as 100% minus MAPE (mean absolute percentage error), the average deviation between predictions and ground measurements.

MAPE air quality accuracy

Ambee's error rates run up to 5x lower than leading providers across all regions. RMSE (root mean squared error) measures accuracy by the average magnitude of errors, with larger deviations penalized more heavily.

RMSE air quality

What sets Ambee’s air quality data apart

Comprehensive. Hyperlocal. Global. Accurate.

Typical providers

Coverage
Global coverage for any location

Limited countries/regions

Pollutants covered

AQI, PM2.5, PM10, NO2, SO2, CO, O3

3-6 pollutants

Forecast horizon

Up to 4 days (hourly)

3-7 days

Historical depth

2010 onwards

2 years

Spatial resolution
<1km - 5km

Sub-kilometer resolution (<1km) available upon request.

1km - 15km

Temporal resolution

Hourly, daily, and custom intervals

Hourly or daily

Data granularity

Can be mapped to any lat/lon or geographically bounded area

City or station level

AQI standards

US EPA, UK DAQI, Indian AQI, European CAQI, and additional global standards

Single standard
(typically US EPA)

Update frequency

Present conditions refresh hourly. Forecasts refresh daily

Daily

Industry leaders use Ambee’s air quality data for

Programmatic advertising

Trigger campaigns when air quality levels increase demand for air purifiers, masks, or allergy relief products.

Programmatic advertising using climate data

Clean routing

Provide detailed routing guidance around high-pollution zones to protect driver health.

Clean routing using climate data

Air purifier optimization

Automate purification cycles and maintenance schedules based on real-time outdoor pollution levels.

Air purification

HVAC automation

Automatically cycle building ventilation systems based on outdoor air quality to maintain indoor air standards and reduce energy costs.

HVAC Industry

Digital health platforms

Alert users with respiratory conditions when pollution levels exceed safe thresholds for their precise location.

Digital health industry

Enterprise-grade air quality data delivered your way

Instantly integrate Ambee air quality data into any workflow, available in any format, including NetCDF, GRIB, CSV, Parquet, and more.

Air quality API documentation

APIs

Access present, historical, and forecast air quality endpoints via a RESTful API.

View documentation
Integrate Air Quality API

Marketplace integrations

Direct access through Databricks, Snowflake, Datarade, The Trade Desk, Google Cloud, and more.

See partners
map tiles and visualizations

Map tiles & visualizations

AQI and pollutant heatmaps compatible with Mapbox, ESRI, CARTO, Leaflet, and OpenLayers.

See visual layers
Air quality map tiles

Flat files

CSV, NetCDF, GRIB, and parquet formats for analytical workflows and modeling pipelines.

Talk to us

Getting started with Ambee’s Air Quality API

Content copy iconCheck icon
const http = require("https");

const options = {
	"method": "GET",
	"hostname": "api.ambeedata.com",
	"port": null,
	"path": "/latest/by-lat-lng?lat=12.9889055&lng=77.574044",
	"headers": {
		"x-api-key": "API_KEY",
		"Content-type": "application/json"
	}
};

const req = http.request(options, function (res) {
	const chunks = [];

	res.on("data", function (chunk) {
		chunks.push(chunk);
	});

	res.on("end", function () {
		const body = Buffer.concat(chunks);
		console.log(body.toString());
	});
});

req.end();
Content copy iconCheck icon
const http = require('https');

const options = {
	method: 'GET',
	hostname: 'api.ambeedata.com',
	port: null,
	path: '/latest/by-lat-lng?lat=12.9889055&lng=77.574044',
	headers: {
		'x-api-key': 'API_KEY',
		'Content-type': 'application/json'
	}
};

const req = http.request(options, function (res) {
	const chunks = [];

	res.on('data', function (chunk) {
		chunks.push(chunk);
	});

	res.on('end', function () {
		const body = Buffer.concat(chunks);
		console.log(body.toString());
	});
});

req.end();
Content copy iconCheck icon
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
	.url("https://api.ambeedata.com/latest/by-lat-lng?lat=12.9889055&lng=77.574044")
	.get()
	.addHeader("x-api-key", "API_KEY")
	.addHeader("Content-type", "application/json")
	.build();

Response response = client.newCall(request).execute();
Content copy iconCheck icon
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
	Method = HttpMethod.Get,
	RequestUri = new Uri("https://api.ambeedata.com/latest/by-lat-lng?lat=12.9889055&lng=77.574044"),
	Headers =
	{
		{ "x-api-key", "API_KEY" },
	},
};
using (var response = await client.SendAsync(request))
{
	response.EnsureSuccessStatusCode();
	var body = await response.Content.ReadAsStringAsync();
	Console.WriteLine(body);
}
Content copy iconCheck icon
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.ambeedata.com/latest/by-lat-lng?lat=12.9889055&lng=77.574044"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "API_KEY")
	req.Header.Add("Content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
Content copy iconCheck icon
<?php

$curl = curl_init();

curl_setopt_array($curl, [
	CURLOPT_URL => "https://api.ambeedata.com/latest/by-lat-lng?lat=12.9889055&lng=77.574044",
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_ENCODING => "",
	CURLOPT_MAXREDIRS => 10,
	CURLOPT_TIMEOUT => 30,
	CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	CURLOPT_CUSTOMREQUEST => "GET",
	CURLOPT_HTTPHEADER => [
		"Content-type: application/json",
		"x-api-key: API_KEY"
	],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
	echo "cURL Error #:" . $err;
} else {
	echo $response;
}
Content copy iconCheck icon
curl --request GET \
	--url 'https://api.ambeedata.com/latest/by-lat-lng?lat=12.9889055&lng=77.574044' \
	--header 'Content-type: application/json' \
	--header 'x-api-key: API_KEY'
Content copy iconCheck icon
require 'uri'
require 'net/http'

url = URI("https://api.ambeedata.com/latest/by-lat-lng?lat=12.9889055&lng=77.574044")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = 'API_KEY'
request["Content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
Content copy iconCheck icon
import http.client

conn = http.client.HTTPSConnection("api.ambeedata.com")

headers = {
    'x-api-key': "API_KEY",
    'Content-type': "application/json"
}

conn.request("GET", "/forecast/by-lat-lng?lat=12.9889055&lng=77.574044", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
Content copy iconCheck icon
const http = require('https');

const options = {
	method: 'GET',
	hostname: 'api.ambeedata.com',
	port: null,
	path: '/forecast/by-lat-lng?lat=12.9889055&lng=77.574044',
	headers: {
		'x-api-key': 'API_KEY',
		'Content-type': 'application/json'
	}
};

const req = http.request(options, function (res) {
	const chunks = [];

	res.on('data', function (chunk) {
		chunks.push(chunk);
	});

	res.on('end', function () {
		const body = Buffer.concat(chunks);
		console.log(body.toString());
	});
});

req.end();
Content copy iconCheck icon
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
	.url("https://api.ambeedata.com/forecast/by-lat-lng?lat=12.9889055&lng=77.574044")
	.get()
	.addHeader("x-api-key", "API_KEY")
	.addHeader("Content-type", "application/json")
	.build();

Response response = client.newCall(request).execute();
Content copy iconCheck icon
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
	Method = HttpMethod.Get,
	RequestUri = new Uri("https://api.ambeedata.com/forecast/by-lat-lng?lat=12.9889055&lng=77.574044"),
	Headers =
	{
		{ "x-api-key", "API_KEY" },
	},
};
using (var response = await client.SendAsync(request))
{
	response.EnsureSuccessStatusCode();
	var body = await response.Content.ReadAsStringAsync();
	Console.WriteLine(body);
}
Content copy iconCheck icon
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.ambeedata.com/forecast/by-lat-lng?lat=12.9889055&lng=77.574044"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "API_KEY")
	req.Header.Add("Content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
Content copy iconCheck icon
<?php

$curl = curl_init();

curl_setopt_array($curl, [
	CURLOPT_URL => "https://api.ambeedata.com/forecast/by-lat-lng?lat=12.9889055&lng=77.574044",
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_ENCODING => "",
	CURLOPT_MAXREDIRS => 10,
	CURLOPT_TIMEOUT => 30,
	CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	CURLOPT_CUSTOMREQUEST => "GET",
	CURLOPT_HTTPHEADER => [
		"Content-type: application/json",
		"x-api-key: API_KEY"
	],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
	echo "cURL Error #:" . $err;
} else {
	echo $response;
}
Content copy iconCheck icon
curl --request GET \
	--url 'https://api.ambeedata.com/forecast/by-lat-lng?lat=12.9889055&lng=77.574044' \
	--header 'Content-type: application/json' \
	--header 'x-api-key: API_KEY'
Content copy iconCheck icon
require 'uri'
require 'net/http'

url = URI("https://api.ambeedata.com/forecast/by-lat-lng?lat=12.9889055&lng=77.574044")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = 'API_KEY'
request["Content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
Content copy iconCheck icon
{
    "message": "success",
    "lat": 40,
    "lng": -77,
    "timezone": "America/New_York",
    "data": [
        {
            "CO": 0.386,
            "NO2": 7.546,
            "OZONE": 23.401,
            "PM10": 18.525,
            "PM25": 6.897,
            "SO2": 0.454,
            "AQI": 38,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 7,
                "category": "Good"
            },
            "unixTs": 1782192346,
            "timestamp": "2026-06-23T05:00:00.000Z",
            "localTime": "2026-06-23T01:25:46-04:00"
        }
    ]
}
Content copy iconCheck icon
{
    "message": "success",
    "lat": 40,
    "lng": -77,
    "timezone": "America/New_York",
    "data": [
        {
            "CO": 0.168,
            "NO2": 4.441,
            "OZONE": 31.187,
            "PM10": 27.154,
            "PM25": 6.133,
            "SO2": 0.267,
            "AQI": 33,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 6,
                "category": "Good"
            },
            "timestamp": "2026-06-23T06:00:00.000Z",
            "unixTs": 1782194400
        },
        {
            "CO": 0.161,
            "NO2": 3.476,
            "OZONE": 28.305,
            "PM10": 28.022,
            "PM25": 6.374,
            "SO2": 0.257,
            "AQI": 33,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 6,
                "category": "Good"
            },
            "timestamp": "2026-06-23T07:00:00.000Z",
            "unixTs": 1782198000
        },
        {
            "CO": 0.157,
            "NO2": 2.579,
            "OZONE": 26.604,
            "PM10": 31.903,
            "PM25": 7.27,
            "SO2": 0.247,
            "AQI": 38,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 7,
                "category": "Good"
            },
            "timestamp": "2026-06-23T08:00:00.000Z",
            "unixTs": 1782201600
        },
        {
            "CO": 0.153,
            "NO2": 2.185,
            "OZONE": 23.233,
            "PM10": 42.93,
            "PM25": 9.624,
            "SO2": 0.235,
            "AQI": 52,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 10,
                "category": "Moderate"
            },
            "timestamp": "2026-06-23T09:00:00.000Z",
            "unixTs": 1782205200
        },
        {
            "CO": 0.149,
            "NO2": 2.048,
            "OZONE": 28.213,
            "PM10": 46.167,
            "PM25": 10.436,
            "SO2": 0.226,
            "AQI": 52,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 10,
                "category": "Moderate"
            },
            "timestamp": "2026-06-23T10:00:00.000Z",
            "unixTs": 1782208800
        },
        {
            "CO": 0.144,
            "NO2": 1.898,
            "OZONE": 28.508,
            "PM10": 50.602,
            "PM25": 11.422,
            "SO2": 0.214,
            "AQI": 54,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 11,
                "category": "Moderate"
            },
            "timestamp": "2026-06-23T11:00:00.000Z",
            "unixTs": 1782212400
        },
        {
            "CO": 0.139,
            "NO2": 1.608,
            "OZONE": 25.466,
            "PM10": 29.144,
            "PM25": 6.615,
            "SO2": 0.203,
            "AQI": 38,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 7,
                "category": "Good"
            },
            "timestamp": "2026-06-23T12:00:00.000Z",
            "unixTs": 1782216000
        },
        {
            "CO": 0.136,
            "NO2": 1.421,
            "OZONE": 27.067,
            "PM10": 16.193,
            "PM25": 3.775,
            "SO2": 0.192,
            "AQI": 25,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 27,
                "category": "Good"
            },
            "timestamp": "2026-06-23T13:00:00.000Z",
            "unixTs": 1782219600
        },
        {
            "CO": 0.133,
            "NO2": 1.123,
            "OZONE": 27.817,
            "PM10": 12.173,
            "PM25": 2.983,
            "SO2": 0.178,
            "AQI": 26,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 28,
                "category": "Good"
            },
            "timestamp": "2026-06-23T14:00:00.000Z",
            "unixTs": 1782223200
        },
        {
            "CO": 0.13,
            "NO2": 0.844,
            "OZONE": 29.489,
            "PM10": 11.05,
            "PM25": 2.712,
            "SO2": 0.16,
            "AQI": 27,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 29,
                "category": "Good"
            },
            "timestamp": "2026-06-23T15:00:00.000Z",
            "unixTs": 1782226800
        },
        {
            "CO": 0.127,
            "NO2": 0.681,
            "OZONE": 31.707,
            "PM10": 14.057,
            "PM25": 3.222,
            "SO2": 0.139,
            "AQI": 30,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 32,
                "category": "Good"
            },
            "timestamp": "2026-06-23T16:00:00.000Z",
            "unixTs": 1782230400
        },
        {
            "CO": 0.125,
            "NO2": 0.514,
            "OZONE": 32.642,
            "PM10": 18.046,
            "PM25": 4.113,
            "SO2": 0.116,
            "AQI": 31,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 33,
                "category": "Good"
            },
            "timestamp": "2026-06-23T17:00:00.000Z",
            "unixTs": 1782234000
        },
        {
            "CO": 0.122,
            "NO2": 0.422,
            "OZONE": 36.362,
            "PM10": 22.872,
            "PM25": 5.214,
            "SO2": 0.101,
            "AQI": 33,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 36,
                "category": "Good"
            },
            "timestamp": "2026-06-23T18:00:00.000Z",
            "unixTs": 1782237600
        },
        {
            "CO": 0.119,
            "NO2": 0.394,
            "OZONE": 47.061,
            "PM10": 22.045,
            "PM25": 5.09,
            "SO2": 0.108,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 47,
                "category": "Good"
            },
            "timestamp": "2026-06-23T19:00:00.000Z",
            "unixTs": 1782241200
        },
        {
            "CO": 0.116,
            "NO2": 0.394,
            "OZONE": 51.17,
            "PM10": 19.161,
            "PM25": 4.395,
            "SO2": 0.132,
            "AQI": 47,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 51,
                "category": "Good"
            },
            "timestamp": "2026-06-23T20:00:00.000Z",
            "unixTs": 1782244800
        },
        {
            "CO": 0.116,
            "NO2": 0.427,
            "OZONE": 49.221,
            "PM10": 15.176,
            "PM25": 3.504,
            "SO2": 0.166,
            "AQI": 45,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 49,
                "category": "Good"
            },
            "timestamp": "2026-06-23T21:00:00.000Z",
            "unixTs": 1782248400
        },
        {
            "CO": 0.117,
            "NO2": 0.527,
            "OZONE": 49.379,
            "PM10": 12.125,
            "PM25": 2.999,
            "SO2": 0.198,
            "AQI": 45,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 49,
                "category": "Good"
            },
            "timestamp": "2026-06-23T22:00:00.000Z",
            "unixTs": 1782252000
        },
        {
            "CO": 0.118,
            "NO2": 0.763,
            "OZONE": 47.382,
            "PM10": 12.145,
            "PM25": 2.946,
            "SO2": 0.224,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 47,
                "category": "Good"
            },
            "timestamp": "2026-06-23T23:00:00.000Z",
            "unixTs": 1782255600
        },
        {
            "CO": 0.121,
            "NO2": 1.392,
            "OZONE": 39.355,
            "PM10": 9.169,
            "PM25": 2.256,
            "SO2": 0.247,
            "AQI": 36,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 39,
                "category": "Good"
            },
            "timestamp": "2026-06-24T00:00:00.000Z",
            "unixTs": 1782259200
        },
        {
            "CO": 0.125,
            "NO2": 2.238,
            "OZONE": 33.053,
            "PM10": 13.928,
            "PM25": 3.158,
            "SO2": 0.266,
            "AQI": 31,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 33,
                "category": "Good"
            },
            "timestamp": "2026-06-24T01:00:00.000Z",
            "unixTs": 1782262800
        },
        {
            "CO": 0.126,
            "NO2": 2.623,
            "OZONE": 29.828,
            "PM10": 14.072,
            "PM25": 3.184,
            "SO2": 0.276,
            "AQI": 28,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 30,
                "category": "Good"
            },
            "timestamp": "2026-06-24T02:00:00.000Z",
            "unixTs": 1782266400
        },
        {
            "CO": 0.126,
            "NO2": 2.771,
            "OZONE": 27.744,
            "PM10": 13.828,
            "PM25": 3.129,
            "SO2": 0.282,
            "AQI": 26,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 28,
                "category": "Good"
            },
            "timestamp": "2026-06-24T03:00:00.000Z",
            "unixTs": 1782270000
        },
        {
            "CO": 0.126,
            "NO2": 2.828,
            "OZONE": 26.41,
            "PM10": 13.957,
            "PM25": 3.229,
            "SO2": 0.289,
            "AQI": 24,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 26,
                "category": "Good"
            },
            "timestamp": "2026-06-24T04:00:00.000Z",
            "unixTs": 1782273600
        },
        {
            "CO": 0.124,
            "NO2": 2.693,
            "OZONE": 24.254,
            "PM10": 16.085,
            "PM25": 3.714,
            "SO2": 0.299,
            "AQI": 22,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 24,
                "category": "Good"
            },
            "timestamp": "2026-06-24T05:00:00.000Z",
            "unixTs": 1782277200
        },
        {
            "CO": 0.123,
            "NO2": 2.505,
            "OZONE": 22.849,
            "PM10": 18.909,
            "PM25": 4.275,
            "SO2": 0.323,
            "AQI": 22,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 4,
                "category": "Good"
            },
            "timestamp": "2026-06-24T06:00:00.000Z",
            "unixTs": 1782280800
        },
        {
            "CO": 0.123,
            "NO2": 2.385,
            "OZONE": 22.236,
            "PM10": 19.954,
            "PM25": 4.584,
            "SO2": 0.355,
            "AQI": 27,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 5,
                "category": "Good"
            },
            "timestamp": "2026-06-24T07:00:00.000Z",
            "unixTs": 1782284400
        },
        {
            "CO": 0.124,
            "NO2": 2.524,
            "OZONE": 21.206,
            "PM10": 21.152,
            "PM25": 4.922,
            "SO2": 0.388,
            "AQI": 27,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 5,
                "category": "Good"
            },
            "timestamp": "2026-06-24T08:00:00.000Z",
            "unixTs": 1782288000
        },
        {
            "CO": 0.125,
            "NO2": 2.742,
            "OZONE": 21.105,
            "PM10": 25.088,
            "PM25": 5.724,
            "SO2": 0.417,
            "AQI": 33,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 6,
                "category": "Good"
            },
            "timestamp": "2026-06-24T09:00:00.000Z",
            "unixTs": 1782291600
        },
        {
            "CO": 0.127,
            "NO2": 2.995,
            "OZONE": 22.843,
            "PM10": 24.257,
            "PM25": 5.689,
            "SO2": 0.432,
            "AQI": 33,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 6,
                "category": "Good"
            },
            "timestamp": "2026-06-24T10:00:00.000Z",
            "unixTs": 1782295200
        },
        {
            "CO": 0.128,
            "NO2": 2.714,
            "OZONE": 28.413,
            "PM10": 24.072,
            "PM25": 5.601,
            "SO2": 0.425,
            "AQI": 33,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 6,
                "category": "Good"
            },
            "timestamp": "2026-06-24T11:00:00.000Z",
            "unixTs": 1782298800
        },
        {
            "CO": 0.124,
            "NO2": 1.745,
            "OZONE": 37.894,
            "PM10": 25.115,
            "PM25": 5.845,
            "SO2": 0.465,
            "AQI": 35,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 38,
                "category": "Good"
            },
            "timestamp": "2026-06-24T12:00:00.000Z",
            "unixTs": 1782302400
        },
        {
            "CO": 0.122,
            "NO2": 1.218,
            "OZONE": 43.768,
            "PM10": 21.075,
            "PM25": 4.928,
            "SO2": 0.54,
            "AQI": 41,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 44,
                "category": "Good"
            },
            "timestamp": "2026-06-24T13:00:00.000Z",
            "unixTs": 1782306000
        },
        {
            "CO": 0.115,
            "NO2": 0.786,
            "OZONE": 46.745,
            "PM10": 16.063,
            "PM25": 3.736,
            "SO2": 0.535,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 47,
                "category": "Good"
            },
            "timestamp": "2026-06-24T14:00:00.000Z",
            "unixTs": 1782309600
        },
        {
            "CO": 0.111,
            "NO2": 0.565,
            "OZONE": 48.748,
            "PM10": 12.277,
            "PM25": 3.067,
            "SO2": 0.453,
            "AQI": 45,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 49,
                "category": "Good"
            },
            "timestamp": "2026-06-24T15:00:00.000Z",
            "unixTs": 1782313200
        },
        {
            "CO": 0.109,
            "NO2": 0.459,
            "OZONE": 48.414,
            "PM10": 12.033,
            "PM25": 2.939,
            "SO2": 0.382,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 48,
                "category": "Good"
            },
            "timestamp": "2026-06-24T16:00:00.000Z",
            "unixTs": 1782316800
        },
        {
            "CO": 0.108,
            "NO2": 0.412,
            "OZONE": 47.957,
            "PM10": 11.049,
            "PM25": 2.68,
            "SO2": 0.337,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 48,
                "category": "Good"
            },
            "timestamp": "2026-06-24T17:00:00.000Z",
            "unixTs": 1782320400
        },
        {
            "CO": 0.109,
            "NO2": 0.399,
            "OZONE": 48.229,
            "PM10": 11.144,
            "PM25": 2.793,
            "SO2": 0.305,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 48,
                "category": "Good"
            },
            "timestamp": "2026-06-24T18:00:00.000Z",
            "unixTs": 1782324000
        },
        {
            "CO": 0.109,
            "NO2": 0.408,
            "OZONE": 48.986,
            "PM10": 13.885,
            "PM25": 3.129,
            "SO2": 0.285,
            "AQI": 45,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 49,
                "category": "Good"
            },
            "timestamp": "2026-06-24T19:00:00.000Z",
            "unixTs": 1782327600
        },
        {
            "CO": 0.11,
            "NO2": 0.424,
            "OZONE": 48.08,
            "PM10": 16,
            "PM25": 3.716,
            "SO2": 0.274,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 48,
                "category": "Good"
            },
            "timestamp": "2026-06-24T20:00:00.000Z",
            "unixTs": 1782331200
        },
        {
            "CO": 0.111,
            "NO2": 0.469,
            "OZONE": 49.266,
            "PM10": 17.004,
            "PM25": 3.869,
            "SO2": 0.269,
            "AQI": 45,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 49,
                "category": "Good"
            },
            "timestamp": "2026-06-24T21:00:00.000Z",
            "unixTs": 1782334800
        },
        {
            "CO": 0.113,
            "NO2": 0.579,
            "OZONE": 51.116,
            "PM10": 17.025,
            "PM25": 3.839,
            "SO2": 0.267,
            "AQI": 47,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 51,
                "category": "Good"
            },
            "timestamp": "2026-06-24T22:00:00.000Z",
            "unixTs": 1782338400
        },
        {
            "CO": 0.115,
            "NO2": 0.809,
            "OZONE": 51.428,
            "PM10": 17.08,
            "PM25": 3.837,
            "SO2": 0.27,
            "AQI": 47,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 51,
                "category": "Good"
            },
            "timestamp": "2026-06-24T23:00:00.000Z",
            "unixTs": 1782342000
        },{
            "CO": 0.13,
            "NO2": 2.633,
            "OZONE": 41.503,
            "PM10": 4.228,
            "PM25": 4.093,
            "SO2": 0.292,
            "AQI": 39,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 42,
                "category": "Good"
            },
            "timestamp": "2026-06-25T00:00:00.000Z",
            "unixTs": 1782345600
        },{
            "CO": 0.151,
            "NO2": 5.164,
            "OZONE": 41.229,
            "PM10": 21.081,
            "PM25": 4.848,
            "SO2": 0.363,
            "AQI": 38,
            "aqiInfo": {
                "pollutant": "O3",
                "concentration": 41,
                "category": "Good"
            },
            "timestamp": "2026-06-25T01:00:00.000Z",
            "unixTs": 1782349200
        },{
            "CO": 0.161,
            "NO2": 6.438,
            "OZONE": 36.538,
            "PM10": 30.015,
            "PM25": 6.827,
            "SO2": 0.438,
            "AQI": 38,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 7,
                "category": "Good"
            },
            "timestamp": "2026-06-25T02:00:00.000Z",
            "unixTs": 1782352800
        },{
            "CO": 0.172,
            "NO2": 7.702,
            "OZONE": 35.06,
            "PM10": 33.927,
            "PM25": 7.774,
            "SO2": 0.518,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 8,
                "category": "Good"
            },
            "timestamp": "2026-06-25T03:00:00.000Z",
            "unixTs": 1782356400
        }, {
            "CO": 0.185,
            "NO2": 9.191,
            "OZONE": 32.739,
            "PM10": 33.995,
            "PM25": 7.799,
            "SO2": 0.582,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 8,
                "category": "Good"
            },
            "timestamp": "2026-06-25T04:00:00.000Z",
            "unixTs": 1782360000
        },{
            "CO": 0.195,
            "NO2": 10.272,
            "OZONE": 32.81,
            "PM10": 35.026,
            "PM25": 7.982,
            "SO2": 0.658,
            "AQI": 44,
            "aqiInfo": {
                "pollutant": "PM2.5",
                "concentration": 8,
                "category": "Good"
            },
            "timestamp": "2026-06-25T05:00:00.000Z",
            "unixTs": 1782363600
        }
    ]
}
01

Get your API key

Sign up for an Ambee account and generate your API key from the dashboard.

02

Choose your endpoint

Select the endpoint based on what you need: present conditions, historical data, or forecasts.

03

Add your location

Specify the location using latitude/longitude coordinates, postal codes, city names, or country codes.

04

Make your request

Include your API key in the request header and call the endpoint. You'll receive AQI and all seven pollutant concentrations in JSON format.

Insights

Stay informed with research, case studies, and product deep-dives on air quality intelligence.

Whitepaper

The complete guide to Ambee's air quality technology

blog

The truth about Ambee’s air quality data accuracy

blog

Ambee’s entire climate data suite is now live on Databricks marketplace

Enhance air quality with the Ambee Climate Data Suite

Pollen

30+ pollen allergens categorized into trees, grasses, and weeds

Pollen API

Weather

All core meteorological and atmospheric parameters, including many derived fields

Ambee Weather API

Astronomy

Local sunrise, sunset, azimuth, and elevation data for any location

Ambee Astronomy API

Influenza-like Illness

30-day risk forecasts for respiratory illness, including cold and cough

Ambee ILI API

Natural disasters

All major disasters in a geospatial format with severity levels and event metadata

Ambee natural disaster API

Wildfire

Wildfire activity and behavior with forward-looking risk forecasts

Ambee Wildfire API

Why leading teams build with Ambee

Real feedback from real innovators

Innovid background
Delivering personalized, relevant experiences is critical for advertisers trying to increase the performance of their messaging. The beauty of DCO is when you have a high-quality API like Ambee’s pollen count - you can turn that into creative experiences directly tuned to the real-world circumstances of your audience.
Simeon Powers
Product Marketing, Ad Management, Innovid
We tried out Ambee’s Weather and Pollen API for our healthcare app. I must say our users were certainly pleased with the results. The data was comprehensive, accurate, and valuable, which helped with the user's decision-making process. Ambee’s team was really supportive during integration and for regular maintenance as well. Would definitely recommend working with them.
Kunal Kishore Dhawan
Co-founder and CEO of Navia Life Care
In an ever-changing world, it’s imperative that we understand the environmental changes and act upon these in the right way. Ambee keeps us in tune with our environment and is key to creating better outcomes for people.
Vipul Parmar
Global Head of Data Management
We monitor the impacts of AQ on the health outcomes of asthma and COPD patients. Ambee gives great access to hyperlocal data to help us monitor acute respiratory health events.
Luke Marshall
CEO and Founder of VitalFlo
It has helped Adylic showcase the power of utilizing API in personalizing ads. In this case, we were able to target users' needs at the right time based on the user's location.
Stefanie Wong
DCO Specialist, Adylic
Razor background
Solving climate change requires collaboration across industries. Hence, Razor partnered with Ambee to make reliable, real-time, and accurate data available to the blockchain.
Hrishikesh Huilgolkar
CEO
The PACE Science and Applications Team is thrilled to be working with partners like Ambee, who bring a fresh perspective to our work and ensure that the PACE mission will provide societal benefit.
Lorraine Remer
Atmospheric Scientist, University of Maryland, Baltimore County
Ambee has been a tremendous partner for Allegra. The quality of their air quality data, combined with their end-to-end development solutions and customer-oriented mindset, has made them the right partner for us.
Jordana Barish
North America Zone Head for Allegra
We’re happy to have Ambee’s AI-ready datasets listed on Datarade…Ambee is meeting increased global demand for environmental intelligence with its suite of data products. Now that these data products are available on Datarade, organizations worldwide will be able to access, sample, and ingest them for a range of crucial use cases.
Richard Hoffmann
Co-founder of Datarade
Ambee's proprietary climate data, brought to life through apps on Insight Cloud, makes forecasting faster, smarter, and simpler than ever. Teams can now instantly access Ambee's world-class climate expertise in minutes on Insight Cloud...answering tomorrow's questions, today.
Erik Mitchell
CEO of Seek

Frequently asked questions

Common questions about Ambee's air quality data

  • How is air quality index measured?

    The air quality index (AQI) measures air pollution levels in a location based on air quality data. It ranges from 1 to 500; anything exceeding 500 is considered fatal.

  • How can I use an API key in air quality API calls?

    Copy and paste the API key provided on the dashboard to successfully request air quality data via air quality API calls. You will get the AQ data in the respective set of records.

  • Several applications of air quality data?

    Air quality data can be used to prevent respiratory health ailments, determine the best times for marketing products such as anti-pollution masks, understand the hyper-local environment in the area, and schedule regular HVAC maintenance.

  • What is the air quality forecast?

    Air quality forecasting is the process of predicting air pollution levels to protect public health. The air quality forecast involves giving an early warning against harmful air pollutants.

  • What is the good air quality index?

    A good air quality index is when the air pollution data gives an AQI level of less than 50. The lower the AQI, the better the air quality.

  • How accurate is Ambee’s air quality data?

    Ambee combines 60+ sources (satellites, sensors, monitors) and ISO-certified processes to achieve 98% correlation with ground monitors (2023 study).

  • Can I validate Ambee’s data against local sources?

    Yes! Use our Accuracy Dashboard to compare Ambee’s real-time data with monitors in your region.

  • How do you ensure accuracy in regions without sensors?

    We fill gaps using satellite data and machine learning.

  • What certifications back your data?

    Ambee’s data pipelines are ISO 9001 certified, and our AQI aligns with EPA standards.

Turn climate from a risk to an opportunity
Talk to us
Footer background