curl --request POST \
--url https://app.freyavoice.ai/api/v2/campaign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Q1 Customer Outreach",
"assistantId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"description": "Follow-up calls for Q1 leads",
"startDate": "2024-03-15",
"startTime": "09:00",
"endTime": "17:00",
"timezone": "America/New_York",
"activeDays": [
0,
1,
2,
3,
4
],
"daySchedules": {
"2": {
"startTime": "10:00",
"endTime": "18:00"
},
"4": {
"startTime": "09:00",
"endTime": "15:00"
}
},
"phoneNumber": "+14155551234",
"callRetries": 3,
"retryDelaySeconds": 3600,
"retryDelayMode": "fixed",
"webhookUrl": "https://api.example.com/webhook/campaign",
"customers": [
{
"phoneNumber": "+14155559001",
"properties": {
"name": "John Doe",
"company": "Acme Inc"
}
},
{
"phoneNumber": "+14155559002",
"properties": {
"name": "Jane Smith",
"company": "Tech Corp"
}
}
]
}
'import requests
url = "https://app.freyavoice.ai/api/v2/campaign"
payload = {
"name": "Q1 Customer Outreach",
"assistantId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"description": "Follow-up calls for Q1 leads",
"startDate": "2024-03-15",
"startTime": "09:00",
"endTime": "17:00",
"timezone": "America/New_York",
"activeDays": [0, 1, 2, 3, 4],
"daySchedules": {
"2": {
"startTime": "10:00",
"endTime": "18:00"
},
"4": {
"startTime": "09:00",
"endTime": "15:00"
}
},
"phoneNumber": "+14155551234",
"callRetries": 3,
"retryDelaySeconds": 3600,
"retryDelayMode": "fixed",
"webhookUrl": "https://api.example.com/webhook/campaign",
"customers": [
{
"phoneNumber": "+14155559001",
"properties": {
"name": "John Doe",
"company": "Acme Inc"
}
},
{
"phoneNumber": "+14155559002",
"properties": {
"name": "Jane Smith",
"company": "Tech Corp"
}
}
]
}
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: 'Q1 Customer Outreach',
assistantId: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
description: 'Follow-up calls for Q1 leads',
startDate: '2024-03-15',
startTime: '09:00',
endTime: '17:00',
timezone: 'America/New_York',
activeDays: [0, 1, 2, 3, 4],
daySchedules: {
'2': {startTime: '10:00', endTime: '18:00'},
'4': {startTime: '09:00', endTime: '15:00'}
},
phoneNumber: '+14155551234',
callRetries: 3,
retryDelaySeconds: 3600,
retryDelayMode: 'fixed',
webhookUrl: 'https://api.example.com/webhook/campaign',
customers: [
{
phoneNumber: '+14155559001',
properties: {name: 'John Doe', company: 'Acme Inc'}
},
{
phoneNumber: '+14155559002',
properties: {name: 'Jane Smith', company: 'Tech Corp'}
}
]
})
};
fetch('https://app.freyavoice.ai/api/v2/campaign', 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://app.freyavoice.ai/api/v2/campaign",
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' => 'Q1 Customer Outreach',
'assistantId' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'description' => 'Follow-up calls for Q1 leads',
'startDate' => '2024-03-15',
'startTime' => '09:00',
'endTime' => '17:00',
'timezone' => 'America/New_York',
'activeDays' => [
0,
1,
2,
3,
4
],
'daySchedules' => [
'2' => [
'startTime' => '10:00',
'endTime' => '18:00'
],
'4' => [
'startTime' => '09:00',
'endTime' => '15:00'
]
],
'phoneNumber' => '+14155551234',
'callRetries' => 3,
'retryDelaySeconds' => 3600,
'retryDelayMode' => 'fixed',
'webhookUrl' => 'https://api.example.com/webhook/campaign',
'customers' => [
[
'phoneNumber' => '+14155559001',
'properties' => [
'name' => 'John Doe',
'company' => 'Acme Inc'
]
],
[
'phoneNumber' => '+14155559002',
'properties' => [
'name' => 'Jane Smith',
'company' => 'Tech Corp'
]
]
]
]),
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://app.freyavoice.ai/api/v2/campaign"
payload := strings.NewReader("{\n \"name\": \"Q1 Customer Outreach\",\n \"assistantId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"description\": \"Follow-up calls for Q1 leads\",\n \"startDate\": \"2024-03-15\",\n \"startTime\": \"09:00\",\n \"endTime\": \"17:00\",\n \"timezone\": \"America/New_York\",\n \"activeDays\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"daySchedules\": {\n \"2\": {\n \"startTime\": \"10:00\",\n \"endTime\": \"18:00\"\n },\n \"4\": {\n \"startTime\": \"09:00\",\n \"endTime\": \"15:00\"\n }\n },\n \"phoneNumber\": \"+14155551234\",\n \"callRetries\": 3,\n \"retryDelaySeconds\": 3600,\n \"retryDelayMode\": \"fixed\",\n \"webhookUrl\": \"https://api.example.com/webhook/campaign\",\n \"customers\": [\n {\n \"phoneNumber\": \"+14155559001\",\n \"properties\": {\n \"name\": \"John Doe\",\n \"company\": \"Acme Inc\"\n }\n },\n {\n \"phoneNumber\": \"+14155559002\",\n \"properties\": {\n \"name\": \"Jane Smith\",\n \"company\": \"Tech Corp\"\n }\n }\n ]\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://app.freyavoice.ai/api/v2/campaign")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Q1 Customer Outreach\",\n \"assistantId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"description\": \"Follow-up calls for Q1 leads\",\n \"startDate\": \"2024-03-15\",\n \"startTime\": \"09:00\",\n \"endTime\": \"17:00\",\n \"timezone\": \"America/New_York\",\n \"activeDays\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"daySchedules\": {\n \"2\": {\n \"startTime\": \"10:00\",\n \"endTime\": \"18:00\"\n },\n \"4\": {\n \"startTime\": \"09:00\",\n \"endTime\": \"15:00\"\n }\n },\n \"phoneNumber\": \"+14155551234\",\n \"callRetries\": 3,\n \"retryDelaySeconds\": 3600,\n \"retryDelayMode\": \"fixed\",\n \"webhookUrl\": \"https://api.example.com/webhook/campaign\",\n \"customers\": [\n {\n \"phoneNumber\": \"+14155559001\",\n \"properties\": {\n \"name\": \"John Doe\",\n \"company\": \"Acme Inc\"\n }\n },\n {\n \"phoneNumber\": \"+14155559002\",\n \"properties\": {\n \"name\": \"Jane Smith\",\n \"company\": \"Tech Corp\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.freyavoice.ai/api/v2/campaign")
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\": \"Q1 Customer Outreach\",\n \"assistantId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"description\": \"Follow-up calls for Q1 leads\",\n \"startDate\": \"2024-03-15\",\n \"startTime\": \"09:00\",\n \"endTime\": \"17:00\",\n \"timezone\": \"America/New_York\",\n \"activeDays\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"daySchedules\": {\n \"2\": {\n \"startTime\": \"10:00\",\n \"endTime\": \"18:00\"\n },\n \"4\": {\n \"startTime\": \"09:00\",\n \"endTime\": \"15:00\"\n }\n },\n \"phoneNumber\": \"+14155551234\",\n \"callRetries\": 3,\n \"retryDelaySeconds\": 3600,\n \"retryDelayMode\": \"fixed\",\n \"webhookUrl\": \"https://api.example.com/webhook/campaign\",\n \"customers\": [\n {\n \"phoneNumber\": \"+14155559001\",\n \"properties\": {\n \"name\": \"John Doe\",\n \"company\": \"Acme Inc\"\n }\n },\n {\n \"phoneNumber\": \"+14155559002\",\n \"properties\": {\n \"name\": \"Jane Smith\",\n \"company\": \"Tech Corp\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"message": "<string>",
"result": {
"status": "<string>",
"isScheduled": true,
"campaign": {
"id": "<string>",
"name": "<string>",
"workspaceId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"assistantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phoneNumberId": "<string>",
"description": "<string>",
"status": "draft",
"startDate": "2023-12-25",
"startTime": "<string>",
"timezone": "UTC",
"endTime": "<string>",
"activeDays": [
0,
1,
2,
3,
4,
5,
6
],
"daySchedules": {},
"phoneNumber": "<string>",
"callRetries": 0,
"retryDelaySeconds": 300,
"retryDelayMode": "fixed",
"retryConditions": [
"No Answer",
"Busy",
"Timeout",
"Unreachable",
"Network Error",
"Resource Unavailable",
"Service Unavailable",
"voicemail"
],
"endDate": "2023-12-25",
"schedulingMode": "even",
"callIntervalSeconds": 30,
"maxConcurrency": 5,
"webhookUrl": "<string>",
"customers": [],
"callIds": [],
"roomNames": [],
"events": [],
"version": "v1"
},
"message": "<string>"
}
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}Create campaign
Creates an outbound voice campaign and schedules calls to the provided customers.
Timezone handling:
All time values (startTime, endTime, and daySchedules entries) are wall-clock times interpreted in the campaign’s timezone. For example, startTime: "09:00" with timezone: "Europe/Prague" means 09:00 CET/CEST (depending on DST). See the IANA timezone list for valid identifiers.
Per-day schedule overrides:
Use daySchedules to set different calling hours for specific days. Days not listed in daySchedules use the global startTime/endTime window. Days not in activeDays are inactive regardless of daySchedules.
curl --request POST \
--url https://app.freyavoice.ai/api/v2/campaign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Q1 Customer Outreach",
"assistantId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"description": "Follow-up calls for Q1 leads",
"startDate": "2024-03-15",
"startTime": "09:00",
"endTime": "17:00",
"timezone": "America/New_York",
"activeDays": [
0,
1,
2,
3,
4
],
"daySchedules": {
"2": {
"startTime": "10:00",
"endTime": "18:00"
},
"4": {
"startTime": "09:00",
"endTime": "15:00"
}
},
"phoneNumber": "+14155551234",
"callRetries": 3,
"retryDelaySeconds": 3600,
"retryDelayMode": "fixed",
"webhookUrl": "https://api.example.com/webhook/campaign",
"customers": [
{
"phoneNumber": "+14155559001",
"properties": {
"name": "John Doe",
"company": "Acme Inc"
}
},
{
"phoneNumber": "+14155559002",
"properties": {
"name": "Jane Smith",
"company": "Tech Corp"
}
}
]
}
'import requests
url = "https://app.freyavoice.ai/api/v2/campaign"
payload = {
"name": "Q1 Customer Outreach",
"assistantId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"description": "Follow-up calls for Q1 leads",
"startDate": "2024-03-15",
"startTime": "09:00",
"endTime": "17:00",
"timezone": "America/New_York",
"activeDays": [0, 1, 2, 3, 4],
"daySchedules": {
"2": {
"startTime": "10:00",
"endTime": "18:00"
},
"4": {
"startTime": "09:00",
"endTime": "15:00"
}
},
"phoneNumber": "+14155551234",
"callRetries": 3,
"retryDelaySeconds": 3600,
"retryDelayMode": "fixed",
"webhookUrl": "https://api.example.com/webhook/campaign",
"customers": [
{
"phoneNumber": "+14155559001",
"properties": {
"name": "John Doe",
"company": "Acme Inc"
}
},
{
"phoneNumber": "+14155559002",
"properties": {
"name": "Jane Smith",
"company": "Tech Corp"
}
}
]
}
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: 'Q1 Customer Outreach',
assistantId: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
description: 'Follow-up calls for Q1 leads',
startDate: '2024-03-15',
startTime: '09:00',
endTime: '17:00',
timezone: 'America/New_York',
activeDays: [0, 1, 2, 3, 4],
daySchedules: {
'2': {startTime: '10:00', endTime: '18:00'},
'4': {startTime: '09:00', endTime: '15:00'}
},
phoneNumber: '+14155551234',
callRetries: 3,
retryDelaySeconds: 3600,
retryDelayMode: 'fixed',
webhookUrl: 'https://api.example.com/webhook/campaign',
customers: [
{
phoneNumber: '+14155559001',
properties: {name: 'John Doe', company: 'Acme Inc'}
},
{
phoneNumber: '+14155559002',
properties: {name: 'Jane Smith', company: 'Tech Corp'}
}
]
})
};
fetch('https://app.freyavoice.ai/api/v2/campaign', 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://app.freyavoice.ai/api/v2/campaign",
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' => 'Q1 Customer Outreach',
'assistantId' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'description' => 'Follow-up calls for Q1 leads',
'startDate' => '2024-03-15',
'startTime' => '09:00',
'endTime' => '17:00',
'timezone' => 'America/New_York',
'activeDays' => [
0,
1,
2,
3,
4
],
'daySchedules' => [
'2' => [
'startTime' => '10:00',
'endTime' => '18:00'
],
'4' => [
'startTime' => '09:00',
'endTime' => '15:00'
]
],
'phoneNumber' => '+14155551234',
'callRetries' => 3,
'retryDelaySeconds' => 3600,
'retryDelayMode' => 'fixed',
'webhookUrl' => 'https://api.example.com/webhook/campaign',
'customers' => [
[
'phoneNumber' => '+14155559001',
'properties' => [
'name' => 'John Doe',
'company' => 'Acme Inc'
]
],
[
'phoneNumber' => '+14155559002',
'properties' => [
'name' => 'Jane Smith',
'company' => 'Tech Corp'
]
]
]
]),
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://app.freyavoice.ai/api/v2/campaign"
payload := strings.NewReader("{\n \"name\": \"Q1 Customer Outreach\",\n \"assistantId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"description\": \"Follow-up calls for Q1 leads\",\n \"startDate\": \"2024-03-15\",\n \"startTime\": \"09:00\",\n \"endTime\": \"17:00\",\n \"timezone\": \"America/New_York\",\n \"activeDays\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"daySchedules\": {\n \"2\": {\n \"startTime\": \"10:00\",\n \"endTime\": \"18:00\"\n },\n \"4\": {\n \"startTime\": \"09:00\",\n \"endTime\": \"15:00\"\n }\n },\n \"phoneNumber\": \"+14155551234\",\n \"callRetries\": 3,\n \"retryDelaySeconds\": 3600,\n \"retryDelayMode\": \"fixed\",\n \"webhookUrl\": \"https://api.example.com/webhook/campaign\",\n \"customers\": [\n {\n \"phoneNumber\": \"+14155559001\",\n \"properties\": {\n \"name\": \"John Doe\",\n \"company\": \"Acme Inc\"\n }\n },\n {\n \"phoneNumber\": \"+14155559002\",\n \"properties\": {\n \"name\": \"Jane Smith\",\n \"company\": \"Tech Corp\"\n }\n }\n ]\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://app.freyavoice.ai/api/v2/campaign")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Q1 Customer Outreach\",\n \"assistantId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"description\": \"Follow-up calls for Q1 leads\",\n \"startDate\": \"2024-03-15\",\n \"startTime\": \"09:00\",\n \"endTime\": \"17:00\",\n \"timezone\": \"America/New_York\",\n \"activeDays\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"daySchedules\": {\n \"2\": {\n \"startTime\": \"10:00\",\n \"endTime\": \"18:00\"\n },\n \"4\": {\n \"startTime\": \"09:00\",\n \"endTime\": \"15:00\"\n }\n },\n \"phoneNumber\": \"+14155551234\",\n \"callRetries\": 3,\n \"retryDelaySeconds\": 3600,\n \"retryDelayMode\": \"fixed\",\n \"webhookUrl\": \"https://api.example.com/webhook/campaign\",\n \"customers\": [\n {\n \"phoneNumber\": \"+14155559001\",\n \"properties\": {\n \"name\": \"John Doe\",\n \"company\": \"Acme Inc\"\n }\n },\n {\n \"phoneNumber\": \"+14155559002\",\n \"properties\": {\n \"name\": \"Jane Smith\",\n \"company\": \"Tech Corp\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.freyavoice.ai/api/v2/campaign")
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\": \"Q1 Customer Outreach\",\n \"assistantId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"description\": \"Follow-up calls for Q1 leads\",\n \"startDate\": \"2024-03-15\",\n \"startTime\": \"09:00\",\n \"endTime\": \"17:00\",\n \"timezone\": \"America/New_York\",\n \"activeDays\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"daySchedules\": {\n \"2\": {\n \"startTime\": \"10:00\",\n \"endTime\": \"18:00\"\n },\n \"4\": {\n \"startTime\": \"09:00\",\n \"endTime\": \"15:00\"\n }\n },\n \"phoneNumber\": \"+14155551234\",\n \"callRetries\": 3,\n \"retryDelaySeconds\": 3600,\n \"retryDelayMode\": \"fixed\",\n \"webhookUrl\": \"https://api.example.com/webhook/campaign\",\n \"customers\": [\n {\n \"phoneNumber\": \"+14155559001\",\n \"properties\": {\n \"name\": \"John Doe\",\n \"company\": \"Acme Inc\"\n }\n },\n {\n \"phoneNumber\": \"+14155559002\",\n \"properties\": {\n \"name\": \"Jane Smith\",\n \"company\": \"Tech Corp\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"message": "<string>",
"result": {
"status": "<string>",
"isScheduled": true,
"campaign": {
"id": "<string>",
"name": "<string>",
"workspaceId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"assistantId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phoneNumberId": "<string>",
"description": "<string>",
"status": "draft",
"startDate": "2023-12-25",
"startTime": "<string>",
"timezone": "UTC",
"endTime": "<string>",
"activeDays": [
0,
1,
2,
3,
4,
5,
6
],
"daySchedules": {},
"phoneNumber": "<string>",
"callRetries": 0,
"retryDelaySeconds": 300,
"retryDelayMode": "fixed",
"retryConditions": [
"No Answer",
"Busy",
"Timeout",
"Unreachable",
"Network Error",
"Resource Unavailable",
"Service Unavailable",
"voicemail"
],
"endDate": "2023-12-25",
"schedulingMode": "even",
"callIntervalSeconds": 30,
"maxConcurrency": 5,
"webhookUrl": "<string>",
"customers": [],
"callIds": [],
"roomNames": [],
"events": [],
"version": "v1"
},
"message": "<string>"
}
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}{
"success": false,
"data": {
"message": "<string>",
"result": "<unknown>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
1 - 100ID of the AI assistant
Name of the AI assistant (alternative to assistantId)
When campaign starts (YYYY-MM-DD). Omit for immediate start.
Default daily window start as wall-clock time in the campaign timezone (HH:MM). Also defines retry window start. Can be overridden per day via daySchedules.
^\d{2}:\d{2}(:\d{2})?$IANA timezone identifier (e.g., 'Europe/Prague', 'America/New_York'). All time values — startTime, endTime, and daySchedules entries — are interpreted as wall-clock times in this timezone. See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for valid identifiers.
Default daily window end as wall-clock time in the campaign timezone (HH:MM). Retries only happen between startTime and endTime. Can be overridden per day via daySchedules.
^\d{2}:\d{2}(:\d{2})?$Days retries can happen (0=Monday, 6=Sunday)
1 - 7 elements0 <= x <= 6Sparse per-day schedule overrides. Keys are day indices (0=Monday, 6=Sunday), values are {startTime, endTime} as wall-clock times in the campaign timezone. Only include days that differ from the global startTime/endTime. Days not listed here use the global window.
Show child attributes
Show child attributes
Caller ID phone number
Number of retry attempts (0-10)
0 <= x <= 10Delay between retries in seconds (60-86400)
60 <= x <= 86400fixed, next_day Array of call outcome values to retry on (SipCodeCategory + special endedReason values)
Rejected, Unreachable, Busy, No Answer, Network Error, Invalid, Timeout, Cancelled, Resource Unavailable, Service Unavailable, Protocol Error, Unspecified, voicemail, exceeded-max-duration, inactivity-ended-call, rescheduled Maximum number of concurrent calls (1-50)
1 <= x <= 50List of customers to call
Show child attributes
Show child attributes
Simple list of phone numbers (alternative to customers)