id returned by either launch endpoint. Use the same API key that created the session, with the scope required for each operation.
Connect and observe
Uselivekit_url and participant_token with your browser’s LiveKit client. Authorize access in your application before returning these credentials.
Read session status from your server:
An active session can still be waiting for media or a remote participant. Track connection events in your browser separately from API status.
Refresh connection credentials
GET requires sessions:read and returns a fresh participant token while the session is connectable. Terminal sessions return participant_token: null. Return refreshed credentials only to the authorized participant.
End the session
sessions:delete and returns the final session state. Ending an already terminal session is safe. Ending a session retains its historical record.
Disconnecting the browser and ending the API session are separate actions. End the session from your server when your application knows the conversation is finished.
Read a transcript
sessions:read. Omit format=text for JSON, which includes text and complete. Availability follows your organization’s recording settings, and the saved transcript may lag the live conversation. complete: false means saving is unfinished or did not complete.