Status
GET /runtime/status
Requires: read (viewer+)
Returns comprehensive runtime state, project info, system metrics, and cumulative statistics. Responds immediately without queuing a lifecycle action.
Parameters: None
Response: 200 OK — JSON object:
{
"state": "Running",
"project": {
"fileName": "C:\\Projects\\MyProject.prj",
"name": "MyProject.prj",
"loaded": true,
"startedUtc": "2026-04-18T10:00:00.0000000Z",
"uptime": "0.02:15:30",
"uptimeSeconds": 8130,
"computeTimeMsShort": 4.52,
"computeTimeMsLong": 4.48,
"computeTimePercent": 27.05,
"budgetExceededFrames": 0,
"congestions": 0,
"queueFlushes": 0,
"errors": 0,
"warnings": 2,
"expectedState": {
"unknown": 1,
"running": 3,
"stopped": 0,
"mismatched": 1
}
},
"system": {
"ramUsageGb": 3.456,
"gpuMemoryUsedGb": 2.100,
"gpuMemoryFreeGb": 5.900,
"gpuMemoryTotalGb": 8.000
},
"runtime": {
"hostname": "ENCODER-01",
"composerVersion": "2.6.9645.23784",
"operatingSystem": "Microsoft Windows NT 10.0.26200.0",
"startedUtc": "2026-04-18T08:00:00.0000000Z",
"uptime": "0.04:15:30",
"uptimeSeconds": 15330,
"totalProjectsStarted": 3,
"totalReloads": 1,
"totalApiCalls": 47,
"totalErrors": 0,
"totalWarnings": 5,
"lastReloadDurationSeconds": 2.34,
"lastTimeToFirstFrameSeconds": 1.87
},
"timestamp": "2026-04-18T12:15:30.0000000Z"
}
Response fields:
state (string)
Current runtime state: Idle, Loading, Running, or Stopping.
project object
| Field | Type | Description |
|---|---|---|
fileName |
string | Full path to the loaded project file. Preserved across Idle transitions. |
name |
string | Project file name (e.g. MyProject.prj) |
loaded |
bool | Whether a project is in memory — not whether it is playing. True through the Idle window left by a legacy /api/stop, which stops playback but keeps the project loaded and restartable; false once a /runtime/stop or /runtime/project/new has cleared the graph. Read state for whether it is running, and see the note on runtime_project_loaded under Prometheus Metrics, which is the stricter "loaded and running". |
startedUtc |
string? | ISO 8601 UTC timestamp when the current project session started. Null when idle. |
uptime |
string? | Project session uptime in d.hh:mm:ss format. Null when idle. |
uptimeSeconds |
long? | Project session uptime in seconds. Null when idle. |
computeTimeMsShort |
float | Average compute time over the last ~100 frames (ms). Short-term indicator. |
computeTimeMsLong |
float | Average compute time over the last ~10,000 frames (ms). Long-term indicator. |
computeTimePercent |
float | Compute time as percentage of frame budget (e.g. 75.0 = 75%) |
budgetExceededFrames |
long | Frames where compute time exceeded the frame budget |
congestions |
int | Congestive frame count since project start |
queueFlushes |
int | Worker queue flush count since project start |
errors |
int | Error count for the current project session (resets on reload) |
warnings |
int | Warning count for the current project session (resets on reload) |
expectedState |
object | null | Inputs and targets counted by expected state. null while no project is running — the counts would otherwise all read zero, which says "nothing is wrong" rather than "there is nothing to say". See below. |
expectedState object
Expected state is what a component was last asked to be: Running after somebody started it, Stopped after somebody stopped it, Unknown until one of them happens. A component configured to start with the project counts as asked — the project's autostart records Running on it, so an unattended runtime whose feeds all come up by autostart still reports intent and can still report a mismatch. What is recorded is the request the project could actually make: a component configured to autostart that the project had nothing to act on — an input with no source selected, a media player with no file — stays Unknown rather than becoming a permanent mismatch. Stopping the project returns every component to Unknown.
Inputs that are never started or stopped are not counted: scenes, the ones Composer simply draws (still image, rectangle, text), the control surfaces that act on other components (switcher, batch processor, interactive button) and the internal audio buses (audio channel strip and the generated channel splits). Counting them would fill unknown with components that can never leave it — and unknown is read as "not started yet". The targets inside a scene are counted like any others.
The Runtime API is deliberately project-level and reports no per-component detail; for that, use the project HTTP API's /api/inputs/get/status and /api/targets/get/status, or the composer_ext_input_expected_state and composer_ext_target_expected_state Prometheus gauges, which carry one series per component.
| Field | Type | Description |
|---|---|---|
unknown |
int | Components nothing has asked to start or stop since the project started. A component configured to autostart lands here too if the project could not act on that configuration — an input with no source selected, say |
running |
int | Components that were started — explicitly, or by the project's autostart |
stopped |
int | Components somebody explicitly stopped |
mismatched |
int | Components that were asked to run and report themselves stopped. This is the number to alert on — it is the difference between a component nobody started and one that was started and has failed. A component still running after being asked to stop is not counted: every graceful shutdown passes through that state. |
system object
| Field | Type | Description |
|---|---|---|
ramUsageGb |
float | Process RAM usage in GB |
gpuMemoryUsedGb |
float | GPU memory used in GB (from nvidia-smi) |
gpuMemoryFreeGb |
float | GPU memory free in GB |
gpuMemoryTotalGb |
float | Total GPU memory in GB |
runtime object
| Field | Type | Description |
|---|---|---|
hostname |
string | Host machine name of this runtime instance. Useful for audit trails when administering several remote instances. |
composerVersion |
string | Composer build version of this runtime instance (e.g. 2.6.9645.23784) |
operatingSystem |
string | OS description of this runtime instance (e.g. Microsoft Windows NT 10.0.26200.0 or a Linux release string). Useful for fleet inventory across Windows + Linux runtimes. |
startedUtc |
string | ISO 8601 UTC timestamp when the runtime process started |
uptime |
string | Process uptime in d.hh:mm:ss format |
uptimeSeconds |
long | Process uptime in seconds |
totalProjectsStarted |
int | Cumulative projects started (initial + reloads + API starts) |
totalReloads |
int | Cumulative reload operations |
totalApiCalls |
long | Total Runtime API calls received |
totalErrors |
int | Cumulative errors across all project sessions |
totalWarnings |
int | Cumulative warnings across all project sessions |
lastReloadDurationSeconds |
float | Duration of the last reload operation in seconds |
lastTimeToFirstFrameSeconds |
float | Time from last start/reload to first rendered frame in seconds |