Subscribe Topics

Overview

Subscribe topics let a Device listen for state changes pushed by the server. Each topic mirrors the equivalent HTTPS API, so the payload on any topic matches the response of the matching HTTPS endpoint.

The sections below list every supported subscribe topic and the HTTPS API that defines its payload schema.

❗️

Don't miss the Sync topics section at the end — it covers how to recover after a reconnect.

Subscription topics

Command

Topic: v1/device/{DEVICE_ID}/command

Pushes the next pending Command. Payload matches the Get Command API response.

Command with children

Topic: v1/device/{DEVICE_ID}/command/children

Pushes the next pending Command for each of the Device's child Devices. Payload matches the Get Commands with Children API response.

Configuration

Topic: v1/device/{DEVICE_ID}/config

Pushes Configuration updates. Payload matches the Get Config API response.

Licenses

Topic: v1/device/{DEVICE_ID}/license

Pushes Licenses that require Device action (add, update, or remove). Payload is an array, matching the Get Licenses API response.

Space

Topic: v1/device/{DEVICE_ID}/space_info

Pushes changes to the Device's Space configuration. Payload matches the Get Space Info API response.

Incidents

Topic: v1/device/{DEVICE_ID}/incidents

Pushes newly created Incidents. Payload is an array, matching the Get Incidents API response.

New firmware available

Topic: v1/device/{DEVICE_ID}/firmware

Pushes a notification whenever the manufacturer uploads a Firmware file with a version higher than the Device's current reported version.

{  
  latest_fw_version: '1.0.5',  
  latest_fw_file_id: '9266cb1b-fc23-4e76-b622-cc1fd4389549'  
}

APIs without an MQTT topic

Some endpoints have no MQTT subscription and must be called over HTTPS:


Sync topics

If a Device is offline or unsubscribed when the server pushes an update (Command, License, etc.), it will miss that message. To recover, the Device can ask the server to re-publish all currently pending state.

After every reconnect or power cycle, an MQTT Device should:

  1. Subscribe to every relevant topic.
  2. Publish any message to v1/device/{DEVICE_ID}/get.

The server then re-publishes the current state on the matching topics.