Cluster Topology
Returns the topology of the cluster including all servers and their applications.
Request
| Property | Value |
|---|---|
| Method | GET |
| URL | /api/cluster/topology |
| Content-Type | application/json |
| Authentication | Bearer Token |
Request
curl -X GET "{BASE_URL}/api/cluster/topology" \
-H "Authorization: Bearer YOUR_TOKEN"
Response Body
| Code | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized - Invalid or missing token |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
| Parameter | Type | Description |
|---|---|---|
data.mockupEnabled | boolean | Indicates if mockup mode is enabled |
data.topology | array | List of servers in the cluster |
Server Object
| Parameter | Type | Description |
|---|---|---|
data.topology[].serverName | string | Server display name |
data.topology[].hostName | string | Server hostname |
data.topology[].groupName | string | Server group name |
data.topology[].clusterManager | boolean | Is this server a cluster manager |
data.topology[].serverStats.cpuUsage | number | CPU usage percentage (0-100) |
data.topology[].serverStats.memUsage | number | Memory usage percentage (0-100) |
data.topology[].serverStats.inBandwidth.usage | integer | Incoming bandwidth (bytes/sec) |
data.topology[].serverStats.inBandwidth.cap | integer | null | Incoming bandwidth cap (null = unlimited) |
data.topology[].serverStats.outBandwidth.usage | integer | Outgoing bandwidth (bytes/sec) |
data.topology[].serverStats.outBandwidth.cap | integer | null | Outgoing bandwidth cap (null = unlimited) |
Application Object
| Parameter | Type | Description |
|---|---|---|
data.topology[].applications | array | Applications on this server |
data.topology[].applications[].id | string | Application ID |
data.topology[].applications[].name | string | Application name |
data.topology[].applications[].type | "origin" | "transcode" | "edge" | Application type |
data.topology[].applications[].streams.count | integer | Current stream count |
data.topology[].applications[].streams.cap | integer | null | Stream limit (null = unlimited) |
data.topology[].applications[].viewers.count | integer | Current viewer count |
data.topology[].applications[].viewers.cap | integer | null | Viewer limit (null = unlimited) |
data.topology[].applications[].bandwidth.inBandwidth | integer | Incoming bandwidth (bytes/sec) |
data.topology[].applications[].bandwidth.outBandwidth | integer | Outgoing bandwidth (bytes/sec) |
data.topology[].applications[].upLinks | array | Upstream connections |
data.topology[].applications[].downLinks | array | Downstream connections |
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": {
"mockupEnabled": false,
"topology": [
{
"serverName": "Server 2",
"hostName": "stormdev2.web-anatomy.com",
"groupName": "Premise",
"clusterManager": true,
"serverStats": {
"cpuUsage": 0.14,
"memUsage": 1.81,
"inBandwidth": { "cap": null, "usage": 0 },
"outBandwidth": { "cap": null, "usage": 0 }
},
"applications": [
{
"id": "c_8m9jynj8mjr50qdn",
"name": "edge",
"type": "edge",
"streams": { "cap": 1, "count": 0 },
"viewers": { "cap": null, "count": 0 },
"bandwidth": { "inBandwidth": 0, "outBandwidth": 0 },
"upLinks": [],
"downLinks": []
},
{
"id": "c_wujpa3t8mjr50qdn",
"name": "origin",
"type": "origin",
"streams": { "cap": 100, "count": 0 },
"viewers": { "cap": null, "count": 0 },
"bandwidth": { "inBandwidth": 0, "outBandwidth": 0 },
"upLinks": [],
"downLinks": []
},
{
"id": "c_ehkb6xlzmjr50qdn",
"name": "transcode",
"type": "transcode",
"streams": { "cap": 50, "count": 0 },
"viewers": { "cap": null, "count": 0 },
"bandwidth": { "inBandwidth": 0, "outBandwidth": 0 },
"upLinks": [],
"downLinks": []
}
]
}
]
},
"meta": {
"executionTime": 0,
"generatedAt": 1767346264389
}
}
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.