Get an assistant's publish state
curl --request GET \
--url https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}/metadata \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}/metadata"
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}/metadata', 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}/metadata",
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}/metadata"
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}/metadata")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}/metadata")
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": "0f4a91d3-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Edversity admissions follow-up",
"description": "Calls warm leads about the cybersecurity programme",
"aliases": {
"draft": {
"version": 14,
"updatedAt": "2026-08-18T10:02:47.883Z",
"updatedBy": "d9164fbd-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
"prod": {
"version": 11,
"updatedAt": "2026-08-18T09:58:03.120Z",
"updatedBy": "d9164fbd-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}Assistants
Get an assistant's publish state
Where draft and prod point, without any config. prod is absent until the first publish. When draft.version is ahead of prod.version, the draft has edits that calls don’t run yet.
GET
/
realtime-assistants
/
{realtimeAssistantId}
/
metadata
Get an assistant's publish state
curl --request GET \
--url https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}/metadata \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}/metadata"
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}/metadata', 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}/metadata",
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}/metadata"
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}/metadata")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upliftai.org/v1/realtime-assistants/{realtimeAssistantId}/metadata")
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": "0f4a91d3-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Edversity admissions follow-up",
"description": "Calls warm leads about the cybersecurity programme",
"aliases": {
"draft": {
"version": 14,
"updatedAt": "2026-08-18T10:02:47.883Z",
"updatedBy": "d9164fbd-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
},
"prod": {
"version": 11,
"updatedAt": "2026-08-18T09:58:03.120Z",
"updatedBy": "d9164fbd-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}