Get an assistant
curl --request GET \
--url https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}', 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/{realtimeAssistantId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"realtimeAssistantId": "26932cc0-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"organizationId": "a12b7e74-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"projectId": "c782a4ec-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Shifa Clinic appointment confirmation",
"description": "Confirms next-day appointments for Shifa Clinic patients",
"config": {
"agent": {
"instructions": "آپ شفا کلینک کی جانب سے کال کر رہے ہیں۔ مریض سے کل کی اپائنٹمنٹ کی تصدیق کریں، وقت بتائیں، اور اگر وہ تاریخ بدلنا چاہیں تو نیا وقت پوچھیں۔ صرف نستعلیق اردو میں جواب دیں۔",
"initialGreeting": true,
"greetingInstructions": "السلام علیکم کہیں، اپنا اور کلینک کا تعارف کروائیں، پھر پوچھیں کہ کیا وہ بات کر سکتے ہیں۔"
},
"session": {
"ttl": 1800,
"roomPrefix": "shifa-clinic"
},
"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"
}
}
},
"public": false,
"createdAt": "2026-08-18T02:05:22.029Z",
"updatedAt": "2026-08-18T02:05:22.029Z",
"createdBy": "ef80cc74-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"updatedBy": "ef80cc74-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"version": 1
}Assistants
Get an assistant
Config comes back verbatim — omitted fields stay omitted — which makes this the read step before an update, since updates replace rather than merge. You get the draft unless you ask for a version.
GET
/
realtime-assistants
/
{realtimeAssistantId}
Get an assistant
curl --request GET \
--url https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}', 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/{realtimeAssistantId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"realtimeAssistantId": "26932cc0-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"organizationId": "a12b7e74-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"projectId": "c782a4ec-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Shifa Clinic appointment confirmation",
"description": "Confirms next-day appointments for Shifa Clinic patients",
"config": {
"agent": {
"instructions": "آپ شفا کلینک کی جانب سے کال کر رہے ہیں۔ مریض سے کل کی اپائنٹمنٹ کی تصدیق کریں، وقت بتائیں، اور اگر وہ تاریخ بدلنا چاہیں تو نیا وقت پوچھیں۔ صرف نستعلیق اردو میں جواب دیں۔",
"initialGreeting": true,
"greetingInstructions": "السلام علیکم کہیں، اپنا اور کلینک کا تعارف کروائیں، پھر پوچھیں کہ کیا وہ بات کر سکتے ہیں۔"
},
"session": {
"ttl": 1800,
"roomPrefix": "shifa-clinic"
},
"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"
}
}
},
"public": false,
"createdAt": "2026-08-18T02:05:22.029Z",
"updatedAt": "2026-08-18T02:05:22.029Z",
"createdBy": "ef80cc74-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"updatedBy": "ef80cc74-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"version": 1
}Authorizations
Project API key (sk_api_…).
Path Parameters
Query Parameters
draft, prod, or a published version number. prod and a number return exactly what a call on them would run. A number that was never published is a 404.
Available options:
draft, prod Response
The assistant.
Keys beyond those listed are stored and returned unchanged.
Show child attributes
Show child attributes
Who created the assistant — an API key or a portal user.
The version this response shows. Every save bumps it, so published numbers skip the saves in between.
Required range:
x >= 1