Renew the stream lease and pay for elapsed streaming time. Call every 10-20 seconds. Streams expire after ~45 seconds without a keepalive.
Each call charges for time since the last keepalive. If credits are insufficient (402), the lease is NOT renewed and the stream will expire.
For native transport, the response includes a refreshed livekit_token.
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.
/keepalive every ~2 minutes — clock skew is real and the cost of a missed renewal is the whole stream.
A keepalive on a stream that’s already ended returns 404. Streams cannot be revived; create a new one.
expires_at_ms set to now + ttl_seconds.publish.token. Save it — if your publisher disconnects from the room, you’ll need a current token to rejoin without recreating the stream. Old tokens may stop working.stream_time_ms (matches GET /streams/{id}).All requests must include Authorization: Bearer <api_key>. Get a key from the
Overshoot dashboard. Listing models (GET /models) does not require auth.
UUID returned by POST /streams.
Lease renewed.
The stream's identifier (echoed back).
New wall-clock Unix ms lease expiry, set to now + ttl_seconds.
Lease TTL in seconds.
WebRTC publish target. Connect with the LiveKit client SDK.
Current stream-clock position in ms (matches GET /streams/{id}).