Skip to main content
POST
/
v1
/
realtime-assistants
/
{realtimeAssistantId}
/
createSession
curl -X POST https://api.upliftai.org/v1/realtime-assistants/550e8400-e29b-41d4-a716-446655440000/createSession \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "participantName": "John Doe"
  }'
{
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDU0MTAwMDAsImlzcyI6IkFQSWFiY2RlZiIsImp0aSI6InBhcnRpY2lwYW50XzEyMyIsIm5hbWUiOiJKb2huIERvZSIsInJvb20iOiJzdXBwb3J0LWFiYzEyMyIsInN1YiI6InBhcnRpY2lwYW50XzEyMyIsInZpZGVvIjp7InJvb20iOiJqb2luIiwicm9vbUFkbWluIjpmYWxzZSwicm9vbUNyZWF0ZSI6ZmFsc2UsInJvb21Kb2luIjp0cnVlLCJyb29tTGlzdCI6ZmFsc2V9fQ.signature",
  "wsUrl": "wss://upliftai-livekit-url...",
  "roomName": "support-abc123-1705406400"
}
Beta Feature: This endpoint is currently in beta. Features and specifications may change.
This endpoint requires authentication with your API key and should be called from your backend server, not directly from client applications.
realtimeAssistantId
string
required
The unique identifier of the assistant
participantName
string
required
Display name for the user participant
roomName
string
Optional custom room name. If not provided, a unique room name will be generated
curl -X POST https://api.upliftai.org/v1/realtime-assistants/550e8400-e29b-41d4-a716-446655440000/createSession \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "participantName": "John Doe"
  }'
{
  "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDU0MTAwMDAsImlzcyI6IkFQSWFiY2RlZiIsImp0aSI6InBhcnRpY2lwYW50XzEyMyIsIm5hbWUiOiJKb2huIERvZSIsInJvb20iOiJzdXBwb3J0LWFiYzEyMyIsInN1YiI6InBhcnRpY2lwYW50XzEyMyIsInZpZGVvIjp7InJvb20iOiJqb2luIiwicm9vbUFkbWluIjpmYWxzZSwicm9vbUNyZWF0ZSI6ZmFsc2UsInJvb21Kb2luIjp0cnVlLCJyb29tTGlzdCI6ZmFsc2V9fQ.signature",
  "wsUrl": "wss://upliftai-livekit-url...",
  "roomName": "support-abc123-1705406400"
}

Session Token Details

The returned token is a JWT that contains:
  • User identity and display name
  • Room access permissions
  • Expiration time (based on TTL configuration)
  • Audio/video capabilities

Connection Flow

  1. Backend: Call this endpoint with your API key
  2. Backend: Return session data to your frontend
  3. Frontend: Use the token and wsUrl to connect via SDK
  4. WebRTC: Establish peer connection for real-time audio

Security Best Practices

Never expose your API key in client-side code. Always create sessions from your backend server.
  • Validate user authentication before creating sessions
  • Implement rate limiting per user
  • Monitor session creation for abuse
  • Set appropriate TTL values for your use case
I