API
Air quality
Public API for air quality stations, sensors and measurements.
Documentation
The API exposes stations, sensor metadata, live readings and historical air quality measurements.
API endpoints
GET
/stations
Stations
json
Returns public active air quality stations.
Data publication metadata
Try endpoint
Endpoint
/api/public/air-quality/stations?version=v1
Request
GET /api/public/air-quality/stations
Response
[
{
"uri": "https://data.example.test/api/public/air-quality/stations#kielce-centrum",
"id": "kielce-centrum",
"provider": "syngeos",
"externalId": "10288",
"name": "Kielce Centrum",
"address": "Rynek",
"city": "Kielce",
"source": "Syngeos",
"location": {"lat": 50.870, "lon": 20.630},
"historyEnabled": true
}
]
GET
/sensors
Sensors
json
Returns sensor definitions, units, labels and display ranges.
Data publication metadata
Try endpoint
Endpoint
/api/public/air-quality/sensors?version=v1
Request
GET /api/public/air-quality/sensors
Response
[
{
"uri": "https://data.example.test/api/public/air-quality/sensors#PM10",
"code": "PM10",
"label": "PM10",
"unit": "ug/m3",
"icon": "cloud",
"sortOrder": 10,
"groupCode": "particulate-matter",
"groupOrder": 10,
"minValue": 0,
"maxValue": 100,
"fadeStartMinutes": 60,
"maxAgeMinutes": 180,
"legend": [
{"from": 0, "to": 20, "color": "#16a34a", "label": "Bardzo dobra"}
]
}
]
GET
/history/{stationId}/{sensorCode}
Historical readings
json
Returns historical readings for the selected station sensor and date range.
Data publication metadata
Try endpoint
Endpoint
/api/public/air-quality/history/{stationId}/{sensorCode}?version=v1
Parameters
| Name | Location | Type | Required | Description | example |
|---|---|---|---|---|---|
stationId |
path | string |
required | Station identifier from the /stations endpoint. | 10288 |
sensorCode |
path | string |
required | Sensor code from the /sensors endpoint, for example PM10. | PM10 |
from |
query | date |
required | Start date in YYYY-MM-DD format. | 2026-01-01 |
to |
query | date |
required | End date in YYYY-MM-DD format. | 2026-01-31 |
timezone |
query | string |
optional | Optional response date time zone, for example Europe/Warsaw. Defaults to UTC. | Europe/Warsaw |
Request
GET /api/public/air-quality/history/10288/PM10?from=2026-01-01&to=2026-01-31&timezone=Europe/Warsaw
Response
{
"readings": [
{
"readAt": "2026-01-01T12:00:00+01:00",
"value": 24.3
}
]
}
GET
/live
Live readings
json
Returns latest readings for all active stations.
Data publication metadata
Try endpoint
Endpoint
/api/public/air-quality/live?version=v1
Request
GET /api/public/air-quality/live
Response
{
"stations": [
{
"uri": "https://data.example.test/api/public/air-quality/stations#kielce-centrum",
"stationId": "kielce-centrum",
"readings": [
{"sensorUri": "https://data.example.test/api/public/air-quality/sensors#PM10", "sensorCode": "PM10", "readAt": "2026-01-01T12:00:00+01:00", "value": 24.3}
],
"error": null
}
]
}
GET
/live/{deviceId}
Live device readings
json
Returns latest readings for a single source device.
Data publication metadata
Try endpoint
Endpoint
/api/public/air-quality/live/{deviceId}?version=v1
Parameters
| Name | Location | Type | Required | Description | example |
|---|---|---|---|---|---|
deviceId |
path | string |
required | External measurement device identifier. | 10288 |
Request
GET /api/public/air-quality/live/10288
Response
{
"readings": [
{"sensorUri": "https://data.example.test/api/public/air-quality/sensors#PM10", "sensorCode": "PM10", "readAt": "2026-01-01T12:00:00+01:00", "value": 24.3}
]
}