The global standard for precise, actionable pollen data
Individual counts and risk levels for 30+ pollen allergens across trees, grasses, and weeds
Pollen released by trees and woody plants.
Acacia, alder, ash, birch, cedar, cypress, elm, hazel, maple, mulberry, myrtle, oak, olive, pine, plane, poplar, she-oak, willow, yew.
Tree pollen dominates early spring allergy seasons across temperate regions, with timing varying by latitude and climate
March–May
Birch, alder, oak, hazel (alder/hazel start January-February)
February–May
Olive (May-June), cypress, plane
August–October
Acacia, she-oak, myrtle, cypress pine
Pollen from grasses and sedge varieties.
Grass, sedges (tracked separately in Australia and New Zealand).
Grass pollen affects the widest geographic range and longest seasonal duration of all allergen categories, peaking in late spring and early summer in the Northern Hemisphere and spring-summer in the Southern Hemisphere.
May–July
Peaks in June-July
May–July
Peaks in June in most regions
August–October
Peaks in November-December
Pollen from flowering weeds and herbaceous plants.
Ragweed, mugwort, nettle, plantain, dock, daisy, chenopod.
Weed pollen defines late summer and fall allergy seasons in the Northern Hemisphere, with ragweed producing the highest allergen concentrations across North America.
August–October
Ragweed (peaks mid-September)
July–September
Mugwort, nettle, plantain
Variable
Plantain (August-May), summer weeds
Individual counts and risk levels for 30+ pollen allergens across trees, grasses, and weeds

Pollen behaves differently at every location. Our data is built on each region's unique vegetation, weather patterns, and seasonal cycles to deliver accurate data globally.
Historical pollen trends, weather patterns, vegetation indices, land cover data, and plant phenology cycle data are collected and integrated across regions.
Ambee Climate Engine’s machine learning models learn pollen behavior under local conditions. For example, the presence of olive trees combined with dry heat in the Mediterranean is a reliable indicator of high pollen risk.
The Engine trains and uses separate models for different regions of the world and then combines them into a single unified output.
The data then goes through heavy post-processing to reduce variance and improve reliability across geographies and forecast horizons.
All data is regularly validated against ground observations and historical data to ensure the highest level of accuracy.
Ambee’s pollen data is tested continuously across different geographies, seasons, and pollen types to ensure values track real-world conditions. Here is one example showing forecasted pollen levels compared with current observations over a two-day period in Los Angeles.
Ambee's historical pollen record is validated against independent ground monitoring stations across major regions. Accuracy is measured using R², which shows the proportion of variance in observed pollen that predictions explain.
Ambee's pollen forecast is benchmarked against present conditions in Chicago, building on a historical record validated at 82% R². Forecast accuracy is measured using MAE and RMSE.
Comprehensive. Hyperlocal. Global. Accurate.
Typical providers
Limited countries/regions
30+ pollen allergens categorized into trees, grasses, and weeds
Only tree, grass, and weed as broad categories
Up to 30 days
3-5 days
2015 onwards
1 month
Sub-kilometer resolution (<1km) available upon request.
1km - 15km
Hourly, daily, weekly
Daily
Can be mapped to any lat/lon or geographically bounded area
Predefined
Region-specific models
Single global model
Present conditions refresh hourly. Forecasts update daily
Daily
Categorical risk levels for 30+ pollen allergens
Only total pollen count
Anticipate allergy-driven demand surges and optimize supply before symptoms peak

Trigger campaigns when pollen exposure increases to the right consumer at the right time.

Alert users to pollen risk based on their location and level of sensitivity.

Route users around high-pollen areas to reduce exposure.

Deliver actionable data, alerts, and recommendations directly to the device level using real-time pollen conditions.

Instantly integrate Ambee pollen data into any workflow, available in any format, including NetCDF, GRIB, CSV, Parquet, and more.
import http.client
conn = http.client.HTTPSConnection("api.ambeedata.com")
headers = {
'x-api-key': "API_KEY",
'Content-type': "application/json"
}
conn.request("GET", "/latest/pollen/by-lat-lng?lat=12.9889055&lng=77.574044", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))const http = require("https");
const options = {
"method": "GET",
"hostname": "api.ambeedata.com",
"port": null,
"path": "/latest/pollen/by-lat-lng?lat=41.3874&lng=2.1686",
"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();OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.ambeedata.com/latest/pollen/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();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://api.ambeedata.com/latest/pollen/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);
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ambeedata.com/latest/pollen/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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ambeedata.com/latest/pollen/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;
}require 'uri'
require 'net/http'
url = URI("https://api.ambeedata.com/latest/pollen/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_bodyimport http.client
conn = http.client.HTTPSConnection("api.ambeedata.com")
headers = {
'x-api-key': "API_KEY",
'Content-type': "application/json"
}
conn.request("GET", "/forecast/pollen/by-lat-lng?lat=12.9889055&lng=77.574044", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))const http = require('https');
const options = {
method: 'GET',
hostname: 'api.ambeedata.com',
port: null,
path: '/forecast/pollen/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();OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.ambeedata.com/forecast/pollen/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();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://api.ambeedata.com/forecast/pollen/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);
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ambeedata.com/forecast/pollen/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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ambeedata.com/forecast/pollen/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;
}require 'uri'
require 'net/http'
url = URI("https://api.ambeedata.com/forecast/pollen/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{
"message": "success",
"lat": 40,
"lng": -77,
"timezone": "America/New_York",
"data": [
{
"Risk": {
"grass_pollen": "Low",
"tree_pollen": "Low",
"weed_pollen": "Low"
},
"Count": {
"grass_pollen": 5,
"tree_pollen": 11,
"weed_pollen": 1
},
"Species": {
"Grass": {
"Grass": 5
},
"Others": 1,
"Tree": {
"Ash": 0,
"Birch": 1,
"Cypress/Juniper/Cedar": 0,
"Elm": 0,
"Maple": 0,
"Mulberry": 0,
"Oak": 6,
"Pine": 3,
"Poplar/Cottonwood": 0
},
"Weed": {
"Ragweed": 1
}
},
"timestamp": "2026-06-23T05:00:00.000Z",
"unixTs": 1782190800
}
]
}{
"message": "success",
"lat": 40,
"lng": -77,
"timezone": "America/New_York",
"data": [
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 11,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 6,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T06:00:00.000Z",
"unixTs": 1782194400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T07:00:00.000Z",
"unixTs": 1782198000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T08:00:00.000Z",
"unixTs": 1782201600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T09:00:00.000Z",
"unixTs": 1782205200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T10:00:00.000Z",
"unixTs": 1782208800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T11:00:00.000Z",
"unixTs": 1782212400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 9,
"weed_pollen": 1,
"grass_pollen": 4
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 4,
"Pine": 3,
"Birch": 0,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 4
},
"Others": 2
},
"timestamp": "2026-06-23T12:00:00.000Z",
"unixTs": 1782216000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T13:00:00.000Z",
"unixTs": 1782219600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 11,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 6,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T14:00:00.000Z",
"unixTs": 1782223200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 11,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 6,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T15:00:00.000Z",
"unixTs": 1782226800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T16:00:00.000Z",
"unixTs": 1782230400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T17:00:00.000Z",
"unixTs": 1782234000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T18:00:00.000Z",
"unixTs": 1782237600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 10,
"weed_pollen": 1,
"grass_pollen": 5
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 5,
"Pine": 3,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 5
},
"Others": 1
},
"timestamp": "2026-06-23T19:00:00.000Z",
"unixTs": 1782241200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 12,
"weed_pollen": 1,
"grass_pollen": 6
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 6,
"Pine": 4,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 1
},
"Grass": {
"Grass": 6
},
"Others": 1
},
"timestamp": "2026-06-23T20:00:00.000Z",
"unixTs": 1782244800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 27,
"weed_pollen": 3,
"grass_pollen": 13
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 14,
"Pine": 9,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 13
},
"Others": 2
},
"timestamp": "2026-06-23T21:00:00.000Z",
"unixTs": 1782248400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 20,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-23T22:00:00.000Z",
"unixTs": 1782252000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 20,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-23T23:00:00.000Z",
"unixTs": 1782255600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 22,
"weed_pollen": 2,
"grass_pollen": 11
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 12,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 11
},
"Others": 1
},
"timestamp": "2026-06-24T00:00:00.000Z",
"unixTs": 1782259200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 20,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T01:00:00.000Z",
"unixTs": 1782262800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 20,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T02:00:00.000Z",
"unixTs": 1782266400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 19,
"weed_pollen": 2,
"grass_pollen": 9
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 10,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 9
},
"Others": 1
},
"timestamp": "2026-06-24T03:00:00.000Z",
"unixTs": 1782270000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 26,
"weed_pollen": 3,
"grass_pollen": 13
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 14,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 13
},
"Others": 2
},
"timestamp": "2026-06-24T04:00:00.000Z",
"unixTs": 1782273600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 21,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T05:00:00.000Z",
"unixTs": 1782277200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 20,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T06:00:00.000Z",
"unixTs": 1782280800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 19,
"weed_pollen": 2,
"grass_pollen": 9
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 10,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 9
},
"Others": 1
},
"timestamp": "2026-06-24T07:00:00.000Z",
"unixTs": 1782284400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 17,
"weed_pollen": 2,
"grass_pollen": 8
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 9,
"Pine": 5,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 8
},
"Others": 2
},
"timestamp": "2026-06-24T08:00:00.000Z",
"unixTs": 1782288000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 17,
"weed_pollen": 2,
"grass_pollen": 8
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 9,
"Pine": 5,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 8
},
"Others": 2
},
"timestamp": "2026-06-24T09:00:00.000Z",
"unixTs": 1782291600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 16,
"weed_pollen": 2,
"grass_pollen": 8
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 8,
"Pine": 5,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 8
},
"Others": 2
},
"timestamp": "2026-06-24T10:00:00.000Z",
"unixTs": 1782295200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 17,
"weed_pollen": 2,
"grass_pollen": 8
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 9,
"Pine": 5,
"Birch": 1,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 8
},
"Others": 2
},
"timestamp": "2026-06-24T11:00:00.000Z",
"unixTs": 1782298800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 19,
"weed_pollen": 2,
"grass_pollen": 9
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 10,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 9
},
"Others": 1
},
"timestamp": "2026-06-24T12:00:00.000Z",
"unixTs": 1782302400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 19,
"weed_pollen": 2,
"grass_pollen": 9
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 10,
"Pine": 6,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 9
},
"Others": 1
},
"timestamp": "2026-06-24T13:00:00.000Z",
"unixTs": 1782306000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 21,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T14:00:00.000Z",
"unixTs": 1782309600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 21,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T15:00:00.000Z",
"unixTs": 1782313200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 23,
"weed_pollen": 2,
"grass_pollen": 11
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 12,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 11
},
"Others": 2
},
"timestamp": "2026-06-24T16:00:00.000Z",
"unixTs": 1782316800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 21,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T17:00:00.000Z",
"unixTs": 1782320400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 23,
"weed_pollen": 2,
"grass_pollen": 11
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 12,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 11
},
"Others": 2
},
"timestamp": "2026-06-24T18:00:00.000Z",
"unixTs": 1782324000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 25,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 2
},
"timestamp": "2026-06-24T19:00:00.000Z",
"unixTs": 1782327600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 23,
"weed_pollen": 2,
"grass_pollen": 11
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 12,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 11
},
"Others": 2
},
"timestamp": "2026-06-24T20:00:00.000Z",
"unixTs": 1782331200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 21,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T21:00:00.000Z",
"unixTs": 1782334800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 23,
"weed_pollen": 2,
"grass_pollen": 11
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 12,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 11
},
"Others": 2
},
"timestamp": "2026-06-24T22:00:00.000Z",
"unixTs": 1782338400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 21,
"weed_pollen": 2,
"grass_pollen": 10
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 11,
"Pine": 7,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 2
},
"Grass": {
"Grass": 10
},
"Others": 1
},
"timestamp": "2026-06-24T23:00:00.000Z",
"unixTs": 1782342000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 24,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 1
},
"timestamp": "2026-06-25T00:00:00.000Z",
"unixTs": 1782345600
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 24,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 1
},
"timestamp": "2026-06-25T01:00:00.000Z",
"unixTs": 1782349200
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 25,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 2
},
"timestamp": "2026-06-25T02:00:00.000Z",
"unixTs": 1782352800
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 24,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 1
},
"timestamp": "2026-06-25T03:00:00.000Z",
"unixTs": 1782356400
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 25,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 2
},
"timestamp": "2026-06-25T04:00:00.000Z",
"unixTs": 1782360000
},
{
"Risk": {
"tree_pollen": "Low",
"weed_pollen": "Low",
"grass_pollen": "Low"
},
"Count": {
"tree_pollen": 24,
"weed_pollen": 3,
"grass_pollen": 12
},
"Species": {
"Tree": {
"Ash": 0,
"Elm": 0,
"Oak": 13,
"Pine": 8,
"Birch": 2,
"Maple": 0,
"Mulberry": 0,
"Poplar/Cottonwood": 0,
"Cypress/Juniper/Cedar": 0
},
"Weed": {
"Ragweed": 3
},
"Grass": {
"Grass": 12
},
"Others": 1
},
"timestamp": "2026-06-25T05:00:00.000Z",
"unixTs": 1782363600
}
]
}Sign up for an Ambee account and generate your API key from the dashboard.
Select the endpoint based on what you need: present conditions, historical data, or forecasts.
Specify the location using latitude/longitude coordinates or place names.
Include your API key in the request header and call the endpoint. You'll receive pollen counts, data, and risk classifications in JSON format.
Common questions about Ambee's pollen data
Pollen count shows the number of pollen grains that are present in the air for a standard volume.
The types of pollen allergies are classified by severity and the specific pollen type. According to allergy data, the three primary types are tree, grass, and weed allergies.
Pollen count levels range from 0 to 50,000 grains depending on the type of pollen. The safest pollen counts are when the pollen index is low. The higher the pollen index, the higher the pollen count.
API key can be copied and inserted in the tab on the Ambee dashboard to make pollen API calls. Ambee's pollen app gives you real-time pollen count without an API key.
The pollen index is a measure of the amount of pollen in the air. It indicates the concentration of pollen in a cubic meter of air. A low pollen index means low pollen levels in the air, while a high pollen index signifies high pollen levels. High pollen levels can lead to increased rates of allergic reactions for individuals with pollen allergies.
Pollen forecasts are verified through several methods. One way is to compare the forecast to actual pollen counts collected from pollen traps or air samplers. Another approach involves comparing the forecast to other sources of information about pollen levels, such as reports from other pollen monitoring stations in the same region. While these methods provide valuable insights, the most accurate verification often involves a combination of both. At Ambee, we further enhance pollen forecast accuracy by utilizing proprietary AI and ML models, ensuring maximum precision in our predictions.
You can get historical pollen count data up to 48 hours on our APIs and more than 10+ years on demand by contacting our customer service. Our historical pollen data is accurate with street level granularity. Get highly insightful data on historical pollen counts by just heading over to our API dashboard.
Allergy forecasts can be quite accurate, but their reliability can be influenced by factors like weather patterns and local conditions. At Ambee, we enhance forecast accuracy by analyzing historical pollen data from multiple stations, considering phenological factors and environmental behaviors, and leveraging proprietary AI and ML models. This approach enables our virtual pollen monitoring stations to provide reliable and accurate pollen counts by zip code, empowering you to better manage your allergies.
Ambee's pollen data achieves up to 93% correlation with ground-truth measurements through our proprietary AI models that combine satellite imagery, ground sensors, and meteorological data.
Unlike traditional pollen traps that sample limited areas and require manual counting, Ambee uses machine learning algorithms to integrate multiple data sources, providing real-time, global coverage with significantly higher spatial and temporal resolution.
We continuously validate our forecasts against a network of 1,200+ reference stations worldwide, using robust statistical methods including correlation analysis, mean absolute error, and confidence intervals.
