Skip to main content
Retrieve a session

Authorizations

Authorization
string
header
required

Live API key minted in the dashboard. Pass as Authorization: Bearer sk_live_…. Keys are scoped to a single environment (staging / prod).

Path Parameters

session_id
string
required

sess_… prefixed ULID.

Response

Successful Response

Public session resource — what GET /v1/sessions/{id} returns.

avatar_id
string
required
created_at
string<date-time>
required
id
string
required

sess_… prefixed ULID.

idle_timeout_seconds
integer
required
max_duration_seconds
integer
required
metadata
object
required
quality
enum<string>
required

Output quality tier.

Available options:
mock,
lite,
standard,
pro
status
enum<string>
required

Public session lifecycle.

Terminal states are ended, failed, canceled. ending is the graceful-drain state while a worker finishes publishing in-flight frames.

Available options:
created,
queued,
starting,
running,
ending,
ended,
failed,
canceled
transport
LiveKitTransportConfig · object
required

BYO LiveKit transport.

The customer owns the room and mints worker_token; we never touch their LiveKit API key or secret.

Example:
billing_surface
enum<string>
default:api

Service that created the session. Use this to group usage reporting.

Available options:
api,
playground,
embed,
share,
public_demo,
pipecat,
video_generation
ended_at
string<date-time> | null
failed_at
string<date-time> | null
failure
SessionFailure · object | null

Populated when Session.status == failed.

first_frame_at
string<date-time> | null

Set on session.first_frame.

object
string
default:session
Allowed value: "session"
started_at
string<date-time> | null

Set when worker emits session.starting.

usage
SessionUsage · object

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.