Skip to main content
These endpoints work with the session 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

Use livekit_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

This requires 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

This requires 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.