# Overshoot > Overshoot is a real-time video understanding API: ingest live frames over WebRTC and query them with vision-language models through an OpenAI-compatible interface. ## Docs - [Welcome to Overshoot](https://docs.overshoot.ai/intro.md): Overshoot turns a live video feed into a conversation with two endpoints: create a Stream, then query it with chat completions. - [Quickstart](https://docs.overshoot.ai/quickstart.md): Go from webcam to a vision-language model in four steps: create a Stream, publish over LiveKit, then query it with chat completions. - [The Stream](https://docs.overshoot.ai/the-stream.md): A Stream is a leased session that holds your live video feed and makes it addressable from any chat completion through ovs:// URLs. - [Camera sources](https://docs.overshoot.ai/camera-sources.md): Point a Stream at an rtsp:// camera or HLS playlist and the server pulls the video itself, with no client publisher involved. - [Chat Completion](https://docs.overshoot.ai/chat-completion.md): Use an OpenAI-compatible request to interact with your stream. Reference any moment by URL: a single frame, a window, or several windows. - [Models](https://docs.overshoot.ai/models.md): Browse Overshoot's vision-language models, query /models for current availability, and pass a model id to /chat/completions. - [Glossary](https://docs.overshoot.ai/glossary.md): Canonical definitions for Overshoot terms used across the docs and API, including Stream, stream_id, frame_index, lease, and ovs://. - [Best practices](https://docs.overshoot.ai/best-practices.md): Apply patterns that keep latency low, costs predictable, and Streams alive, from picking smaller models to renewing the lease early. - [LiveKit](https://docs.overshoot.ai/integrations/livekit.md): Build a real-time vision agent that joins a LiveKit room, watches the published video, and posts structured JSON observations back. - [Introduction](https://docs.overshoot.ai/api-reference/introduction.md): Use the Overshoot REST API to ingest live video over LiveKit, query vision-language models, and manage the Stream lifecycle. - [Authentication](https://docs.overshoot.ai/api-reference/authentication.md): Send a bearer API key on every public HTTP request, except the open list models and pricing endpoints, and keep keys secret. - [Core flow](https://docs.overshoot.ai/api-reference/core-flow.md): Walk the end-to-end flow: create a Stream, publish frames over LiveKit, then query them with OpenAI-compatible chat completions. - [Stream lifecycle](https://docs.overshoot.ai/api-reference/stream-lifecycle.md): See how a Stream moves from active to ended, how frame availability is exposed, and how lifetime frame_index values are assigned. - [Stream media URLs](https://docs.overshoot.ai/api-reference/stream-media-urls.md): Learn the ovs:// URL grammar for referencing a single frame or a segment of a Stream inside image_url and video_url content parts. - [Chat completions](https://docs.overshoot.ai/api-reference/chat-completions.md): Send OpenAI-compatible chat completions and reference live Stream frames or segments with ovs:// URLs in image_url or video_url parts. - [Create stream](https://docs.overshoot.ai/api-reference/create-stream.md): Open a Stream and get back a stream_id plus a LiveKit room URL and publish token, with a fixed 600-second retained frame history. - [Get stream](https://docs.overshoot.ai/api-reference/get-stream.md): Return a Stream's current state and frame telemetry, including recent FPS, retained frame counts, and lease expiry timestamps. - [Renew stream lease](https://docs.overshoot.ai/api-reference/keepalive-stream.md): Renew a Stream's lease before the 5-minute window expires and get a fresh LiveKit publish token to pass to room.updateToken. - [Create viewer token](https://docs.overshoot.ai/api-reference/viewer-token.md): Issue a short-lived, subscribe-only LiveKit token so the stream owner can watch the exact video feed the model is ingesting. - [Delete stream](https://docs.overshoot.ai/api-reference/delete-stream.md): End a Stream with DELETE /streams/{stream_id} to release its LiveKit room and frames now instead of waiting for the lease to expire. - [List models](https://docs.overshoot.ai/api-reference/list-models.md): List available vision-language model ids and their availability in an OpenAI-compatible shape, with no authentication required. - [List pricing](https://docs.overshoot.ai/api-reference/list-pricing.md): List public per-model prices with no authentication required, where money fields use integer microcents at 1,000,000 per cent. - [Get model pricing](https://docs.overshoot.ai/api-reference/get-pricing.md): Return the pricing for one model id, where the model path may contain slashes, using integer microcents as the billing unit. - [Get prepaid balance](https://docs.overshoot.ai/api-reference/get-balance.md): Return the authenticated user's prepaid balance, with balance_cents for display and balance_microcents as the exact billing unit. - [Create checkout session](https://docs.overshoot.ai/api-reference/create-checkout.md): Create a checkout session to buy prepaid credits, where amount_cents must be at least 100, and get back a hosted checkout URL. - [LiveKit client flow](https://docs.overshoot.ai/api-reference/livekit-client-flow.md): Follow a browser example that creates a Stream, publishes video through the LiveKit SDK, and renews the lease with keepalive. - [Region behavior](https://docs.overshoot.ai/api-reference/regions.md): Send the X-Overshoot-Region header to route a request to a Stream's owning region and skip the extra 409 redirect and retry step. - [Prompt cache and threads](https://docs.overshoot.ai/api-reference/prompt-cache.md): Reuse a thread_id across related chat completions to improve prompt-cache reuse, and read hit stats under the overshoot.cache field. - [Error shapes](https://docs.overshoot.ai/api-reference/errors.md): Read the status codes, error codes, and JSON envelope shapes returned across the Stream lifecycle and chat completions endpoints. - [Limits and retention](https://docs.overshoot.ai/api-reference/limits.md): Understand the 600-second retained frame window, frame compression and resizing, and how lifetime frame_index values stay stable. ## OpenAPI Specs - [openapi](https://docs.overshoot.ai/api-reference/openapi.yaml)