MQTT Broker System Topics ($SYS)

The Intelligence Hub broker publishes a set of $SYS topics that expose internal broker state in real time. $SYS is not part of the MQTT specification, but is a widely used broker convention supported by brokers such as Mosquitto and HiveMQ.

Status topics are refreshed every 10 seconds and published as retained messages, so clients receive the current value immediately upon subscribing. Subscribing to $SYS/# returns all system topics at once.

Status Topics

The following read-only topics expose live broker state.

TopicTypeDescription
$SYS/broker/productInfoStringProduct name and version.
$SYS/broker/messageInfoJSON objectMessage and byte throughput counters.
$SYS/broker/clientInfo/countJSON numberNumber of active client sessions.
$SYS/broker/clientInfo/sessionsJSON objectAll active sessions, keyed by clientId.
$SYS/broker/clientInfo/sessions/<clientId>JSON objectSession detail for a specific client.
$SYS/broker/topicInfo/countJSON numberNumber of tracked public topics.
$SYS/broker/topicInfo/topics/<topicName>JSON objectMetadata about a specific topic.

$SYS/broker/productInfo

A plain string containing the product name and version.

Example payload:

HighByte IntelligenceHub 4.5.0

$SYS/broker/messageInfo

Message and byte throughput counters since broker start-up.

FieldTypeDescription
messagesReceivednumberTotal messages received from clients.
messagesSentnumberTotal messages sent to clients.
messagesRetainednumberNumber of retained messages currently stored by the broker.
bytesRetainednumberTotal bytes of retained messages currently stored.
messagesCachednumberNumber of messages currently cached for delivery.
bytesCachednumberTotal bytes of messages currently cached for delivery.

Example payload:

{
  "messagesReceived": 0,
  "messagesSent": 42,
  "messagesRetained": 6,
  "bytesRetained": 863,
  "messagesCached": 51,
  "bytesCached": 8314
}

$SYS/broker/clientInfo/count

A single JSON number representing the count of active client sessions.

4

$SYS/broker/clientInfo/sessions

A JSON object containing all active client sessions, keyed by clientId.

FieldTypeDescription
clientIdstringThe MQTT client identifier.
sessionIdstringA unique identifier for this session instance.
cleanSessionbooleanWhether the client connected with the clean session flag set.
createdTimestringISO 8601 timestamp when the session was created.
messagesReceivednumberTotal messages received from this client during the session.
bytesReceivednumberTotal bytes received from this client during the session.
messagesSentnumberTotal messages sent to this client during the session.
bytesSentnumberTotal bytes sent to this client during the session.
isConnectedbooleanWhether the client is currently connected.
endpointAddressstringThe client’s remote IP address and port.
sessionAgenumberSeconds elapsed since the session was established.
subscriptionFiltersarrayTopic filters to which the client is currently subscribed.

Example payload:

{
  "my-client": {
    "clientId": "my-client",
    "sessionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "cleanSession": true,
    "createdTime": "2026-05-27T19:31:11.533154319Z",
    "messagesReceived": 0,
    "bytesReceived": 57,
    "messagesSent": 12,
    "bytesSent": 732,
    "isConnected": true,
    "endpointAddress": "/192.168.1.100:52400",
    "sessionAge": 9,
    "subscriptionFilters": ["#", "$SYS/#"]
  }
}

$SYS/broker/clientInfo/sessions/<clientId>

The same schema as an individual entry in $SYS/broker/clientInfo/sessions, scoped to a single client.

$SYS/broker/topicInfo/count

A single JSON number representing the count of public topics tracked since broker start-up.

127

$SYS/broker/topicInfo/topics/<topicName>

Metadata about a specific public topic, including the last publisher and message properties.

FieldTypeDescription
topicstringThe full topic name.
timestringISO 8601 timestamp of the last message published to the topic.
clientIdstringClient ID of the last publisher.
qosnumberQoS level of the last message (0, 1, or 2).
retainbooleanWhether the last message was published with the retain flag.

Example payload for $SYS/broker/topicInfo/topics/sensors/plant1/temperature:

{
  "topic": "sensors/plant1/temperature",
  "time": "2026-05-27T14:35:02.000Z",
  "clientId": "edge-gateway-01",
  "qos": 0,
  "retain": false
}

Command Topics

Publishing to a command topic triggers a broker action. The payload content is ignored — any payload will activate the command.

TopicDescriptionAuth Required
$SYS/broker/command/reset/retainedClears all retained messages in the public namespace (#). $SYS messages are not affected.Yes
$SYS/broker/command/reset/topicInfoClears all retained messages under $SYS/broker/topicInfo.Yes

Use Cases

Monitoring connected clients

Subscribe to $SYS/broker/clientInfo/sessions to see all connected clients and their subscription filters in real time. The subscriptionFilters field shows exactly which topics each client is monitoring.

Discovering who publishes to a topic

Subscribe to $SYS/broker/topicInfo/topics/# to see metadata for every topic active since broker start-up, including the last publisher (clientId), QoS, and retain flag. This is the recommended approach for auditing what is being published and by whom.

Broker health monitoring

Subscribe to $SYS/broker/messageInfo to track message and byte throughput over time. Because status topics are retained, a single subscribe returns the current snapshot immediately without waiting for the next 10-second refresh.