Skip to main content
POST
Call this when the ingestion WebSocket drops or its wsToken expires. The session must be ACTIVE (SESSION_NOT_ACTIVE otherwise). The response has the same ingestion block as create - connect with the new wsToken, which invalidates the previous one.
Body rules:
  • {} (or no body) refreshes the credential for the existing room binding. roomUrl/roomToken in the response are then null.
  • room retargets the egress with fresh credentials - room.type must equal the session’s egressType (ROOM_TYPE_MISMATCH).
  • inputProvider, when present, must equal the session’s stored provider (INPUT_PROVIDER_MISMATCH).
  • Only room and inputProvider are accepted; other fields return REQUEST_FIELD_UNKNOWN.

Authorizations

x-api-key
string
header
required

FaceMode API key (fm_...).

Path Parameters

id
string<uuid>
required

Session ID (UUID).

Body

application/json
room
object

Optional new room. type must match the session's egressType.

inputProvider
enum<string> | null

Optional. When present it must equal the session's stored provider.

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

Response

Reconnect credentials minted. Use ingestion.url and ingestion.wsToken to open a new WebSocket.

room
object

Egress room the avatar joins and publishes video into.

egressType
enum<string>
Available options:
livekit,
daily
roomUrl
string | null

Echo of the new room URL, or null when no room was supplied.

roomToken
string | null

Echo of the new room token, or null when no room was supplied.

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
workerAssignment
object | null

Worker placement metadata for the session. Treat as opaque - fields may change. Useful for correlating jobId with support tickets.