Skip to main content

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.

warning

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.

note

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
    • GET
    • SET
      • 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
  • 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