curl --request POST \
--url https://app.closerx.ai/api/campaign/ \
--header 'Company-Name: <company-name>' \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"name": "Summer Sales 2025",
"new_agent": 123,
"direction": "Outbound",
"calling_number": "+18446020950",
"tags": [
1,
2
],
"enable_number_rotation": false,
"total_bugget": 60,
"start_date": "2025-08-30",
"start_time": "10:00:00",
"end_date": "2025-08-30",
"end_time": "17:00:00",
"number_dict": {}
}
'import requests
url = "https://app.closerx.ai/api/campaign/"
payload = {
"name": "Summer Sales 2025",
"new_agent": 123,
"direction": "Outbound",
"calling_number": "+18446020950",
"tags": [1, 2],
"enable_number_rotation": False,
"total_bugget": 60,
"start_date": "2025-08-30",
"start_time": "10:00:00",
"end_date": "2025-08-30",
"end_time": "17:00:00",
"number_dict": {}
}
headers = {
"Company-Name": "<company-name>",
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Company-Name': '<company-name>',
api_key: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Summer Sales 2025',
new_agent: 123,
direction: 'Outbound',
calling_number: '+18446020950',
tags: [1, 2],
enable_number_rotation: false,
total_bugget: 60,
start_date: '2025-08-30',
start_time: '10:00:00',
end_date: '2025-08-30',
end_time: '17:00:00',
number_dict: {}
})
};
fetch('https://app.closerx.ai/api/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.closerx.ai/api/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' => 'Summer Sales 2025',
'new_agent' => 123,
'direction' => 'Outbound',
'calling_number' => '+18446020950',
'tags' => [
1,
2
],
'enable_number_rotation' => false,
'total_bugget' => 60,
'start_date' => '2025-08-30',
'start_time' => '10:00:00',
'end_date' => '2025-08-30',
'end_time' => '17:00:00',
'number_dict' => [
]
]),
CURLOPT_HTTPHEADER => [
"Company-Name: <company-name>",
"Content-Type: application/json",
"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://app.closerx.ai/api/campaign/"
payload := strings.NewReader("{\n \"name\": \"Summer Sales 2025\",\n \"new_agent\": 123,\n \"direction\": \"Outbound\",\n \"calling_number\": \"+18446020950\",\n \"tags\": [\n 1,\n 2\n ],\n \"enable_number_rotation\": false,\n \"total_bugget\": 60,\n \"start_date\": \"2025-08-30\",\n \"start_time\": \"10:00:00\",\n \"end_date\": \"2025-08-30\",\n \"end_time\": \"17:00:00\",\n \"number_dict\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Company-Name", "<company-name>")
req.Header.Add("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://app.closerx.ai/api/campaign/")
.header("Company-Name", "<company-name>")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Summer Sales 2025\",\n \"new_agent\": 123,\n \"direction\": \"Outbound\",\n \"calling_number\": \"+18446020950\",\n \"tags\": [\n 1,\n 2\n ],\n \"enable_number_rotation\": false,\n \"total_bugget\": 60,\n \"start_date\": \"2025-08-30\",\n \"start_time\": \"10:00:00\",\n \"end_date\": \"2025-08-30\",\n \"end_time\": \"17:00:00\",\n \"number_dict\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.closerx.ai/api/campaign/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Company-Name"] = '<company-name>'
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Summer Sales 2025\",\n \"new_agent\": 123,\n \"direction\": \"Outbound\",\n \"calling_number\": \"+18446020950\",\n \"tags\": [\n 1,\n 2\n ],\n \"enable_number_rotation\": false,\n \"total_bugget\": 60,\n \"start_date\": \"2025-08-30\",\n \"start_time\": \"10:00:00\",\n \"end_date\": \"2025-08-30\",\n \"end_time\": \"17:00:00\",\n \"number_dict\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "campaign created successfully",
"data": {
"campaign": {
"name": "Rell (test)",
"new_agent": 527,
"direction": "Outbound",
"contact_list": null,
"knowledge_base": null,
"calling_number": "+18446020950",
"start_date": "2025-08-24",
"start_time": "11:00:00",
"end_time": "12:30:00",
"saturday": false,
"sunday": false,
"total_bugget": 60,
"bugget_left": "60.0000",
"tags": [
1
]
}
}
}{
"success": true,
"message": "<string>",
"data": {}
}Create Campaign
Creates a new call campaign, including key campaign details such as Campaign Name, Selected AI Agent, Call Direction, Selected Phone Number, Number Rotation settings, Campaign Budget (in minutes), and Scheduling options.
curl --request POST \
--url https://app.closerx.ai/api/campaign/ \
--header 'Company-Name: <company-name>' \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"name": "Summer Sales 2025",
"new_agent": 123,
"direction": "Outbound",
"calling_number": "+18446020950",
"tags": [
1,
2
],
"enable_number_rotation": false,
"total_bugget": 60,
"start_date": "2025-08-30",
"start_time": "10:00:00",
"end_date": "2025-08-30",
"end_time": "17:00:00",
"number_dict": {}
}
'import requests
url = "https://app.closerx.ai/api/campaign/"
payload = {
"name": "Summer Sales 2025",
"new_agent": 123,
"direction": "Outbound",
"calling_number": "+18446020950",
"tags": [1, 2],
"enable_number_rotation": False,
"total_bugget": 60,
"start_date": "2025-08-30",
"start_time": "10:00:00",
"end_date": "2025-08-30",
"end_time": "17:00:00",
"number_dict": {}
}
headers = {
"Company-Name": "<company-name>",
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Company-Name': '<company-name>',
api_key: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Summer Sales 2025',
new_agent: 123,
direction: 'Outbound',
calling_number: '+18446020950',
tags: [1, 2],
enable_number_rotation: false,
total_bugget: 60,
start_date: '2025-08-30',
start_time: '10:00:00',
end_date: '2025-08-30',
end_time: '17:00:00',
number_dict: {}
})
};
fetch('https://app.closerx.ai/api/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.closerx.ai/api/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' => 'Summer Sales 2025',
'new_agent' => 123,
'direction' => 'Outbound',
'calling_number' => '+18446020950',
'tags' => [
1,
2
],
'enable_number_rotation' => false,
'total_bugget' => 60,
'start_date' => '2025-08-30',
'start_time' => '10:00:00',
'end_date' => '2025-08-30',
'end_time' => '17:00:00',
'number_dict' => [
]
]),
CURLOPT_HTTPHEADER => [
"Company-Name: <company-name>",
"Content-Type: application/json",
"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://app.closerx.ai/api/campaign/"
payload := strings.NewReader("{\n \"name\": \"Summer Sales 2025\",\n \"new_agent\": 123,\n \"direction\": \"Outbound\",\n \"calling_number\": \"+18446020950\",\n \"tags\": [\n 1,\n 2\n ],\n \"enable_number_rotation\": false,\n \"total_bugget\": 60,\n \"start_date\": \"2025-08-30\",\n \"start_time\": \"10:00:00\",\n \"end_date\": \"2025-08-30\",\n \"end_time\": \"17:00:00\",\n \"number_dict\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Company-Name", "<company-name>")
req.Header.Add("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://app.closerx.ai/api/campaign/")
.header("Company-Name", "<company-name>")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Summer Sales 2025\",\n \"new_agent\": 123,\n \"direction\": \"Outbound\",\n \"calling_number\": \"+18446020950\",\n \"tags\": [\n 1,\n 2\n ],\n \"enable_number_rotation\": false,\n \"total_bugget\": 60,\n \"start_date\": \"2025-08-30\",\n \"start_time\": \"10:00:00\",\n \"end_date\": \"2025-08-30\",\n \"end_time\": \"17:00:00\",\n \"number_dict\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.closerx.ai/api/campaign/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Company-Name"] = '<company-name>'
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Summer Sales 2025\",\n \"new_agent\": 123,\n \"direction\": \"Outbound\",\n \"calling_number\": \"+18446020950\",\n \"tags\": [\n 1,\n 2\n ],\n \"enable_number_rotation\": false,\n \"total_bugget\": 60,\n \"start_date\": \"2025-08-30\",\n \"start_time\": \"10:00:00\",\n \"end_date\": \"2025-08-30\",\n \"end_time\": \"17:00:00\",\n \"number_dict\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "campaign created successfully",
"data": {
"campaign": {
"name": "Rell (test)",
"new_agent": 527,
"direction": "Outbound",
"contact_list": null,
"knowledge_base": null,
"calling_number": "+18446020950",
"start_date": "2025-08-24",
"start_time": "11:00:00",
"end_time": "12:30:00",
"saturday": false,
"sunday": false,
"total_bugget": 60,
"bugget_left": "60.0000",
"tags": [
1
]
}
}
}{
"success": true,
"message": "<string>",
"data": {}
}Authorizations
Headers
The name of the schema to be used for the request
Body
Name of the campaign to be created
"Summer Sales 2025"
ID of the agent assigned to the campaign
123
Direction of the campaign, either 'Inbound' or 'Outbound'
Inbound, Outbound "Outbound"
Phone number used for calls
"+18446020950"
List of tag IDs to associate with the campaign
[1, 2]
Toggle to enable or disable number rotation for calls
false
Total budget (in minutes) allocated for the campaign
60
Start date of the campaign in YYYY-MM-DD format
"2025-08-30"
Start time of the campaign in HH:mm:ss format
"10:00:00"
End date of the campaign in YYYY-MM-DD format
"2025-08-30"
End time of the campaign in HH:mm:ss format
"17:00:00"
Whether number rotation is enabled
{}
