The status endpoint tells you in real time whether a stream is receiving video, what bitrate it is running at, and when the most recent video frame arrived. The server considers a stream live if at least one video frame was received within the last 3 seconds; otherwise is_live is false. You can check the status of a single named stream, or retrieve status for all streams at once using the /-/status variant.

Single stream status

Endpoint

GET /api/streams/{id}/status

Path parameters

id
string
required
The name of the stream to check.

Example request

curl http://your-server:6070/api/streams/my-stream/status

Example response

{
  "is_live": true,
  "bitrate": 4500,
  "last_frame_time": 1712345678
}

Response fields

is_live
boolean
required
true if a video frame was received within the last 3 seconds; false otherwise.
bitrate
number
required
The current ingest bitrate in kilobits per second (kbps). Returns 0 when the stream is not live.
last_frame_time
number
required
Unix timestamp (seconds) of the most recently received video frame. Returns 0 if no frame has ever been received.

All streams with status

Use the /-/status endpoint to retrieve every configured stream along with its live status in a single request. This is useful for dashboards or monitoring tools that need an at-a-glance view of the entire server.

Endpoint

GET /api/streams/-/status

Example request

curl http://your-server:6070/api/streams/-/status

Example response

[
  {
    "name": "my-stream",
    "targets": [
      { "name": "YouTube", "url": "rtmp://a.rtmp.youtube.com/live2/KEY" }
    ],
    "status": {
      "is_live": true,
      "bitrate": 4500,
      "last_frame_time": 1712345678
    }
  }
]

Response fields

Each object in the array includes all stream fields plus an embedded status object.
name
string
required
The unique name of the stream.
targets
object[]
required
All push targets configured for this stream.
status
object
Live status for the stream. May be null if status data is unavailable.