cURL
curl --request POST \
--url https://your-hosted-ip/api/v1/agent/join \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"meetingUrl": "<string>",
"agentName": "<string>",
"adhoc": false,
"automaticLeave": {
"EveryoneLeftTimeout": 60,
"NoOneJoinedTimeout": 900,
"WaitingRoomTimeout": 900
},
"webhookUrl": "<string>",
"metadata": {
"additionalKey": "value"
},
"agentVideoOutput": {
"url": "<string>",
"base64Data": "<string>"
}
}
'import requests
url = "https://your-hosted-ip/api/v1/agent/join"
payload = {
"meetingUrl": "<string>",
"agentName": "<string>",
"adhoc": False,
"automaticLeave": {
"EveryoneLeftTimeout": 60,
"NoOneJoinedTimeout": 900,
"WaitingRoomTimeout": 900
},
"webhookUrl": "<string>",
"metadata": { "additionalKey": "value" },
"agentVideoOutput": {
"url": "<string>",
"base64Data": "<string>"
}
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
meetingUrl: '<string>',
agentName: '<string>',
adhoc: false,
automaticLeave: {EveryoneLeftTimeout: 60, NoOneJoinedTimeout: 900, WaitingRoomTimeout: 900},
webhookUrl: '<string>',
metadata: {additionalKey: 'value'},
agentVideoOutput: {url: '<string>', base64Data: '<string>'}
})
};
fetch('https://your-hosted-ip/api/v1/agent/join', 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://your-hosted-ip/api/v1/agent/join",
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([
'meetingUrl' => '<string>',
'agentName' => '<string>',
'adhoc' => false,
'automaticLeave' => [
'EveryoneLeftTimeout' => 60,
'NoOneJoinedTimeout' => 900,
'WaitingRoomTimeout' => 900
],
'webhookUrl' => '<string>',
'metadata' => [
'additionalKey' => 'value'
],
'agentVideoOutput' => [
'url' => '<string>',
'base64Data' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://your-hosted-ip/api/v1/agent/join"
payload := strings.NewReader("{\n \"meetingUrl\": \"<string>\",\n \"agentName\": \"<string>\",\n \"adhoc\": false,\n \"automaticLeave\": {\n \"EveryoneLeftTimeout\": 60,\n \"NoOneJoinedTimeout\": 900,\n \"WaitingRoomTimeout\": 900\n },\n \"webhookUrl\": \"<string>\",\n \"metadata\": {\n \"additionalKey\": \"value\"\n },\n \"agentVideoOutput\": {\n \"url\": \"<string>\",\n \"base64Data\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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://your-hosted-ip/api/v1/agent/join")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"meetingUrl\": \"<string>\",\n \"agentName\": \"<string>\",\n \"adhoc\": false,\n \"automaticLeave\": {\n \"EveryoneLeftTimeout\": 60,\n \"NoOneJoinedTimeout\": 900,\n \"WaitingRoomTimeout\": 900\n },\n \"webhookUrl\": \"<string>\",\n \"metadata\": {\n \"additionalKey\": \"value\"\n },\n \"agentVideoOutput\": {\n \"url\": \"<string>\",\n \"base64Data\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-hosted-ip/api/v1/agent/join")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meetingUrl\": \"<string>\",\n \"agentName\": \"<string>\",\n \"adhoc\": false,\n \"automaticLeave\": {\n \"EveryoneLeftTimeout\": 60,\n \"NoOneJoinedTimeout\": 900,\n \"WaitingRoomTimeout\": 900\n },\n \"webhookUrl\": \"<string>\",\n \"metadata\": {\n \"additionalKey\": \"value\"\n },\n \"agentVideoOutput\": {\n \"url\": \"<string>\",\n \"base64Data\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"agentId": "<string>",
"statusChanges": [
{
"code": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"sub_code": "<string>"
}
],
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}Current APIs
Join Meeting
Joins a meeting with a customizable agent.
POST
/
agent
/
join
cURL
curl --request POST \
--url https://your-hosted-ip/api/v1/agent/join \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"meetingUrl": "<string>",
"agentName": "<string>",
"adhoc": false,
"automaticLeave": {
"EveryoneLeftTimeout": 60,
"NoOneJoinedTimeout": 900,
"WaitingRoomTimeout": 900
},
"webhookUrl": "<string>",
"metadata": {
"additionalKey": "value"
},
"agentVideoOutput": {
"url": "<string>",
"base64Data": "<string>"
}
}
'import requests
url = "https://your-hosted-ip/api/v1/agent/join"
payload = {
"meetingUrl": "<string>",
"agentName": "<string>",
"adhoc": False,
"automaticLeave": {
"EveryoneLeftTimeout": 60,
"NoOneJoinedTimeout": 900,
"WaitingRoomTimeout": 900
},
"webhookUrl": "<string>",
"metadata": { "additionalKey": "value" },
"agentVideoOutput": {
"url": "<string>",
"base64Data": "<string>"
}
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
meetingUrl: '<string>',
agentName: '<string>',
adhoc: false,
automaticLeave: {EveryoneLeftTimeout: 60, NoOneJoinedTimeout: 900, WaitingRoomTimeout: 900},
webhookUrl: '<string>',
metadata: {additionalKey: 'value'},
agentVideoOutput: {url: '<string>', base64Data: '<string>'}
})
};
fetch('https://your-hosted-ip/api/v1/agent/join', 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://your-hosted-ip/api/v1/agent/join",
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([
'meetingUrl' => '<string>',
'agentName' => '<string>',
'adhoc' => false,
'automaticLeave' => [
'EveryoneLeftTimeout' => 60,
'NoOneJoinedTimeout' => 900,
'WaitingRoomTimeout' => 900
],
'webhookUrl' => '<string>',
'metadata' => [
'additionalKey' => 'value'
],
'agentVideoOutput' => [
'url' => '<string>',
'base64Data' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://your-hosted-ip/api/v1/agent/join"
payload := strings.NewReader("{\n \"meetingUrl\": \"<string>\",\n \"agentName\": \"<string>\",\n \"adhoc\": false,\n \"automaticLeave\": {\n \"EveryoneLeftTimeout\": 60,\n \"NoOneJoinedTimeout\": 900,\n \"WaitingRoomTimeout\": 900\n },\n \"webhookUrl\": \"<string>\",\n \"metadata\": {\n \"additionalKey\": \"value\"\n },\n \"agentVideoOutput\": {\n \"url\": \"<string>\",\n \"base64Data\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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://your-hosted-ip/api/v1/agent/join")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"meetingUrl\": \"<string>\",\n \"agentName\": \"<string>\",\n \"adhoc\": false,\n \"automaticLeave\": {\n \"EveryoneLeftTimeout\": 60,\n \"NoOneJoinedTimeout\": 900,\n \"WaitingRoomTimeout\": 900\n },\n \"webhookUrl\": \"<string>\",\n \"metadata\": {\n \"additionalKey\": \"value\"\n },\n \"agentVideoOutput\": {\n \"url\": \"<string>\",\n \"base64Data\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-hosted-ip/api/v1/agent/join")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"meetingUrl\": \"<string>\",\n \"agentName\": \"<string>\",\n \"adhoc\": false,\n \"automaticLeave\": {\n \"EveryoneLeftTimeout\": 60,\n \"NoOneJoinedTimeout\": 900,\n \"WaitingRoomTimeout\": 900\n },\n \"webhookUrl\": \"<string>\",\n \"metadata\": {\n \"additionalKey\": \"value\"\n },\n \"agentVideoOutput\": {\n \"url\": \"<string>\",\n \"base64Data\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"agentId": "<string>",
"statusChanges": [
{
"code": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"sub_code": "<string>"
}
],
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}Authorizations
Use the format 'Token ' for authentication.
Body
application/json
Details of the meeting agent joining the session.
URL of the meeting the agent will join
Name of the meeting agent
Maximum string length:
50Indicates if the agent should join as an ad-hoc participant
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Webhook URL to send meeting updates
Maximum string length:
200Custom metadata that can be included with the request
Video output configuration for the agent
- Option 1
- Option 2
Show child attributes
Show child attributes
Media streaming configuration
Show child attributes
Show child attributes
Chat message configuration
Show child attributes
Show child attributes
Recording settings configuration
Show child attributes
Show child attributes
⌘I