curl --request POST \
--url https://api.upliftai.org/v1/realtime-assistants/adhoc/session \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"participantName": "ayesha-web",
"roomName": "shifa-clinic",
"config": {
"agent": {
"instructions": "آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔",
"initialGreeting": true,
"greetingInstructions": "السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔"
},
"session": {
"ttl": 900
},
"stt": {
"default": {
"provider": "soniox",
"model": "stt-rt-preview",
"language": "ur"
}
},
"tts": {
"default": {
"provider": "upliftai",
"voiceId": "v_meklc281",
"outputFormat": "MP3_22050_32"
}
},
"llm": {
"default": {
"provider": "google",
"model": "gemini-2.5-flash"
}
}
}
}
'import requests
url = "https://api.upliftai.org/v1/realtime-assistants/adhoc/session"
payload = {
"participantName": "ayesha-web",
"roomName": "shifa-clinic",
"config": {
"agent": {
"instructions": "آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔",
"initialGreeting": True,
"greetingInstructions": "السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔"
},
"session": { "ttl": 900 },
"stt": { "default": {
"provider": "soniox",
"model": "stt-rt-preview",
"language": "ur"
} },
"tts": { "default": {
"provider": "upliftai",
"voiceId": "v_meklc281",
"outputFormat": "MP3_22050_32"
} },
"llm": { "default": {
"provider": "google",
"model": "gemini-2.5-flash"
} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
participantName: 'ayesha-web',
roomName: 'shifa-clinic',
config: {
agent: {
instructions: 'آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔',
initialGreeting: true,
greetingInstructions: 'السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔'
},
session: {ttl: 900},
stt: {default: {provider: 'soniox', model: 'stt-rt-preview', language: 'ur'}},
tts: {
default: {provider: 'upliftai', voiceId: 'v_meklc281', outputFormat: 'MP3_22050_32'}
},
llm: {default: {provider: 'google', model: 'gemini-2.5-flash'}}
}
})
};
fetch('https://api.upliftai.org/v1/realtime-assistants/adhoc/session', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.upliftai.org/v1/realtime-assistants/adhoc/session",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'participantName' => 'ayesha-web',
'roomName' => 'shifa-clinic',
'config' => [
'agent' => [
'instructions' => 'آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔',
'initialGreeting' => true,
'greetingInstructions' => 'السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔'
],
'session' => [
'ttl' => 900
],
'stt' => [
'default' => [
'provider' => 'soniox',
'model' => 'stt-rt-preview',
'language' => 'ur'
]
],
'tts' => [
'default' => [
'provider' => 'upliftai',
'voiceId' => 'v_meklc281',
'outputFormat' => 'MP3_22050_32'
]
],
'llm' => [
'default' => [
'provider' => 'google',
'model' => 'gemini-2.5-flash'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.upliftai.org/v1/realtime-assistants/adhoc/session"
payload := strings.NewReader("{\n \"participantName\": \"ayesha-web\",\n \"roomName\": \"shifa-clinic\",\n \"config\": {\n \"agent\": {\n \"instructions\": \"آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔\",\n \"initialGreeting\": true,\n \"greetingInstructions\": \"السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔\"\n },\n \"session\": {\n \"ttl\": 900\n },\n \"stt\": {\n \"default\": {\n \"provider\": \"soniox\",\n \"model\": \"stt-rt-preview\",\n \"language\": \"ur\"\n }\n },\n \"tts\": {\n \"default\": {\n \"provider\": \"upliftai\",\n \"voiceId\": \"v_meklc281\",\n \"outputFormat\": \"MP3_22050_32\"\n }\n },\n \"llm\": {\n \"default\": {\n \"provider\": \"google\",\n \"model\": \"gemini-2.5-flash\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.upliftai.org/v1/realtime-assistants/adhoc/session")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"participantName\": \"ayesha-web\",\n \"roomName\": \"shifa-clinic\",\n \"config\": {\n \"agent\": {\n \"instructions\": \"آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔\",\n \"initialGreeting\": true,\n \"greetingInstructions\": \"السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔\"\n },\n \"session\": {\n \"ttl\": 900\n },\n \"stt\": {\n \"default\": {\n \"provider\": \"soniox\",\n \"model\": \"stt-rt-preview\",\n \"language\": \"ur\"\n }\n },\n \"tts\": {\n \"default\": {\n \"provider\": \"upliftai\",\n \"voiceId\": \"v_meklc281\",\n \"outputFormat\": \"MP3_22050_32\"\n }\n },\n \"llm\": {\n \"default\": {\n \"provider\": \"google\",\n \"model\": \"gemini-2.5-flash\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upliftai.org/v1/realtime-assistants/adhoc/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"participantName\": \"ayesha-web\",\n \"roomName\": \"shifa-clinic\",\n \"config\": {\n \"agent\": {\n \"instructions\": \"آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔\",\n \"initialGreeting\": true,\n \"greetingInstructions\": \"السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔\"\n },\n \"session\": {\n \"ttl\": 900\n },\n \"stt\": {\n \"default\": {\n \"provider\": \"soniox\",\n \"model\": \"stt-rt-preview\",\n \"language\": \"ur\"\n }\n },\n \"tts\": {\n \"default\": {\n \"provider\": \"upliftai\",\n \"voiceId\": \"v_meklc281\",\n \"outputFormat\": \"MP3_22050_32\"\n }\n },\n \"llm\": {\n \"default\": {\n \"provider\": \"google\",\n \"model\": \"gemini-2.5-flash\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJ2aWRlbyI6eyJyb29tSm9pbiI6dHJ1ZSwicm9vbSI6…",
"wsUrl": "wss://upliftai-prod-yd34to8b.livekit.cloud",
"roomName": "shifa-clinic-835050e4-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}{
"message": [
"config.agent.instructions should not be empty",
"config.agent.instructions must be a string"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "invalid authorization",
"error": "Unauthorized",
"statusCode": 401
}{
"message": "Insufficient credits to start a realtime session",
"error": "Payment Required",
"statusCode": 402
}{
"message": "Forbidden resource",
"error": "Forbidden",
"statusCode": 403
}Start a session from inline config
Identical to Create a web session token — you get a LiveKit wsUrl and token, and everything on that page applies. The difference: the assistant is created on the fly from the config you send, instead of using a stored id. It stays hidden from the stored-assistant routes and is gone five hours later.
The inline config follows the same rules as Create an assistant: provider and model strings resolve when the client connects, so an unsupported value kills that conversation rather than failing this request. For Urdu, tell the model to reply in Nastaliq script, not Roman Urdu.
curl --request POST \
--url https://api.upliftai.org/v1/realtime-assistants/adhoc/session \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"participantName": "ayesha-web",
"roomName": "shifa-clinic",
"config": {
"agent": {
"instructions": "آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔",
"initialGreeting": true,
"greetingInstructions": "السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔"
},
"session": {
"ttl": 900
},
"stt": {
"default": {
"provider": "soniox",
"model": "stt-rt-preview",
"language": "ur"
}
},
"tts": {
"default": {
"provider": "upliftai",
"voiceId": "v_meklc281",
"outputFormat": "MP3_22050_32"
}
},
"llm": {
"default": {
"provider": "google",
"model": "gemini-2.5-flash"
}
}
}
}
'import requests
url = "https://api.upliftai.org/v1/realtime-assistants/adhoc/session"
payload = {
"participantName": "ayesha-web",
"roomName": "shifa-clinic",
"config": {
"agent": {
"instructions": "آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔",
"initialGreeting": True,
"greetingInstructions": "السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔"
},
"session": { "ttl": 900 },
"stt": { "default": {
"provider": "soniox",
"model": "stt-rt-preview",
"language": "ur"
} },
"tts": { "default": {
"provider": "upliftai",
"voiceId": "v_meklc281",
"outputFormat": "MP3_22050_32"
} },
"llm": { "default": {
"provider": "google",
"model": "gemini-2.5-flash"
} }
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
participantName: 'ayesha-web',
roomName: 'shifa-clinic',
config: {
agent: {
instructions: 'آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔',
initialGreeting: true,
greetingInstructions: 'السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔'
},
session: {ttl: 900},
stt: {default: {provider: 'soniox', model: 'stt-rt-preview', language: 'ur'}},
tts: {
default: {provider: 'upliftai', voiceId: 'v_meklc281', outputFormat: 'MP3_22050_32'}
},
llm: {default: {provider: 'google', model: 'gemini-2.5-flash'}}
}
})
};
fetch('https://api.upliftai.org/v1/realtime-assistants/adhoc/session', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.upliftai.org/v1/realtime-assistants/adhoc/session",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'participantName' => 'ayesha-web',
'roomName' => 'shifa-clinic',
'config' => [
'agent' => [
'instructions' => 'آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔',
'initialGreeting' => true,
'greetingInstructions' => 'السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔'
],
'session' => [
'ttl' => 900
],
'stt' => [
'default' => [
'provider' => 'soniox',
'model' => 'stt-rt-preview',
'language' => 'ur'
]
],
'tts' => [
'default' => [
'provider' => 'upliftai',
'voiceId' => 'v_meklc281',
'outputFormat' => 'MP3_22050_32'
]
],
'llm' => [
'default' => [
'provider' => 'google',
'model' => 'gemini-2.5-flash'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.upliftai.org/v1/realtime-assistants/adhoc/session"
payload := strings.NewReader("{\n \"participantName\": \"ayesha-web\",\n \"roomName\": \"shifa-clinic\",\n \"config\": {\n \"agent\": {\n \"instructions\": \"آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔\",\n \"initialGreeting\": true,\n \"greetingInstructions\": \"السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔\"\n },\n \"session\": {\n \"ttl\": 900\n },\n \"stt\": {\n \"default\": {\n \"provider\": \"soniox\",\n \"model\": \"stt-rt-preview\",\n \"language\": \"ur\"\n }\n },\n \"tts\": {\n \"default\": {\n \"provider\": \"upliftai\",\n \"voiceId\": \"v_meklc281\",\n \"outputFormat\": \"MP3_22050_32\"\n }\n },\n \"llm\": {\n \"default\": {\n \"provider\": \"google\",\n \"model\": \"gemini-2.5-flash\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.upliftai.org/v1/realtime-assistants/adhoc/session")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"participantName\": \"ayesha-web\",\n \"roomName\": \"shifa-clinic\",\n \"config\": {\n \"agent\": {\n \"instructions\": \"آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔\",\n \"initialGreeting\": true,\n \"greetingInstructions\": \"السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔\"\n },\n \"session\": {\n \"ttl\": 900\n },\n \"stt\": {\n \"default\": {\n \"provider\": \"soniox\",\n \"model\": \"stt-rt-preview\",\n \"language\": \"ur\"\n }\n },\n \"tts\": {\n \"default\": {\n \"provider\": \"upliftai\",\n \"voiceId\": \"v_meklc281\",\n \"outputFormat\": \"MP3_22050_32\"\n }\n },\n \"llm\": {\n \"default\": {\n \"provider\": \"google\",\n \"model\": \"gemini-2.5-flash\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upliftai.org/v1/realtime-assistants/adhoc/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"participantName\": \"ayesha-web\",\n \"roomName\": \"shifa-clinic\",\n \"config\": {\n \"agent\": {\n \"instructions\": \"آپ شفا کلینک کی ہیلپ ڈیسک ایجنٹ ہیں۔ ویب وزیٹر کے سوالات کا جواب دیں: اوقاتِ کار، ڈاکٹروں کی دستیابی، اور اپائنٹمنٹ بکنگ۔ صرف نستعلیق اردو میں جواب دیں۔\",\n \"initialGreeting\": true,\n \"greetingInstructions\": \"السلام علیکم کہیں، شفا کلینک کا تعارف کروائیں، پھر پوچھیں کہ کس طرح مدد کر سکتے ہیں۔\"\n },\n \"session\": {\n \"ttl\": 900\n },\n \"stt\": {\n \"default\": {\n \"provider\": \"soniox\",\n \"model\": \"stt-rt-preview\",\n \"language\": \"ur\"\n }\n },\n \"tts\": {\n \"default\": {\n \"provider\": \"upliftai\",\n \"voiceId\": \"v_meklc281\",\n \"outputFormat\": \"MP3_22050_32\"\n }\n },\n \"llm\": {\n \"default\": {\n \"provider\": \"google\",\n \"model\": \"gemini-2.5-flash\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"token": "eyJhbGciOiJIUzI1NiJ9.eyJ2aWRlbyI6eyJyb29tSm9pbiI6dHJ1ZSwicm9vbSI6…",
"wsUrl": "wss://upliftai-prod-yd34to8b.livekit.cloud",
"roomName": "shifa-clinic-835050e4-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}{
"message": [
"config.agent.instructions should not be empty",
"config.agent.instructions must be a string"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "invalid authorization",
"error": "Unauthorized",
"statusCode": 401
}{
"message": "Insufficient credits to start a realtime session",
"error": "Payment Required",
"statusCode": 402
}{
"message": "Forbidden resource",
"error": "Forbidden",
"statusCode": 403
}Authorizations
Project API key (sk_api_…).
Body
Identity your client joins the room under.
1Keys beyond those listed are stored and returned unchanged.
Show child attributes
Show child attributes
Cosmetic room prefix, truncated to its first 15 characters. Overrides config.session.roomPrefix; without either, the prefix is adhoc.
