curl --request POST \
--url https://api.vogent.ai/api/functions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"allowedNumbers": [
{
"number": "<string>"
}
],
"displayName": "<string>",
"allowAnyNumber": true
}
'import requests
url = "https://api.vogent.ai/api/functions"
payload = {
"name": "<string>",
"description": "<string>",
"allowedNumbers": [{ "number": "<string>" }],
"displayName": "<string>",
"allowAnyNumber": True
}
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({
name: '<string>',
description: '<string>',
allowedNumbers: [{number: '<string>'}],
displayName: '<string>',
allowAnyNumber: true
})
};
fetch('https://api.vogent.ai/api/functions', 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.vogent.ai/api/functions",
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([
'name' => '<string>',
'description' => '<string>',
'allowedNumbers' => [
[
'number' => '<string>'
]
],
'displayName' => '<string>',
'allowAnyNumber' => true
]),
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.vogent.ai/api/functions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"allowedNumbers\": [\n {\n \"number\": \"<string>\"\n }\n ],\n \"displayName\": \"<string>\",\n \"allowAnyNumber\": true\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.vogent.ai/api/functions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"allowedNumbers\": [\n {\n \"number\": \"<string>\"\n }\n ],\n \"displayName\": \"<string>\",\n \"allowAnyNumber\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vogent.ai/api/functions")
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 \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"allowedNumbers\": [\n {\n \"number\": \"<string>\"\n }\n ],\n \"displayName\": \"<string>\",\n \"allowAnyNumber\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"displayName": "<string>",
"description": "<string>",
"type": "transfer",
"allowedNumbers": [
{
"number": "<string>"
}
],
"allowAnyNumber": true,
"lifecycleMessages": {
"started": [
"<string>"
],
"waiting": [
"<string>"
],
"awaitSpeech": true
}
}Create a function
Creates a function.
curl --request POST \
--url https://api.vogent.ai/api/functions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"allowedNumbers": [
{
"number": "<string>"
}
],
"displayName": "<string>",
"allowAnyNumber": true
}
'import requests
url = "https://api.vogent.ai/api/functions"
payload = {
"name": "<string>",
"description": "<string>",
"allowedNumbers": [{ "number": "<string>" }],
"displayName": "<string>",
"allowAnyNumber": True
}
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({
name: '<string>',
description: '<string>',
allowedNumbers: [{number: '<string>'}],
displayName: '<string>',
allowAnyNumber: true
})
};
fetch('https://api.vogent.ai/api/functions', 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.vogent.ai/api/functions",
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([
'name' => '<string>',
'description' => '<string>',
'allowedNumbers' => [
[
'number' => '<string>'
]
],
'displayName' => '<string>',
'allowAnyNumber' => true
]),
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.vogent.ai/api/functions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"allowedNumbers\": [\n {\n \"number\": \"<string>\"\n }\n ],\n \"displayName\": \"<string>\",\n \"allowAnyNumber\": true\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.vogent.ai/api/functions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"allowedNumbers\": [\n {\n \"number\": \"<string>\"\n }\n ],\n \"displayName\": \"<string>\",\n \"allowAnyNumber\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vogent.ai/api/functions")
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 \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"allowedNumbers\": [\n {\n \"number\": \"<string>\"\n }\n ],\n \"displayName\": \"<string>\",\n \"allowAnyNumber\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"displayName": "<string>",
"description": "<string>",
"type": "transfer",
"allowedNumbers": [
{
"number": "<string>"
}
],
"allowAnyNumber": true,
"lifecycleMessages": {
"started": [
"<string>"
],
"waiting": [
"<string>"
],
"awaitSpeech": true
}
}Authorizations
In the form Bearer <api_key_here>. You can find your api key in your dashboard.
Body
- Transfer
- API
The name of the function.
A description of what the function does.
The numbers that the agent is allowed to transfer to in e.164 format (+11234567890).
Show child attributes
Show child attributes
A human readable label for the function, used in the Vogent dashboard instead of the name. Never shown to the model. Defaults to empty, in which case the name is displayed.
transfer, api Messages to display during function execution lifecycle events.
Show child attributes
Show child attributes
Instead of using a fixed list of allowed numbers, allow the agent to transfer to any number (not recommended).
Response
Successful operation
- Transfer
- API
The name of the function.
A human readable label for the function, used in the Vogent dashboard instead of the name. Never shown to the model, and empty when unset — display the name in that case.
A description of what the function does.
transfer, api The numbers that the agent is allowed to transfer to.
Show child attributes
Show child attributes
Instead of using a fixed list of allowed numbers, allow the agent to transfer to any number (not recommended).
Messages to display during function execution lifecycle events.
Show child attributes
Show child attributes