Connect a Web Call
curl --request POST \
--url https://api.trillet.ai/v1/api/calls/web/connect \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"agentId": "<string>",
"mode": "<string>"
}
'import requests
url = "https://api.trillet.ai/v1/api/calls/web/connect"
payload = {
"agentId": "<string>",
"mode": "<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({agentId: '<string>', mode: '<string>'})
};
fetch('https://api.trillet.ai/v1/api/calls/web/connect', 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/v1/api/calls/web/connect",
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([
'agentId' => '<string>',
'mode' => '<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/v1/api/calls/web/connect"
payload := strings.NewReader("{\n \"agentId\": \"<string>\",\n \"mode\": \"<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/v1/api/calls/web/connect")
.header("x-api-key", "<api-key>")
.header("x-workspace-id", "<x-workspace-id>")
.header("Content-Type", "application/json")
.body("{\n \"agentId\": \"<string>\",\n \"mode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trillet.ai/v1/api/calls/web/connect")
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 \"agentId\": \"<string>\",\n \"mode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"callId": "call1234",
"roomName": "web-genericAgent-call1234",
"token": "<REDACTED_JWT_TOKEN>",
"agent": {
"id": "agent12345678",
"name": "Generic Agent",
"model": "llm-mini",
"voice": {
"provider": "genericVoiceProvider",
"voiceId": "standard",
"language": "en"
}
}
}
Connect a Web Call
Initiate a live web-based call session with an AI agent.
POST
/
v1
/
api
/
calls
/
web
/
connect
Connect a Web Call
curl --request POST \
--url https://api.trillet.ai/v1/api/calls/web/connect \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"agentId": "<string>",
"mode": "<string>"
}
'import requests
url = "https://api.trillet.ai/v1/api/calls/web/connect"
payload = {
"agentId": "<string>",
"mode": "<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({agentId: '<string>', mode: '<string>'})
};
fetch('https://api.trillet.ai/v1/api/calls/web/connect', 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/v1/api/calls/web/connect",
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([
'agentId' => '<string>',
'mode' => '<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/v1/api/calls/web/connect"
payload := strings.NewReader("{\n \"agentId\": \"<string>\",\n \"mode\": \"<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/v1/api/calls/web/connect")
.header("x-api-key", "<api-key>")
.header("x-workspace-id", "<x-workspace-id>")
.header("Content-Type", "application/json")
.body("{\n \"agentId\": \"<string>\",\n \"mode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trillet.ai/v1/api/calls/web/connect")
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 \"agentId\": \"<string>\",\n \"mode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"callId": "call1234",
"roomName": "web-genericAgent-call1234",
"token": "<REDACTED_JWT_TOKEN>",
"agent": {
"id": "agent12345678",
"name": "Generic Agent",
"model": "llm-mini",
"voice": {
"provider": "genericVoiceProvider",
"voiceId": "standard",
"language": "en"
}
}
}
Initiate a web call that runs entirely via WebRTC in the browser (no phone number required). The agent can interact via voice.
Headers
string
required
API key used for authenticating requests to the API.
string
required
Workspace identifier for the API.
Request Body
string
required
The ID of the agent that will handle this web call.
string
The mode of the call. Defaults to “voice”.
{
"status": "success",
"callId": "call1234",
"roomName": "web-genericAgent-call1234",
"token": "<REDACTED_JWT_TOKEN>",
"agent": {
"id": "agent12345678",
"name": "Generic Agent",
"model": "llm-mini",
"voice": {
"provider": "genericVoiceProvider",
"voiceId": "standard",
"language": "en"
}
}
}
⌘I
