End a session
Terminate a session immediately. Idempotent: calling on an already-terminal session returns 200 with the existing state. The session transitions to canceled if it had not yet started, or ending (then ended once the worker drains) if it was running.
Authorizations
Live API key minted in the dashboard. Pass as Authorization: Bearer sk_live_…. Keys are scoped to a single environment (staging / prod).
Headers
Path Parameters
sess_… prefixed ULID.
Response
Successful Response
Public session resource — what GET /v1/sessions/{id} returns.
sess_… prefixed ULID.
Output quality tier.
mock, lite, standard, pro Public session lifecycle.
Terminal states are ended, failed, canceled. ending is the
graceful-drain state while a worker finishes publishing in-flight frames.
created, queued, starting, running, ending, ended, failed, canceled BYO LiveKit transport.
The customer owns the room and mints worker_token; we never touch
their LiveKit API key or secret.
- LiveKitTransportConfig
- WebSocketTransportConfig
- PipecatTransportConfig
Service that created the session. Use this to group usage reporting.
api, playground, embed, share, public_demo, pipecat, video_generation Populated when Session.status == failed.
Set on session.first_frame.
"session"Set when worker emits session.starting.
Live usage counters embedded in the Session resource.
Eventually-consistent — lags the latest worker heartbeat by up to
one interval. Canonical billing data lives in UsageEvent.

