# One job Includes both config (as submitted) and effective_config (as resolved and run). Endpoint: GET /vod/jobs/{jobId} Version: 2.0.0 Security: engineBasic ## Path parameters: - `jobId` (string, required) A VOD job's id, as createVodJob answered it. ## Response 200 fields (application/json): - `job_id` (string, required) The job's id, assigned at submission. - `file` (string, required) The source file, relative to the content directory. - `tag` (string,null) The free-form label the job was submitted with, if any. - `detector_type` (string) The kind of analysis this job runs. Enum: "scene", "object", "vlm", "synthetic" - `stream_group_config` (string,null) The stream group config the job was submitted with, by name; null for an inline-only job. - `listener_warning` (string,null) The configured listeners a file job cannot serve (overlay, ID3) and skipped. - `store_results` (boolean, required) Whether the job's detections are kept for GET .../results. - `results_truncated` (boolean, required) True when a write failure cut the stored results short of the file's end; a resume fills the gap. - `state` (string, required) Where the job is in its lifecycle. Enum: "pending", "connecting", "running", "completed", "failed", "cancelled" - `error` (string,null) Failure detail, in words. - `error_cause` (string) Why the job failed, as a class a client can act on. Enum: "response_timeout", "disconnected", "detector_restarted", "send_failed", "endpoint_degraded", "not_connected", "connect_failed", "detector_error", "config_drift", "coverage_shortfall", "source_error", "store_error", "engine_restart" - `requests_sent` (integer, required) Analysis requests answered so far. - `requests_total` (integer, required) A ceiling estimate of the requests the file takes; requests_sent may land one short of it. - `media_time_ms` (integer, required) The media position the analysis has reached. - `source_duration_ms` (integer,null) The file's duration, when the container could be probed. - `queued_at` (string, required) When the job was submitted. - `started_at` (string,null) When analysis began; null before it starts. - `ended_at` (string,null) When the job reached a terminal state; null while it is still queued or running. - `resumes` (integer, required) How many times the job was resumed. - `config` (object) The configuration the job was submitted with. - `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. - `effective_config` (object) The configuration the job actually ran with, fully resolved. ## 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.