Skip to main content
Version: Next

Clients Inspect

Available API Paths


/api/projects/{projectId}/brokers/{brokerId}/clients-inspect

The following methods are available for this path:

GET

Get a list of clients currently connected to the broker

Parameters

NameLocationTypeDescription
projectIdpathstringA project id
brokerIdpathstringA broker id
offsetqueryintegerNumber of clients to skip. Set to 0 to start at the beginning.
countqueryintegerNumber of clients which should be returned. Set -1 for all entries.
Responses

Status Description Response Content or Scheme
200 A list of currently connected clients
{
"username": {
"type": "string",
"description": "Username used for authentication, otherwise <anonymous>. [free]"
},
"clientid": {
"type": "string",
"description": "Textual identifier of the client. [free]"
},
"address": {
"type": "string",
"description": "IP address of the client as a string. [free]"
},
"protocol": {
"type": "string",
"enum": [
"MQTT",
"MQTT-SN",
"MQTT-WS"
],
"description": "Protocol used to connect to the broker. [free]"
},
"protocolVersion": {
"type": "string",
"enum": [
"v3.1",
"v3.1.1",
"v5"
],
"description": "MQTT protocol version used by the client. [free]"
},
"connected": {
"type": "boolean",
"description": "Boolean flag which describes if a client is currently connected to the broker. [premium]"
},
"lastConnect": {
"type": "integer",
"description": "Epoch in milliseconds when the client connected to broker. [premium]"
},
"lastDisconnect": {
"type": "integer",
"description": "Epoch in milliseconds when the client disconnected from broker. `null` if never disconnected before. [premium]"
},
"queues": {
"type": "object",
"description": "Metrics helping to analyze the current load on the message queues of the broker for this client. [premium]",
"properties": {
"bytesOut": {
"type": "integer",
"description": "Outgoing queued message bytes. [premium]"
},
"bytesMax": {
"type": "integer",
"description": "Maximum bytes queued. [premium]"
},
"messagesOut": {
"type": "integer",
"description": "Outgoing queued message count. [premium]"
},
"messagesMax": {
"type": "integer",
"description": "Queued message count upper limit. [premium]"
},
"pagedMessagesOut": {
"type": "integer",
"description": "Outgoing queued messages paged to disk count. [premium]"
},
"pagedMessagesMax": {
"type": "integer",
"description": "Outgoing queued messages paged to disk upper count limit. [premium]"
}
},
"additionalProperties": false
}
}
401 Unauthorized request error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
403 Request is not allowed error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
404 Resource is not found error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
405 Method not supported for this resource
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
500 Internal server error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}

/api/projects/{projectId}/brokers/{brokerId}/clients-inspect/{clientId}

The following methods are available for this path:

GET

Gets mroe detailed info about client specified by path id

Parameters

NameLocationTypeDescription
projectIdpathstringA project id
brokerIdpathstringA broker id
clientIdpathstringA client id
Responses

Status Description Response Content or Scheme
200 Detailed client info
{
"username": {
"type": "string",
"description": "Username used for authentication, otherwise `<anonymous>`. [free]"
},
"clientid": {
"type": "string",
"description": "Textual identifier of the client. [free]"
},
"address": {
"type": "string",
"description": "IP address of the client as a string. [free]"
},
"protocol": {
"type": "string",
"enum": [
"MQTT",
"MQTT-SN",
"MQTT-WS"
],
"description": "Protocol used to connect to the broker. [free]"
},
"protocolVersion": {
"type": "string",
"enum": [
"v3.1",
"v3.1.1",
"v5"
],
"description": "MQTT protocol version used by the client. [free]"
},
"numSubscriptions": {
"type": "integer",
"description": "Number of subscriptions currently active for this client. [premium]"
},
"numPublished": {
"type": "integer",
"description": "Number of published messages received from this client. [premium]"
},
"numSubscribed": {
"type": "integer",
"description": "Number of published messages sent to this client. [premium]"
},
"numDropped": {
"type": "integer",
"description": "Number of messages dropped due to queue limit for this client. [premium]"
},
"bytesPublished": {
"type": "integer",
"description": "Number of bytes in published message payloads received from this client. [premium]"
},
"bytesSubscribed": {
"type": "integer",
"description": "Number of bytes in published message payloads sent to this client. [premium]"
},
"connected": {
"type": "boolean",
"description": "Boolean flag which describes if a client is currently connected to the broker [premium]"
},
"lastConnect": {
"type": "integer",
"description": "Epoch in milliseconds when the client connected to broker [premium]"
},
"lastDisconnect": {
"oneOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Epoch in milliseconds when the client disconnected from broker. `null` if never disconnected before. [premium]"
},
"keepalive": {
"type": "integer",
"description": "Keep alive in seconds configured for this client [premium]"
},
"cleanSession": {
"type": "boolean",
"description": "Set to `true` if the broker will reset the session, when the client reconnects. [premium]"
},
"tls": {
"type": "object",
"description": "Encryption details, if the client used certificates for connecting. [premium]"
},
"properties": {
"clientCertificate": {
"type": "string",
"description": "Client certificate in PEM format. [premium]"
},
"version": {
"type": "string",
"description": "SSL/TLS version used",
"example": "TLSv1.3"
},
"ciphers": {
"type": "string",
"description": "TLS ciphers used for the secure connection.",
"example": "TLS_AES_256_GCM_SHA384"
}
},
"listener": {
"type": "object",
"description": "Details about the brokers listener the client connected to. [premium]",
"properties": {
"port": {
"type": "integer",
"description": "Port of the brokers listener, the client is connected to. [premium]"
},
"bind_address": {
"type": "string",
"description": "If specified, the listeners IP address it is bound to. [premium]",
"example": "127.0.0.1"
}
}
},
"will": {
"type": "object",
"description": "Details about the last will message if set during the connect request. [premium]",
"properties": {
"topic": {
"type": "string",
"description": "Topic where the last will message will be published on. [premium]"
},
"qos": {
"type": "integer",
"description": "QOS of the publish. [premium]"
},
"retain": {
"type": "boolean",
"description": "Boolean retained message flag. [premium]"
},
"payload": {
"type": "string",
"description": "Base64 encoded message payload. [premium]"
},
"properties": {
"type": "array",
"description": " MQTT5 properties of the message. [premium]",
"items": {
"type": "object",
"properties": {
"identifier": {
"type": "string"
},
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"identifier",
"value"
]
},
"delayInterval": {
"type": "integer",
"description": "Delay before publishing the message. [premium]"
}
}
}
},
"subscriptions": {
"type": "array",
"description": "List of topic filter (may include `#` wildcards) a client subscribed to. [premium]",
"items": {
"type": "string"
}
},
"queues": {
"type": "object",
"description": "Metrics helping to analyze the current load on the message queues of the broker for this client [premium]",
"properties": {
"bytesIn": {
"type": "integer",
"description": "Incoming queued message bytes. [premium]"
},
"bytesOut": {
"type": "integer",
"description": "Outgoing queued message bytes. [premium]"
},
"bytesMax": {
"type": "integer",
"description": "Maximum bytes queued. [premium]"
},
"messagesIn": {
"type": "integer",
"description": "Incoming queued message count. [premium]"
},
"messagesMax": {
"type": "integer",
"description": "Queued message count upper limit. [premium]"
},
"messagesInQos12": {
"type": "integer",
"description": "Incoming queued messages with QOS 1 or 2. [premium]"
},
"messagesOut": {
"type": "integer",
"description": "Outgoing queued message count. [premium]"
},
"messagesOutQos12": {
"type": "integer",
"description": "Outgoing queued messages with QOS 1 or 2. [premium]"
},
"pagedMessagesOut": {
"type": "integer",
"description": "Outgoing queued messages paged to disk count. [premium]"
},
"pagedMessagesMax": {
"type": "integer",
"description": "Outgoing queued messages paged to disk count upper limit. [premium]"
}
}
},
"inflight": {
"type": "object",
"description": "Metrics helping to analyze the current load on the messages currently processed by the broker for this client [premium]",
"properties": {
"bytesIn": {
"type": "integer",
"description": "Incoming inflight message bytes. [premium]"
},
"bytesOut": {
"type": "integer",
"description": "Outgoing inflight message bytes. [premium]"
},
"bytesMax": {
"type": "integer",
"description": "Inflight message bytes upper limit. [premium]"
},
"messagesIn": {
"type": "integer",
"description": "Incoming inflight message count. [premium]"
},
"messagesInMax": {
"type": "integer",
"description": "Limit for number of incoming inflight messages. [premium]"
},
"messagesOut": {
"type": "integer",
"description": "Outgoing inflight message count. [premium]"
},
"messagesOutMax": {
"type": "integer",
"description": "Limit for number of outgoing inflight messages. [premium]"
},
"messagesMax": {
"type": "integer",
"description": "Inflight message count upper limit. [premium]"
}
}
}
}
401 Unauthorized request error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
403 Request is not allowed error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
404 Resource is not found error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
405 Method not supported for this resource
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}
500 Internal server error
{
"message": {
"type": "string",
"description": "A descriptive error message"
},
"code": {
"type": "string",
"description": "A textual error code"
},
"status": {
"type": "integer",
"description": "A corresponding HTML status code"
},
"info": {
"type": "object",
"description": "An optional info object containing error dependent information"
}
}