Skip to main content
GET
Get session status
The primary polling endpoint. Returns the full session record plus workerStatus and ingestion readiness.
Status responses never include credentials: room.url, room.token, roomUrl, and roomToken are always null, and ingestion.wsToken is absent even when ingestion.ready is true. Call reconnect to mint a fresh token.
Typical polling: wait for workerStatus to reach ACTIVE before expecting avatar video in the room, and for session.status to reach ENDED after an end or delete call that returned 202. workerAssignment includes terminationReason once termination is requested (for example user_requested, no_audio_timeout, beta_max_duration).

Authorizations

x-api-key
string
header
required

FaceMode API key (fm_...).

Path Parameters

id
string<uuid>
required

Session ID (UUID).

Response

Session status.

Status view of a session. Room credentials are never echoed: room.url, room.token, roomUrl, and roomToken are always null.

session
object

Full session record as returned by status and list endpoints. Additional bookkeeping fields may be present.

room
object
egressType
enum<string>
Available options:
livekit,
daily
roomUrl
string | null
roomToken
string | null
inputProvider
enum<string> | null

Upstream speech provider producing the audio streamed into the session. Used for provider-specific handling; custom or omitted means canonical PCM streaming.

Available options:
deepgram,
gemini,
gnani,
elevenlabs,
openai,
cartesia,
sarvam,
custom
ingestion
object

Audio ingestion endpoint for the session. url and wsToken are present only when ready is true.

workerStatus
enum<string> | null

Media worker lifecycle: PENDING/ASSIGNING mean capacity is still being allocated, ASSIGNED/ACTIVE mean a worker owns the session, ENDING means cleanup is in flight, ENDED/FAILED are terminal.

Available options:
PENDING,
ASSIGNING,
ASSIGNED,
ACTIVE,
ENDING,
ENDED,
FAILED