Viewer List
Returns a paginated list of active viewers/connections.
Request
| Property | Value |
|---|---|
| Method | GET |
| URL | /api/viewers |
| Content-Type | application/json |
| Authentication | Bearer Token |
Request
curl -X GET "{BASE_URL}/api/viewers" \
-H "Authorization: Bearer YOUR_TOKEN"
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| page | integer | No | 1 | Page number |
| rowsPerPage | integer | No | 10 | Number of items per page |
| search | string | No | - | Filter results by search term |
| harnessType | string | No | - | Filter by harness type (see allowed values below) |
| systemClients | "true" | "false" | No | - | Include system clients |
Allowed values for harnessType
"STORM_MSE_VIEWER""STORM_HLS_VIEWER""CLUSTER_DATA_CLIENT""GENERIC_HLS_VIEWER""GENERIC_DASH_VIEWER""RTMP_VIEWER""RTMP_PUSH""TRANSCODER""FILE_WRITER"
With query parameters
curl -X GET "{BASE_URL}/api/viewers" \
-H "Authorization: Bearer YOUR_TOKEN"
Response Body
Pagination
| Parameter | Type | Description |
|---|---|---|
data.totalItems | integer | Total number of viewers |
data.itemsPerPage | integer | Number of items per page |
data.totalPages | integer | Total number of pages |
data.currentPage | integer | Current page number |
data.hasPrevious | boolean | Indicates if a previous page exists |
data.hasNext | boolean | Indicates if a next page exists |
data.list | array | Array of viewer objects |
Viewer
| Parameter | Type | Description |
|---|---|---|
data.list[].id | string | Unique identifier of the viewer session |
data.list[].state | string | Connection state |
data.list[].class | string | ??? |
data.list[].pipelineType | string | Pipeline type |
data.list[].harnessType | string | Harness type |
data.list[].applicationName | string | Application name |
data.list[].streamKey | string | Stream key being viewed |
data.list[].subStream | string | Sub-stream variant |
data.list[].remoteAddress | string | Client IP address |
data.list[].deviceType | string | Device type. Possible values: "MOBILE", "TABLET", "DESKTOP" |
data.list[].osName | string | Operating system name |
data.list[].browserName | string | Browser name |
data.list[].startTime | integer | Connection start time (Unix timestamp in ms) |
data.list[].duration | integer | Connection duration in milliseconds |
data.list[].inBandwidth | integer | Incoming bandwidth transfer speed |
data.list[].outBandwidth | integer | Outgoing bandwidth transfer speed |
data.list[].inTotalBytes | integer | Total incoming bytes |
data.list[].outTotalBytes | integer | Total outgoing bytes |
data.list[].healthScore | integer | Connection health score (0-100%) |
data.list[].healthGrade | string | Connection health grade (e.g., "Very Good", "Bad", "No Data") |
Metadata
| Parameter | Type | Description |
|---|---|---|
meta.executionTime | integer | Request processing time in milliseconds |
meta.generatedAt | integer | Response generation timestamp (Unix timestamp in ms) |
Successful Response (200)
{
"data": {
"totalItems": 1,
"itemsPerPage": 10,
"totalPages": 1,
"currentPage": 1,
"hasPrevious": false,
"hasNext": false,
"list": [
{
"id": "v_xc4sdz3mmiisil28",
"state": "PUBLISHED",
"class": "MSEPlaybackHarness",
"pipelineType": "CLIENT_OUTPUT",
"harnessType": "STORM_MSE_VIEWER",
"applicationName": "edge",
"streamKey": "f1",
"subStream": "native",
"remoteAddress": "83.11.204.8",
"deviceType": "DESKTOP",
"osName": "Windows 10/11",
"browserName": "Chrome",
"startTime": 1764329979924,
"duration": 939958,
"inBandwidth": 0,
"outBandwidth": 325377,
"inTotalBytes": 40840,
"outTotalBytes": 431145393,
"healthScore": 100,
"healthGrade": "Very Good"
}
]
},
"meta": {
"executionTime": 1,
"generatedAt": 1764330919883
}
}
Error Response (4xx/5xx)
| Parameter | Type | Description |
|---|---|---|
message | string | Human-readable error message |
{
"message": "Error message"
}
Support Needed?
Create a free ticket and our support team will provide you necessary assistance.