Ambee Weather API
Hyperlocal micro-weather including temperature, humidity, wind, pressure, precipitation, UV index, and cloud cover by latitude/longitude, with latest, historical, and forecast endpoints.
Hyperlocal micro-weather including temperature, humidity, wind, pressure, precipitation, UV index, and cloud cover by latitude/longitude, with latest, historical, and forecast endpoints.
openapi: 3.0.1
info:
title: Ambee API
description: >-
Ambee's environmental-intelligence REST API delivers hyperlocal air quality,
pollen, weather, wildfire, soil, and NDVI/vegetation data worldwide. All
requests are authenticated with an API key sent in the `x-api-key` header and
are scoped by latitude/longitude, postal code, city, country code, or place
name. Responses are JSON envelopes containing a `message` and `data` payload.
termsOfService: https://www.getambee.com/terms-and-conditions
contact:
name: Ambee Support
url: https://www.getambee.com/contact-us
version: '1.0'
servers:
- url: https://api.ambeedata.com
security:
- ApiKeyAuth: []
tags:
- name: Air Quality
- name: Pollen
- name: Weather
- name: Fire
- name: Soil
- name: NDVI
paths:
/latest/by-lat-lng:
get:
operationId: getAirQualityLatestByLatLng
tags:
- Air Quality
summary: Latest air quality by latitude and longitude
description: Returns the most recent air quality reading (AQI and pollutant concentrations) for a coordinate.
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AirQualityResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/latest/by-city:
get:
operationId: getAirQualityLatestByCity
tags:
- Air Quality
summary: Latest air quality by city
parameters:
- name: city
in: query
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AirQualityResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/latest/by-postal-code:
get:
operationId: getAirQualityLatestByPostalCode
tags:
- Air Quality
summary: Latest air quality by postal code
parameters:
- name: postalCode
in: query
required: true
schema:
type: string
- name: countryCode
in: query
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AirQualityResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/history/by-lat-lng:
get:
operationId: getAirQualityHistoryByLatLng
tags:
- Air Quality
summary: Historical air quality by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AirQualityResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/forecast/aq/by-lat-lng:
get:
operationId: getAirQualityForecastByLatLng
tags:
- Air Quality
summary: Air quality forecast by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AirQualityResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/latest/pollen/by-lat-lng:
get:
operationId: getPollenLatestByLatLng
tags:
- Pollen
summary: Latest pollen by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PollenResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/latest/pollen/by-place:
get:
operationId: getPollenLatestByPlace
tags:
- Pollen
summary: Latest pollen by place
parameters:
- $ref: '#/components/parameters/place'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PollenResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/history/pollen/by-lat-lng:
get:
operationId: getPollenHistoryByLatLng
tags:
- Pollen
summary: Historical pollen by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PollenResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/forecast/pollen/by-lat-lng:
get:
operationId: getPollenForecastByLatLng
tags:
- Pollen
summary: Pollen forecast by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PollenResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/forecast/v2/pollen/120hr/by-lat-lng:
get:
operationId: getPollen120hrForecastByLatLng
tags:
- Pollen
summary: 120-hour pollen forecast by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PollenResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/weather/latest/by-lat-lng:
get:
operationId: getWeatherLatestByLatLng
tags:
- Weather
summary: Latest weather by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
- name: units
in: query
required: false
schema:
type: string
enum: [si, us]
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WeatherResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/weather/history/by-lat-lng:
get:
operationId: getWeatherHistoryByLatLng
tags:
- Weather
summary: Historical weather by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WeatherResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/weather/forecast/by-lat-lng:
get:
operationId: getWeatherForecastByLatLng
tags:
- Weather
summary: Weather forecast by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WeatherResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/fire/latest/by-lat-lng:
get:
operationId: getFireLatestByLatLng
tags:
- Fire
summary: Active wildfires by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/FireResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/fire/risk/by-lat-lng:
get:
operationId: getFireRiskByLatLng
tags:
- Fire
summary: Fire risk by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/FireResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/soil/latest/by-lat-lng:
get:
operationId: getSoilLatestByLatLng
tags:
- Soil
summary: Latest soil data by latitude and longitude
description: Returns soil temperature and soil moisture at standard depths for a coordinate.
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SoilResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/soil/history/by-lat-lng:
get:
operationId: getSoilHistoryByLatLng
tags:
- Soil
summary: Historical soil data by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SoilResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/ndvi/latest/by-lat-lng:
get:
operationId: getNdviLatestByLatLng
tags:
- NDVI
summary: Latest NDVI by latitude and longitude
description: Returns the most recent Normalized Difference Vegetation Index (NDVI/EVI) value for a coordinate.
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NdviResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/ndvi/history/by-lat-lng:
get:
operationId: getNdviHistoryByLatLng
tags:
- NDVI
summary: Historical NDVI by latitude and longitude
parameters:
- $ref: '#/components/parameters/lat'
- $ref: '#/components/parameters/lng'
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NdviResponse'
'401':
$ref: '#/components/responses/Unauthorized'
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
parameters:
lat:
name: lat
in: query
required: true
description: Latitude of the location.
schema:
type: number
format: float
lng:
name: lng
in: query
required: true
description: Longitude of the location.
schema:
type: number
format: float
place:
name: place
in: query
required: true
description: Place or location name to resolve.
schema:
type: string
responses:
Unauthorized:
description: Invalid or missing API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
message:
type: string
example: Invalid API Key
AirQualityReading:
type: object
properties:
CO:
type: number
NO2:
type: number
OZONE:
type: number
PM10:
type: number
PM25:
type: number
SO2:
type: number
AQI:
type: integer
aqiInfo:
type: object
properties:
pollutant:
type: string
concentration:
type: number
category:
type: string
lat:
type: number
lng:
type: number
updatedAt:
type: string
format: date-time
AirQualityResponse:
type: object
properties:
message:
type: string
example: success
stations:
type: array
items:
$ref: '#/components/schemas/AirQualityReading'
PollenCount:
type: object
properties:
grass_pollen:
type: integer
tree_pollen:
type: integer
weed_pollen:
type: integer
PollenRisk:
type: object
properties:
grass_pollen:
type: string
tree_pollen:
type: string
weed_pollen:
type: string
PollenData:
type: object
properties:
time:
type: integer
lat:
type: number
lng:
type: number
Count:
$ref: '#/components/schemas/PollenCount'
Risk:
$ref: '#/components/schemas/PollenRisk'
updatedAt:
type: string
format: date-time
PollenResponse:
type: object
properties:
message:
type: string
example: success
lat:
type: number
lng:
type: number
data:
type: array
items:
$ref: '#/components/schemas/PollenData'
WeatherData:
type: object
properties:
time:
type: integer
summary:
type: string
icon:
type: string
temperature:
type: number
apparentTemperature:
type: number
dewPoint:
type: number
humidity:
type: number
pressure:
type: number
windSpeed:
type: number
windGust:
type: number
windBearing:
type: number
cloudCover:
type: number
uvIndex:
type: number
visibility:
type: number
ozone:
type: number
precipIntensity:
type: number
precipProbability:
type: number
precipType:
type: string
WeatherResponse:
type: object
properties:
message:
type: string
example: success
lat:
type: number
lng:
type: number
data:
$ref: '#/components/schemas/WeatherData'
FireEvent:
type: object
properties:
lat:
type: number
lng:
type: number
confidence:
type: number
brightness:
type: number
frp:
type: number
detectedAt:
type: string
format: date-time
satellite:
type: string
FireResponse:
type: object
properties:
message:
type: string
example: success
data:
type: array
items:
$ref: '#/components/schemas/FireEvent'
SoilData:
type: object
properties:
time:
type: integer
soilTemperature:
type: number
soilMoisture:
type: number
depth:
type: string
unit:
type: string
SoilResponse:
type: object
properties:
message:
type: string
example: success
lat:
type: number
lng:
type: number
data:
type: array
items:
$ref: '#/components/schemas/SoilData'
NdviData:
type: object
properties:
time:
type: integer
ndvi:
type: number
evi:
type: number
NdviResponse:
type: object
properties:
message:
type: string
example: success
lat:
type: number
lng:
type: number
data:
type: array
items:
$ref: '#/components/schemas/NdviData'