OpenAI-compatible chat completions endpoint. To reference frames from a live stream,
include a video_url or image_url content part whose URL uses the
ovs://streams/{stream_id}?... reference scheme with a start_offset_ms (relative to
live edge), frame_index, timestamp_ms, or offset_ms query param. The ovs://
URI is a reference identifier the server parses, not a fetchable URL.
Documentation Index
Fetch the complete documentation index at: https://docs.overshoot.ai/llms.txt
Use this file to discover all available pages before exploring further.
messages[].content[] array accepts standard OpenAI content parts plus two Overshoot-specific URL shapes:
image_url — points at a single frame of a stream.video_url — points at a window of frames.ovs:// reference of the form:
ovs:// scheme is a reference identifier — the server parses it to pull out stream_id and the query, then resolves frames internally. It is not a fetchable URL. The <query> is what selects the moment you want. Different keys for single frames vs. windows.
type: "image_url". Exactly one anchor is required.
| Param | Type | Required | Description |
|---|---|---|---|
frame_index | int | Anchor (one of) | Lifetime-indexed frame number. Negative = relative to live edge; -1 is the most recent frame. |
timestamp_ms | int | Anchor (one of) | Absolute stream-clock ms since first_frame_at_ms. |
offset_ms | int | Anchor (one of) | Offset relative to “now” (live edge at request time). Negative = past. |
tolerance_ms | int (>0) | Optional | How far the resolver may snap to find a frame. Default 100. Ignored when frame_index is set. |
direction | enum | Optional | nearest | forward | backward. Resolution preference when no exact match within tolerance. Default nearest. Ignored when frame_index is set. |
type: "video_url". Requires one start anchor, accepts one optional end anchor (defaults to the live edge), plus an optional max_fps.
| Param | Type | Required | Description |
|---|---|---|---|
start_frame_index | int | Start anchor (one of) | Lifetime index where the segment begins. |
start_timestamp_ms | int | Start anchor (one of) | Absolute stream-clock ms where the segment begins. |
start_offset_ms | int | Start anchor (one of) | Offset from now where the segment begins. Negative = past (e.g. -5000 is “5s ago”). |
end_frame_index | int | End anchor (optional) | Lifetime index where the segment ends. |
end_timestamp_ms | int | End anchor (optional) | Absolute stream-clock ms where the segment ends. |
end_offset_ms | int | End anchor (optional) | Offset from now where the segment ends. |
max_fps | float (>0) | Optional | Cap on frames per second sampled from the segment. Default 1.0. Halving max_fps halves visual tokens. |
start_offset_ms=-30000&end_frame_index=523 is valid.
frame_index / offset_ms are evaluated against last_frame_index / now at request time. The same URL can resolve to different frames on consecutive calls.frame_index (or start_frame_index) older than first_available_frame_index clamps up to the oldest available frame. Request succeeds, possibly on a different frame than asked.frame_index newer than last_frame_index returns 422. There is no “wait until that frame arrives”.?frame_index=1&frame_index=2) → 422.start_*, or frame_index + timestamp_ms) → 422.All requests must include Authorization: Bearer <api_key>. Get a key from the
Overshoot dashboard. Listing models (GET /models) does not require auth.
OpenAI-compatible. Permissive — unknown fields are accepted and ignored. To reference
a stream's frames, include video_url or image_url content parts whose URL uses the
ovs://streams/{stream_id}?... reference scheme.
Model identifier from GET /models. The model must be ready at request time.
"Qwen/Qwen3.5-9B"
Conversation turns. content may be a plain string or a list of typed parts
(text, image_url, video_url). Use image_url / video_url parts to reference
a stream's frames or windows — see the URL grammar below.
OpenAI-shape response_format. Passed through to the upstream model unchanged.
Cap on tokens generated. OpenAI's preferred name.
Legacy alias for max_completion_tokens. Both work; pick one.
Completion response.
Unique completion ID. Different on every retry.
Always chat.completion.
Unix seconds when the completion was generated.
Echoed model ID from the request.
Generated completions. Length = 1 unless the request set n > 1.