latitudestringrequired
WGS84 latitude of the location. Multiple coordinates can be comma-separated.
https://api.sandbase.ai/v1/api/open-meteo/air-qualityHourly air quality forecast for any coordinates: PM2.5, PM10, ozone, NO2, CO, dust, pollen and European/US AQI.
Your output will appear here
Complete the inputs, then click Run.
Hourly air quality forecast for any coordinates: PM2.5, PM10, ozone, NO2, CO, dust, pollen and European/US AQI.
The result is returned in outputs[0].data as the official Open-Meteo API response, unchanged.
curl -X POST "https://api.sandbase.ai/v1/api/open-meteo/air-quality" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude": "52.52", "longitude": "13.41", "hourly": "pm10,pm2_5", "forecast_days": 1}'
| Name | Type | Required | Description |
|---|---|---|---|
cell_selection | string | No | Grid-cell preference for the coordinate. Default nearest. |
current | string | No | Comma-separated list of current-condition variables to return. Same variable set as hourly. |
domains | string | No | Model domain. Default auto. |
end_date | string | No | End of the interval, yyyy-mm-dd (ISO 8601). |
forecast_days | integer | No | Number of forecast days to return (0-7). Default 5. |
forecast_hours | integer | No | Limit forecast to a given number of hours. |
hourly | string | No | Comma-separated list of hourly variables to return. Common values: pm10, pm2_5, carbon_monoxide, nitrogen_dioxide, sulphur_dioxide, ozone, `aerosol_ |
latitude | string | Yes | WGS84 latitude of the location. Multiple coordinates can be comma-separated. |
longitude | string | Yes | WGS84 longitude of the location (negative for the Americas). Multiple coordinates can be comma-separated. |
past_days | integer | No | Number of past days to include (0-92). Default 0. |
past_hours | integer | No | Include a given number of past hours. |
start_date | string | No | Start of the interval, yyyy-mm-dd (ISO 8601). |
timeformat | string | No | Time output format. Default iso8601. |
timezone | string | No | IANA time zone name (e.g. Europe/Berlin) or auto to resolve from coordinates. Defaults to GMT. |
Flat price per call. Failed calls are not charged.
Start building
Platform API endpoint with unified authentication and usage tracking.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/api/open-meteo/air-quality" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"hourly": "pm10,pm2_5",
"current": "european_aqi,pm2_5",
"domains": "auto",
"end_date": "2024-01-07",
"latitude": "52.52",
"timezone": "Europe/Berlin",
"longitude": "13.41",
"past_days": 0,
"start_date": "2024-01-01",
"timeformat": "iso8601",
"forecast_days": 1,
"cell_selection": "nearest"
}
SANDBASE_JSON
)
printf '%s\n' "$result"Set your SandBase API key in your server environment. Requests use Bearer authentication.
export SANDBASE_API_KEY="YOUR_API_KEY"Keep your key on the server. Do not expose it in browser code.
latitudestringrequiredWGS84 latitude of the location. Multiple coordinates can be comma-separated.
longitudestringrequiredWGS84 longitude of the location (negative for the Americas). Multiple coordinates can be comma-separated.
cell_selectionstringGrid-cell preference for the coordinate. Default `nearest`.
Default: "nearest"
Possible values: land, sea, nearest
currentstringComma-separated list of current-condition variables to return. Same variable set as `hourly`.
domainsstringModel domain. Default `auto`.
Default: "auto"
Possible values: auto, cams_europe, cams_global
end_datestringEnd of the interval, `yyyy-mm-dd` (ISO 8601).
forecast_daysintegerNumber of forecast days to return (0-7). Default 5.
Default: 5
forecast_hoursintegerLimit forecast to a given number of hours.
hourlystringComma-separated list of hourly variables to return. Common values: `pm10`, `pm2_5`, `carbon_monoxide`, `nitrogen_dioxide`, `sulphur_dioxide`, `ozone`, `aerosol_optical_depth`, `dust`, `uv_index`, `ammonia`, `european_aqi`, `us_aqi`, and pollen (`alder_pollen`, `birch_pollen`, `grass_pollen`, `mugwor
past_daysintegerNumber of past days to include (0-92). Default 0.
Default: 0
past_hoursintegerInclude a given number of past hours.
start_datestringStart of the interval, `yyyy-mm-dd` (ISO 8601).
timeformatstringTime output format. Default `iso8601`.
Default: "iso8601"
Possible values: iso8601, unixtime
timezonestringIANA time zone name (e.g. `Europe/Berlin`) or `auto` to resolve from coordinates. Defaults to `GMT`.
Saved example response for this API; no live request is made when viewing it.
No saved response has been published. Run the API in Playground to inspect its response.
Explore more
| API | Price | Response |
|---|---|---|
Open-Meteo Air QualityThis API Open-Meteo | $0.0001 per call | JSON |
Open-Meteo | $0.0001 per call | JSON |
Open-Meteo | $0.0001 per call | JSON |
Open-Meteo | $0.0001 per call | JSON |
Open-Meteo | $0.0001 per call | JSON |
Open-Meteo | $0.0001 per call | JSON |
Questions
Send a POST request to https://api.sandbase.ai/v1/api/open-meteo/air-quality with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.
$0.0001 per call. Every organization gets 100 free calls per UTC day, shared across eligible SandBase APIs including this one; after that each call is billed at this price from your SandBase balance. There is no subscription.
Required: latitude (string) and longitude (string). Optional: cell_selection (one of land, sea, nearest), current (string), domains (one of auto, cams_europe, cams_global), end_date (string), forecast_days (integer) and forecast_hours (integer) and 6 more. The Parameters table and the Playground on this page list every field.
A JSON response returned in the same HTTP request (synchronous).
No. Open-Meteo Air Quality runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Open-Meteo API access separately.