Air quality monitor
This API is based on the Device Configuration API framework. For guidance on how to use these APIs, please refer to the Device Configuration APIs section in the VAPIX Library.
This API is in BETA stage. The API is provided for testing purposes and is subject to backward-incompatible changes, including modifications to functionality, behavior, and availability. Please don't use in production environment.
The Air Quality Monitor API enables applications and users to monitor air quality parameters(e.g., temperature, humidity, particulate matter, carbon dioxide) using product-specific sensors. It also allows users to set acceptable ranges for each parameter. If a measurement exceeds these ranges, an event is triggered in the Axis event system.
Additionally, users can query and download the historical data for analysis with Air quality monitor API.
This API is optional and may not be present on all products. Check the products listed under compatible products to determine API support.
Use cases
Configure parameters
List or update the value of the specified parameter.
Get all configurations
List all configurations and their value.
GET /config/rest/airqualitymonitor/v1beta/configurations HTTP/1.1
HOST: my-device
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": [
{
"cloudMetadataEnable": false,
"cloudMetadataFrequency": 1,
"dashboardItems": {
"hidden": [],
"visible": [
"TEMPERATURE",
"HUMIDITY",
"CO2",
"NOX",
"PM1_0",
"PM2_5",
"PM4_0",
"PM10_0",
"VAPING",
"VOC",
"AQI"
]
},
"dashboardTitle": "Dashboard",
"maxAqi": 500,
"maxCo2": 40000,
"maxHumidity": 100,
"maxNox": 500,
"maxPm10p0": 1000,
"maxPm1p0": 1000,
"maxPm2p5": 1000,
"maxPm4p0": 1000,
"maxTemperature": 45,
"maxVoc": 500,
"minAqi": 0,
"minCo2": 0,
"minHumidity": 0,
"minNox": 0,
"minPm10p0": 0,
"minPm1p0": 0,
"minPm2p5": 0,
"minPm4p0": 0,
"minTemperature": -10,
"minVoc": 0,
"sensorId": "My-SensorId",
"storageEnable": true,
"storageMode": 1,
"temperatureScale": "CELSIUS",
"validationPeriodAqi": 0,
"validationPeriodCo2": 0,
"validationPeriodHumidity": 0,
"validationPeriodNox": 0,
"validationPeriodPm10p0": 0,
"validationPeriodPm1p0": 0,
"validationPeriodPm2p5": 0,
"validationPeriodPm4p0": 0,
"validationPeriodTemperature": 0,
"validationPeriodVaping": 0,
"validationPeriodVoc": 0,
"vapeSensitivity": 3
}
]
}
Set all configurations
Update all configurations with the new values.
PATCH /config/rest/airqualitymonitor/v1beta/configurations/My-SensorId HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": {
"cloudMetadataEnable": true,
"cloudMetadataFrequency": 60,
"dashboardItems": {
"hidden": [
"PM1_0",
"PM2_5",
"PM4_0",
"PM10_0"
],
"visible": [
"TEMPERATURE",
"HUMIDITY",
"CO2",
"NOX",
"VAPING",
"VOC",
"AQI"
]
},
"dashboardTitle": "newDashboard",
"maxAqi": 111,
"maxCo2": 11111,
"maxHumidity": 66,
"maxNox": 5,
"maxPm10p0": 55,
"maxPm1p0": 99,
"maxPm2p5": 9,
"maxPm4p0": 89,
"maxTemperature": 40,
"maxVoc": 321,
"minAqi": 1,
"minCo2": 27,
"minHumidity": 64,
"minNox": 37,
"minPm10p0": 555,
"minPm1p0": 777,
"minPm2p5": 96,
"minPm4p0": 45,
"minTemperature": -1,
"minVoc": 4,
"storageEnable": false,
"storageMode": 2,
"temperatureScale": "FAHRENHEIT",
"validationPeriodAqi": 1,
"validationPeriodCo2": 2,
"validationPeriodHumidity": 3,
"validationPeriodNox": 4,
"validationPeriodPm10p0": 5,
"validationPeriodPm1p0": 6,
"validationPeriodPm2p5": 7,
"validationPeriodPm4p0": 8,
"validationPeriodTemperature": 9,
"validationPeriodVaping": 10,
"validationPeriodVoc": 11,
"vapeSensitivity": 5
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success"
}
Get a single configuration
List a single configuration and it's value.
GET /config/rest/airqualitymonitor/v1beta/configurations/My-SensorId/dashboardTitle HTTP/1.1
HOST: my-device
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": "Dashboard"
}
Set a single configuration
Update a single configuration with the new value.
PATCH /config/rest/airqualitymonitor/v1beta/configurations/My-SensorId/dashboardTitle HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": "newDashboard"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success"
}
List sensors
List the status of the environmental sensor, check type name and whether the senor is connected.
Get all sensors status
List type name and connection status of the air quality sensors.
GET /config/rest/airqualitymonitor/v1beta/sensors HTTP/1.1
HOST: my-device
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": [
{
"connected": true,
"defaultSensor": true,
"type": "d6210",
"sensorId": "My-SensorId"
}
]
}
Get history data
Get the historical sensor measurement based on a start- and end-time.
POST /config/rest/airqualitymonitor/v1beta/sensors/My-SensorId/getHistoryData HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": {
"category": "PM2_5",
"startTime": 1730186422,
"endTime": 1730186542
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": {
"measurement": [
3.4,
3.3,
3.3,
3.2
],
"timestamp": [
1730186440,
1730186471,
1730186502,
1730186533
]
}
}
Get vaping record
Get the timestamp when vaping happened based on a start- and end-time.
POST /config/rest/airqualitymonitor/v1beta/sensors/My-SensorId/getVapingRecord HTTP/1.1
HOST: my-device
Content-Type: application/json
{
"data": {
"startTime": 1732015630,
"endTime": 1732525760
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": {
"timestamp": [
1732525635,
1732525666,
1732525697,
1732525728,
1732525759
]
}
}
API definition
Structure
airqualitymonitor.v1 (Root Entity)
├── configurations (Entity Collection)
├── cloudMetadataEnable (Property)
├── cloudMetadataFrequency (Property)
├── dashboardItems (Property)
├── dashboardTitle (Property)
├── maxAqi (Property)
├── maxCo2 (Property)
├── maxHumidity (Property)
├── maxNox (Property)
├── maxPm10p0 (Property)
├── maxPm1p0 (Property)
├── maxPm2p5 (Property)
├── maxPm4p0 (Property)
├── maxTemperature (Property)
├── maxVoc (Property)
├── minAqi (Property)
├── minCo2 (Property)
├── minHumidity (Property)
├── minNox (Property)
├── minPm10p0 (Property)
├── minPm1p0 (Property)
├── minPm2p5 (Property)
├── minPm4p0 (Property)
├── minTemperature (Property)
├── minVoc (Property)
├── sensorId (Property)
├── storageEnable (Property)
├── storageMode (Property)
├── temperatureScale (Property)
├── validationPeriodAqi (Property)
├── validationPeriodCo2 (Property)
├── validationPeriodHumidity (Property)
├── validationPeriodNox (Property)
├── validationPeriodPm10p0 (Property)
├── validationPeriodPm1p0 (Property)
├── validationPeriodPm2p5 (Property)
├── validationPeriodPm4p0 (Property)
├── validationPeriodTemperature (Property)
├── validationPeriodVaping (Property)
├── validationPeriodVoc (Property)
├── vapeSensitivity (Property)
├── sensors (Entity Collection)
├── connected (Property)
├── defaultSensor (Property)
├── sensorId (Property)
├── type (Property)
├── getHistoryData (Action)
├── getVapingRecord (Action)
Entities
airqualitymonitor.v1
- Description: Air quality monitor root entity
- Type: Singleton
- Operations
GET
- Attributes
- Dynamic Support: No
Properties
This entity has no properties.
Actions
This entity has no actions.
airqualitymonitor.v1.configurations
- Description: Configuration of air quality monitor
- Type: Collection (Key Property:
sensorId) - Operations
GETSET- Properties:
cloudMetadataEnable,cloudMetadataFrequency,dashboardItems,dashboardTitle,maxAqi,maxCo2,maxHumidity,maxNox,maxPm10p0,maxPm1p0,maxPm2p5,maxPm4p0,maxTemperature,maxVoc,minAqi,minCo2,minHumidity,minNox,minPm10p0,minPm1p0,minPm2p5,minPm4p0,minTemperature,minVoc,sensorId,storageEnable,storageMode,temperatureScale,validationPeriodAqi,validationPeriodCo2,validationPeriodHumidity,validationPeriodNox,validationPeriodPm10p0,validationPeriodPm1p0,validationPeriodPm2p5,validationPeriodPm4p0,validationPeriodTemperature,validationPeriodVaping,validationPeriodVoc,vapeSensitivity
- Properties:
- Attributes
- Dynamic Support: No
Properties
cloudMetadataEnable
- Description: Cloud metadata enable
- Datatype: boolean
- Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
cloudMetadataFrequency
- Description: Cloud metadata frequency
- Datatype:
CloudMetadataFrequency - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
dashboardItems
- Description: Dashboard items
- Datatype:
DashboardItems - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
dashboardTitle
- Description: Dashboard title
- Datatype: string
- Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxAqi
- Description: Maximum AQI
- Datatype:
Aqi - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxCo2
- Description: Maximum CO2
- Datatype:
Co2 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxHumidity
- Description: Maximum humidity
- Datatype:
Humidity - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxNox
- Description: Maximum NOx
- Datatype:
Nox - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxPm10p0
- Description: Maximum PM10.0
- Datatype:
Pm10p0 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxPm1p0
- Description: Maximum PM1.0
- Datatype:
Pm1p0 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxPm2p5
- Description: Maximum PM2.5
- Datatype:
Pm2p5 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxPm4p0
- Description: Maximum PM4.0
- Datatype:
Pm4p0 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxTemperature
- Description: Maximum temperature
- Datatype:
Temperature - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
maxVoc
- Description: Maximum VOC
- Datatype:
Voc - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minAqi
- Description: Minimum AQI
- Datatype:
Aqi - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minCo2
- Description: Minimum CO2
- Datatype:
Co2 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minHumidity
- Description: Minimum humidity
- Datatype:
Humidity - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minNox
- Description: Minimum NOx
- Datatype:
Nox - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minPm10p0
- Description: Minimum PM10.0
- Datatype:
Pm10p0 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minPm1p0
- Description: Minimum PM1.0
- Datatype:
Pm1p0 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minPm2p5
- Description: Minimum PM2.5
- Datatype:
Pm2p5 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minPm4p0
- Description: Minimum PM4.0
- Datatype:
Pm4p0 - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minTemperature
- Description: Minimum temperature
- Datatype:
Temperature - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
minVoc
- Description: Minimum VOC
- Datatype:
Voc - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
sensorId
- Description: Sensor ID
- Datatype:
SensorId - Operations
GET(Permissions: admin, operator, viewer)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
storageEnable
- Description: Storage enable
- Datatype: boolean
- Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
storageMode
- Description: Storage mode
- Datatype:
StorageMode - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
temperatureScale
- Description: Temperature scale unit
- Datatype:
TemperatureScaleUnit - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodAqi
- Description: Validation period AQI
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodCo2
- Description: Validation period CO2
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodHumidity
- Description: Validation period humidity
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodNox
- Description: Validation period NOx
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodPm10p0
- Description: Validation period PM10.0
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodPm1p0
- Description: Validation period PM1.0
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodPm2p5
- Description: Validation period PM2.5
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodPm4p0
- Description: Validation period PM4.0
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodTemperature
- Description: Validation period temperature
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodVaping
- Description: Validation period vaping
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
validationPeriodVoc
- Description: Validation period VOC
- Datatype:
ValidationPeriod - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
vapeSensitivity
- Description: Vape sensitivity
- Datatype:
VapeSensitivity - Operations
GET(Permissions: admin, operator, viewer)SET(Permissions: admin)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions
This entity has no actions.
airqualitymonitor.v1.sensors
- Description: Status of air quality sensor
- Type: Collection (Key Property:
sensorId) - Operations
GET
- Attributes
- Dynamic Support: No
Properties
connected
- Description: Sensor connection status
- Datatype: boolean
- Operations
GET(Permissions: admin, operator, viewer)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
defaultSensor
- Description: True if it's a default sensor
- Datatype: boolean
- Operations
GET(Permissions: admin, operator, viewer)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
sensorId
- Description: Sensor ID
- Datatype:
SensorId - Operations
GET(Permissions: admin, operator, viewer)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
type
- Description: Sensor type name
- Datatype: string
- Operations
GET(Permissions: admin, operator, viewer)
- Attributes
- Nullable: No
- Dynamic Support: No / Dynamic Enum: No / Dynamic Range: No
Actions
getHistoryData
- Description: Get historical sensor measurement based on a start-time and end-time
- Request Datatype:
GetHistoryDataRequest - Response Datatype:
GetHistoryDataResponse - Trigger Permissions: admin, operator
- Attributes
- Dynamic Support: No
getVapingRecord
- Description: Get the timestamp when vaping happened based on a start-time and end-time
- Request Datatype:
GetVapingRecordRequest - Response Datatype:
GetVapingRecordResponse - Trigger Permissions: admin, operator
- Attributes
- Dynamic Support: No