# Open-Meteo Air Quality API

> Hourly air quality forecast for any coordinates: PM2.5, PM10, ozone, NO2, CO, dust, pollen and European/US AQI.

Source: https://www.sandbase.ai/apis/open-meteo/air-quality
API reference: https://www.sandbase.ai/apis/open-meteo/air-quality/docs

## Facts

- Provider: Open-Meteo
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/open-meteo/air-quality`
- Price: $0.0001 per call
- Free allowance: 100 calls per organization per UTC day, shared across eligible APIs
- Capabilities: api, open meteo, weather
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/open-meteo/air-quality` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `latitude` | string | yes |  |
| `longitude` | string | yes |  |
| `cell_selection` | string | no | land, sea, nearest |
| `current` | string | no |  |
| `domains` | string | no | auto, cams_europe, cams_global |
| `end_date` | string | no |  |
| `forecast_days` | integer | no |  |
| `forecast_hours` | integer | no |  |
| `hourly` | string | no |  |
| `past_days` | integer | no |  |
| `past_hours` | integer | no |  |
| `start_date` | string | no |  |
| `timeformat` | string | no | iso8601, unixtime |
| `timezone` | string | no |  |

## FAQ

### How do I use the Open-Meteo Air Quality API?

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.

### How much does the Open-Meteo Air Quality API cost?

$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.

### What parameters does the Open-Meteo Air Quality API accept?

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.

### What does the Open-Meteo Air Quality API return?

A JSON response returned in the same HTTP request (synchronous).

### Do I need a Open-Meteo developer account or API key?

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.

## README

### Open-Meteo Air Quality API

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.

#### Request

```bash
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}'
```

#### Parameters

| 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`. |

#### Pricing

Flat price per call. Failed calls are not charged.
