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