# The stream's saved override document 404 means the stream has no override — it follows its stream group config entirely. Endpoint: GET /persist/apps/{app}/streams/{stream} Version: 2.0.0 Security: engineBasic ## Path parameters: - `app` (string, required) Engine application holding the stream (e.g. live). The vhost and application instance are the ones VIC serves and are not addressed here. - `stream` (string, required) One stream's exact name, never a pattern — patterns belong to a stream group config's match.stream_pattern. ## Response 200 fields (application/json): - `config` (object) The sparse config layered over the stream group config's. - `config.active` (boolean) Whether analysis runs. - `config.detector` (object,null) The stream's analysis; absent inherits from the layer below, explicit null selects none. - `config.detector.type` (string, required) Detector subtype: scene, object, vlm, or synthetic. Enum: "scene", "object", "vlm", "synthetic" - `config.listeners` (object) Listeners, keyed by name. Each entry merges independently of the others. - `config.processing` (object) How frames are sampled and shipped to analysis; absent inherits from the layer below. - `config.processing.inference_fps` (integer) Frames per second sent to analysis; -1 matches the source rate. Default -1. - `config.processing.window_seconds` (number) Seconds per analysis window (scene/VLM/synthetic). Default 2. - `config.processing.video_height` (integer) Resize frames to this height; -1 matches source, 0 matches the model. Default 0. - `config.processing.grayscale` (boolean) Send frames in grayscale. Default false. - `config.processing.frame_source` (string) Capture frames via the transcoder or periodic frame grabs. Default transcoder, except the synthetic detector, which taps the source packets and defaults to grab. Enum: "transcoder", "grab" - `config.processing.grab_interval_seconds` (number) Frame-grab period when frame_source is grab. Default 1. - `config.processing.buffer_frames` (integer) Frames buffered awaiting processing. Sized from the incoming video by default. - `config.processing.auto_throttle` (boolean) Reduce inference_fps automatically when inference falls behind. Default off. - `config.processing.catch_up` (object,null) Scene/VLM — skip stale backlog to the live edge when inference lags. - `config.processing.catch_up.enabled` (boolean) Default true. - `config.processing.catch_up.max_behind_seconds` (number) Default is the buffer's own headroom. - `config.processing.rollup_interval_seconds` (number) How long detections are held for batch/rollup listener events. Default 2. - `config.processing.gpu_ids` (array,null) Pin VIS-side inference to these GPUs; null lets VIS balance. - `config.service` (object) Which Video Intelligence Service analyzes the stream; absent inherits from the layer below. - `config.service.url` (string) VIS WebSocket endpoint, e.g. ws://vis-host:5001/ws/stream/. - `config.service.api_key` (string,null) Never echoed by a read. On a write: absent or null keeps the stored value, an empty string clears it. - `config.service.model_idle_timeout_seconds` (integer,null) How long VIS keeps an idle model loaded. - `config.diagnostics` (object) Debug aids; absent inherits from the layer below. - `config.diagnostics.save_images` (boolean) Save captured frames to disk on the Engine host. Default false. - `config.diagnostics.timing_log_seconds` (integer) Seconds between timing-metric dumps; 0 disables. Default 0. - `config.diagnostics.max_logged_messages` (integer) Protocol messages logged; -1 all, 0 disabled. Default 20. - `application` (string,null) The stream's Engine application. Identity normally lives in the resource path; the listing carries it on each entry so the entries are addressable. Server-assigned and ignored on a write. - `stream` (string,null) The stream's name. Server-assigned on a listing, like application; ignored on a write. - `etag` (string,null) This override's revision, to quote as If-Match on a write. Carried on the document; a read repeats it in the ETag header. Server-assigned and ignored on a write. It covers the config, not the identity members beside it, so the revision a listing carries matches the one the document's own resource answers. ## Response 404 fields (application/problem+json): - `type` (string) URI identifying the problem type. - `title` (string, required) Short, human-readable summary of the problem type. - `status` (integer, required) The HTTP status code, repeated from the response line. - `detail` (string) Human-readable explanation specific to this occurrence. - `instance` (string) URI identifying this specific occurrence of the problem. ## Response default fields (application/problem+json): - `type` (string) URI identifying the problem type. - `title` (string, required) Short, human-readable summary of the problem type. - `status` (integer, required) The HTTP status code, repeated from the response line. - `detail` (string) Human-readable explanation specific to this occurrence. - `instance` (string) URI identifying this specific occurrence of the problem.