curl --request POST \
--url https://api.starleads.co/Campaign \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"name": "<string>",
"agentId": "<string>",
"phoneNumber": "<string>",
"maxRetries": 2,
"delayBetweenRetries": 1.01,
"webhookUrl": "<string>",
"timezone": "<string>",
"schedule": [
{
"timeRanges": [
{
"startTime": {
"ticks": 123
},
"endTime": {
"ticks": 123
}
}
]
}
]
}
'import requests
url = "https://api.starleads.co/Campaign"
payload = {
"name": "<string>",
"agentId": "<string>",
"phoneNumber": "<string>",
"maxRetries": 2,
"delayBetweenRetries": 1.01,
"webhookUrl": "<string>",
"timezone": "<string>",
"schedule": [{ "timeRanges": [
{
"startTime": { "ticks": 123 },
"endTime": { "ticks": 123 }
}
] }]
}
headers = {
"X-Api-Key": "<api-key>",
"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>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
agentId: '<string>',
phoneNumber: '<string>',
maxRetries: 2,
delayBetweenRetries: 1.01,
webhookUrl: '<string>',
timezone: '<string>',
schedule: [{timeRanges: [{startTime: {ticks: 123}, endTime: {ticks: 123}}]}]
})
};
fetch('https://api.starleads.co/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://api.starleads.co/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' => '<string>',
'agentId' => '<string>',
'phoneNumber' => '<string>',
'maxRetries' => 2,
'delayBetweenRetries' => 1.01,
'webhookUrl' => '<string>',
'timezone' => '<string>',
'schedule' => [
[
'timeRanges' => [
[
'startTime' => [
'ticks' => 123
],
'endTime' => [
'ticks' => 123
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.starleads.co/Campaign"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"agentId\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"maxRetries\": 2,\n \"delayBetweenRetries\": 1.01,\n \"webhookUrl\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule\": [\n {\n \"timeRanges\": [\n {\n \"startTime\": {\n \"ticks\": 123\n },\n \"endTime\": {\n \"ticks\": 123\n }\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<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://api.starleads.co/Campaign")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"agentId\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"maxRetries\": 2,\n \"delayBetweenRetries\": 1.01,\n \"webhookUrl\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule\": [\n {\n \"timeRanges\": [\n {\n \"startTime\": {\n \"ticks\": 123\n },\n \"endTime\": {\n \"ticks\": 123\n }\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.starleads.co/Campaign")
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["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"agentId\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"maxRetries\": 2,\n \"delayBetweenRetries\": 1.01,\n \"webhookUrl\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule\": [\n {\n \"timeRanges\": [\n {\n \"startTime\": {\n \"ticks\": 123\n },\n \"endTime\": {\n \"ticks\": 123\n }\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"agentId": "<string>",
"phoneNumber": "<string>",
"maxRetries": 123,
"delayBetweenRetries": 123,
"webhookUrl": "<string>",
"country": "<string>",
"timezone": "<string>",
"schedule": [
{
"day": "Sunday",
"timeRanges": [
{
"startTime": {
"ticks": 123,
"days": 123,
"hours": 123,
"milliseconds": 123,
"minutes": 123,
"seconds": 123,
"totalDays": 123,
"totalHours": 123,
"totalMilliseconds": 123,
"totalMinutes": 123,
"totalSeconds": 123
},
"endTime": {
"ticks": 123,
"days": 123,
"hours": 123,
"milliseconds": 123,
"minutes": 123,
"seconds": 123,
"totalDays": 123,
"totalHours": 123,
"totalMilliseconds": 123,
"totalMinutes": 123,
"totalSeconds": 123
}
}
]
}
],
"isActive": true
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Create a campaign
curl --request POST \
--url https://api.starleads.co/Campaign \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"name": "<string>",
"agentId": "<string>",
"phoneNumber": "<string>",
"maxRetries": 2,
"delayBetweenRetries": 1.01,
"webhookUrl": "<string>",
"timezone": "<string>",
"schedule": [
{
"timeRanges": [
{
"startTime": {
"ticks": 123
},
"endTime": {
"ticks": 123
}
}
]
}
]
}
'import requests
url = "https://api.starleads.co/Campaign"
payload = {
"name": "<string>",
"agentId": "<string>",
"phoneNumber": "<string>",
"maxRetries": 2,
"delayBetweenRetries": 1.01,
"webhookUrl": "<string>",
"timezone": "<string>",
"schedule": [{ "timeRanges": [
{
"startTime": { "ticks": 123 },
"endTime": { "ticks": 123 }
}
] }]
}
headers = {
"X-Api-Key": "<api-key>",
"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>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
agentId: '<string>',
phoneNumber: '<string>',
maxRetries: 2,
delayBetweenRetries: 1.01,
webhookUrl: '<string>',
timezone: '<string>',
schedule: [{timeRanges: [{startTime: {ticks: 123}, endTime: {ticks: 123}}]}]
})
};
fetch('https://api.starleads.co/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://api.starleads.co/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' => '<string>',
'agentId' => '<string>',
'phoneNumber' => '<string>',
'maxRetries' => 2,
'delayBetweenRetries' => 1.01,
'webhookUrl' => '<string>',
'timezone' => '<string>',
'schedule' => [
[
'timeRanges' => [
[
'startTime' => [
'ticks' => 123
],
'endTime' => [
'ticks' => 123
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.starleads.co/Campaign"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"agentId\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"maxRetries\": 2,\n \"delayBetweenRetries\": 1.01,\n \"webhookUrl\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule\": [\n {\n \"timeRanges\": [\n {\n \"startTime\": {\n \"ticks\": 123\n },\n \"endTime\": {\n \"ticks\": 123\n }\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<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://api.starleads.co/Campaign")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"agentId\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"maxRetries\": 2,\n \"delayBetweenRetries\": 1.01,\n \"webhookUrl\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule\": [\n {\n \"timeRanges\": [\n {\n \"startTime\": {\n \"ticks\": 123\n },\n \"endTime\": {\n \"ticks\": 123\n }\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.starleads.co/Campaign")
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["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"agentId\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"maxRetries\": 2,\n \"delayBetweenRetries\": 1.01,\n \"webhookUrl\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule\": [\n {\n \"timeRanges\": [\n {\n \"startTime\": {\n \"ticks\": 123\n },\n \"endTime\": {\n \"ticks\": 123\n }\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"agentId": "<string>",
"phoneNumber": "<string>",
"maxRetries": 123,
"delayBetweenRetries": 123,
"webhookUrl": "<string>",
"country": "<string>",
"timezone": "<string>",
"schedule": [
{
"day": "Sunday",
"timeRanges": [
{
"startTime": {
"ticks": 123,
"days": 123,
"hours": 123,
"milliseconds": 123,
"minutes": 123,
"seconds": 123,
"totalDays": 123,
"totalHours": 123,
"totalMilliseconds": 123,
"totalMinutes": 123,
"totalSeconds": 123
},
"endTime": {
"ticks": 123,
"days": 123,
"hours": 123,
"milliseconds": 123,
"minutes": 123,
"seconds": 123,
"totalDays": 123,
"totalHours": 123,
"totalMilliseconds": 123,
"totalMinutes": 123,
"totalSeconds": 123
}
}
]
}
],
"isActive": true
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Authorizations
Headers
Body
Name of the campaign
1ID of the AI agent to associate with the campaign
1Outbound phone number. Required if the agent channel is Phone. Must belong to the company's phone number list
Maximum number of call retries (default: 3, max: 4)
1 <= x <= 4Delay between retries in hours (default: 2)
x >= 0.01Webhook URL to receive campaign events
Timezone identifier (default: "Europe/Paris")
Campaign schedule. Defaults to Monday-Friday 09:00-12:00 / 14:00-17:00 if not provided
Show child attributes
Show child attributes
Response
Created
Response returned after a campaign is successfully created
Unique identifier of the created campaign
Name of the campaign
ID of the AI agent associated with the campaign
Outbound phone number (null for web agents)
Maximum number of retry attempts (between 1 and 4)
Delay between retry attempts in hours
Webhook URL for campaign event notifications
Country code (always FR)
Timezone identifier (e.g. Europe/Paris)
Weekly schedule defining the calling time slots
Show child attributes
Show child attributes
Whether the campaign is active (always false at creation)

