Agents
Connect an address
Make the agent answer on an address. Connecting {address, type} connects the whole channel group that entry belongs to (the entries of GET /v2/channels that share its v1SenderId): the agent then answers on each transport of that group that its triggerOnChannels allows, which channels on the agent lists. type is what picks the group when two groups share the address.
An address answers with one agent at a time; connecting one already answered by another agent returns 400 naming that agent.
POST
/
v2
/
agents
/
{agentId}
/
channels
Connect an address
curl --request POST \
--url https://api.zavu.dev/v2/agents/{agentId}/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"address": "+13125551212"
}
'import requests
url = "https://api.zavu.dev/v2/agents/{agentId}/channels"
payload = { "address": "+13125551212" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({address: '+13125551212'})
};
fetch('https://api.zavu.dev/v2/agents/{agentId}/channels', 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.zavu.dev/v2/agents/{agentId}/channels",
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([
'address' => '+13125551212'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.zavu.dev/v2/agents/{agentId}/channels"
payload := strings.NewReader("{\n \"address\": \"+13125551212\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.zavu.dev/v2/agents/{agentId}/channels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"+13125551212\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zavu.dev/v2/agents/{agentId}/channels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"+13125551212\"\n}"
response = http.request(request)
puts response.read_body{
"agent": {
"id": "agent_abc123",
"name": "Customer Support Agent",
"enabled": true,
"provider": "openai",
"model": "gpt-4o-mini",
"systemPrompt": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"channels": [
{
"address": "<string>",
"type": "sms",
"active": true
}
],
"contextWindowMessages": 10,
"includeContactMetadata": true,
"maxTokens": 123,
"temperature": 123,
"triggerOnChannels": [
"sms",
"whatsapp"
],
"triggerOnMessageTypes": [
"text"
],
"stats": {
"totalInvocations": 123,
"totalTokensUsed": 123,
"totalCost": 123
},
"voice": {
"enabled": true,
"greeting": "Hi, thanks for calling Acme. How can I help you today?",
"greetings": {
"es": "Hola, soy Atlas. Preguntame lo que quieras."
},
"language": "en",
"model": "openai/gpt-4o",
"sttProvider": "<string>",
"sttModel": "<string>",
"ttsProvider": "<string>",
"ttsVoiceId": "aria",
"voiceSpeed": 1,
"interruptible": true,
"maxCallDurationMinutes": 15,
"maxIdleSeconds": 30,
"recordCalls": true,
"voicemailAction": "hangup",
"voicemailMessage": "<string>",
"transferPhoneNumber": "+14155551234"
}
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
Response
Connected.
An AI agent. It answers on the addresses in channels.
Show child attributes
Show child attributes
⌘I
Connect an address
curl --request POST \
--url https://api.zavu.dev/v2/agents/{agentId}/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"address": "+13125551212"
}
'import requests
url = "https://api.zavu.dev/v2/agents/{agentId}/channels"
payload = { "address": "+13125551212" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({address: '+13125551212'})
};
fetch('https://api.zavu.dev/v2/agents/{agentId}/channels', 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.zavu.dev/v2/agents/{agentId}/channels",
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([
'address' => '+13125551212'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.zavu.dev/v2/agents/{agentId}/channels"
payload := strings.NewReader("{\n \"address\": \"+13125551212\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.zavu.dev/v2/agents/{agentId}/channels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"+13125551212\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zavu.dev/v2/agents/{agentId}/channels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"+13125551212\"\n}"
response = http.request(request)
puts response.read_body{
"agent": {
"id": "agent_abc123",
"name": "Customer Support Agent",
"enabled": true,
"provider": "openai",
"model": "gpt-4o-mini",
"systemPrompt": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"channels": [
{
"address": "<string>",
"type": "sms",
"active": true
}
],
"contextWindowMessages": 10,
"includeContactMetadata": true,
"maxTokens": 123,
"temperature": 123,
"triggerOnChannels": [
"sms",
"whatsapp"
],
"triggerOnMessageTypes": [
"text"
],
"stats": {
"totalInvocations": 123,
"totalTokensUsed": 123,
"totalCost": 123
},
"voice": {
"enabled": true,
"greeting": "Hi, thanks for calling Acme. How can I help you today?",
"greetings": {
"es": "Hola, soy Atlas. Preguntame lo que quieras."
},
"language": "en",
"model": "openai/gpt-4o",
"sttProvider": "<string>",
"sttModel": "<string>",
"ttsProvider": "<string>",
"ttsVoiceId": "aria",
"voiceSpeed": 1,
"interruptible": true,
"maxCallDurationMinutes": 15,
"maxIdleSeconds": 30,
"recordCalls": true,
"voicemailAction": "hangup",
"voicemailMessage": "<string>",
"transferPhoneNumber": "+14155551234"
}
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}{
"code": "invalid_request",
"message": "<string>",
"details": {
"errors": [
{
"path": [
"<string>"
],
"message": "<string>",
"code": "<string>"
}
]
}
}