Reconnect a session
POST /api/sessions//reconnect - mint a fresh one-time wsToken for an ACTIVE session, optionally retargeting the room.
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.
{}(or no body) refreshes the credential for the existing room binding.roomUrl/roomTokenin the response are thennull.roomretargets the egress with fresh credentials -room.typemust equal the session’segressType(ROOM_TYPE_MISMATCH).inputProvider, when present, must equal the session’s stored provider (INPUT_PROVIDER_MISMATCH).- Only
roomandinputProviderare accepted; other fields returnREQUEST_FIELD_UNKNOWN.
Authorizations
FaceMode API key (fm_...).
Path Parameters
Session ID (UUID).
Body
Response
Reconnect credentials minted. Use ingestion.url and ingestion.wsToken to open a new WebSocket.
Egress room the avatar joins and publishes video into.
livekit, daily Echo of the new room URL, or null when no room was supplied.
Echo of the new room token, or null when no room was supplied.
Upstream speech provider producing the audio streamed into the session. Used for provider-specific handling; custom or omitted means canonical PCM streaming.
deepgram, gemini, gnani, elevenlabs, openai, cartesia, sarvam, custom Audio ingestion endpoint for the session. url and wsToken are present only when ready is true.
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.
PENDING, ASSIGNING, ASSIGNED, ACTIVE, ENDING, ENDED, FAILED Worker placement metadata for the session. Treat as opaque - fields may change. Useful for correlating jobId with support tickets.