---
title: "Get a LiveKit room token"
method: POST
path: "/v1/realtime/token"
tags: ["v1 realtime"]
---

# Get a LiveKit room token

`POST /v1/realtime/token`

Generate a LiveKit JWT token for a participant to join a video/audio room.
    
    This endpoint:
    - Validates API key authentication
    - Creates a token with publish + subscribe grants for the specified room
    - Returns a JWT that the frontend uses to connect to the LiveKit server
    
    **Authentication**: Requires valid API key in Authorization header

## Request body

- RealtimeTokenRequest
  - `user_id` string, required — The user ID
  - `project_id` string, nullable — The project ID
  - `persona_id` string, nullable — The persona ID
  - `disabled_learning` boolean, required — Whether to disable learning
  - `session_id` string, required — The session ID
  - `metadata` object, nullable — Extra metadata forwarded to the agent (e.g. learn flag)

## Response `200`

Successful Response

- RealtimeTokenResponse
  - `token` string, required — JWT token to connect to LiveKit
  - `session_id` string, required — The session ID
  - `success` boolean — Indicates successful token generation

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/elicitlabs/apis/elicit-labs-api.md) · [All operations](https://skmtc.net/elicitlabs/apis/elicit-labs-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elicitlabs/elicit-labs-api/revisions/27701839a070/schema)
