Remove AI Agent (Human Takeover)
curl --request POST \
--url https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"participantIdentity": "<string>"
}
'import requests
url = "https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent"
payload = { "participantIdentity": "<string>" }
headers = {
"x-api-key": "<api-key>",
"x-workspace-id": "<x-workspace-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
'x-workspace-id': '<x-workspace-id>',
'Content-Type': 'application/json'
},
body: JSON.stringify({participantIdentity: '<string>'})
};
fetch('https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent', 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.trillet.ai/v2/api/active-calls/{roomName}/remove-agent",
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([
'participantIdentity' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-workspace-id: <x-workspace-id>"
],
]);
$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.trillet.ai/v2/api/active-calls/{roomName}/remove-agent"
payload := strings.NewReader("{\n \"participantIdentity\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-workspace-id", "<x-workspace-id>")
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.trillet.ai/v2/api/active-calls/{roomName}/remove-agent")
.header("x-api-key", "<api-key>")
.header("x-workspace-id", "<x-workspace-id>")
.header("Content-Type", "application/json")
.body("{\n \"participantIdentity\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["x-workspace-id"] = '<x-workspace-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"participantIdentity\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Agent removed from call",
"roomName": "call-abc123",
"mutedTracks": ["TR_abc123"]
}
Remove AI Agent (Human Takeover)
Remove the AI agent from an active call to allow human takeover. The agent is muted rather than disconnected.
POST
/
v2
/
api
/
active-calls
/
{roomName}
/
remove-agent
Remove AI Agent (Human Takeover)
curl --request POST \
--url https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"participantIdentity": "<string>"
}
'import requests
url = "https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent"
payload = { "participantIdentity": "<string>" }
headers = {
"x-api-key": "<api-key>",
"x-workspace-id": "<x-workspace-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-key': '<api-key>',
'x-workspace-id': '<x-workspace-id>',
'Content-Type': 'application/json'
},
body: JSON.stringify({participantIdentity: '<string>'})
};
fetch('https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent', 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.trillet.ai/v2/api/active-calls/{roomName}/remove-agent",
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([
'participantIdentity' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>",
"x-workspace-id: <x-workspace-id>"
],
]);
$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.trillet.ai/v2/api/active-calls/{roomName}/remove-agent"
payload := strings.NewReader("{\n \"participantIdentity\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("x-workspace-id", "<x-workspace-id>")
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.trillet.ai/v2/api/active-calls/{roomName}/remove-agent")
.header("x-api-key", "<api-key>")
.header("x-workspace-id", "<x-workspace-id>")
.header("Content-Type", "application/json")
.body("{\n \"participantIdentity\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trillet.ai/v2/api/active-calls/{roomName}/remove-agent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["x-workspace-id"] = '<x-workspace-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"participantIdentity\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Agent removed from call",
"roomName": "call-abc123",
"mutedTracks": ["TR_abc123"]
}
Headers
string
required
API key used for authenticating requests to the API.
string
required
Workspace identifier for the API.
Path Parameters
string
required
The LiveKit room name of the active call.
Request Body
string
required
Identity of the AI agent participant to remove/mute.
Response Fields
boolean
Whether the agent was removed successfully.
string
Confirmation message.
string
The room name of the call.
array
Array of track SIDs that were muted.
{
"success": true,
"message": "Agent removed from call",
"roomName": "call-abc123",
"mutedTracks": ["TR_abc123"]
}
⌘I
