Create a Campaign
curl --request POST \
--url https://app.luly.ai/api/v1/campaigns \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"name": "<string>",
"numbers": [
"<string>"
],
"sequence": {}
}
'import requests
url = "https://app.luly.ai/api/v1/campaigns"
payload = {
"name": "<string>",
"numbers": ["<string>"],
"sequence": {}
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', numbers: ['<string>'], sequence: {}})
};
fetch('https://app.luly.ai/api/v1/campaigns', 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.luly.ai/api/v1/campaigns",
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>',
'numbers' => [
'<string>'
],
'sequence' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$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.luly.ai/api/v1/campaigns"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"numbers\": [\n \"<string>\"\n ],\n \"sequence\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<authorization>")
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.luly.ai/api/v1/campaigns")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"numbers\": [\n \"<string>\"\n ],\n \"sequence\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.luly.ai/api/v1/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"numbers\": [\n \"<string>\"\n ],\n \"sequence\": {}\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"campaign_id": "0a810190-c000-aaaa-bbbb-16a4630cc190"
}
Campaigns
Create a Campaign
Send large volumes of calls at once with follow-up sequences.
POST
/
v1
/
campaigns
Create a Campaign
curl --request POST \
--url https://app.luly.ai/api/v1/campaigns \
--header 'Content-Type: application/json' \
--header 'authorization: <authorization>' \
--data '
{
"name": "<string>",
"numbers": [
"<string>"
],
"sequence": {}
}
'import requests
url = "https://app.luly.ai/api/v1/campaigns"
payload = {
"name": "<string>",
"numbers": ["<string>"],
"sequence": {}
}
headers = {
"authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>', numbers: ['<string>'], sequence: {}})
};
fetch('https://app.luly.ai/api/v1/campaigns', 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.luly.ai/api/v1/campaigns",
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>',
'numbers' => [
'<string>'
],
'sequence' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"authorization: <authorization>"
],
]);
$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.luly.ai/api/v1/campaigns"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"numbers\": [\n \"<string>\"\n ],\n \"sequence\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("authorization", "<authorization>")
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.luly.ai/api/v1/campaigns")
.header("authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"numbers\": [\n \"<string>\"\n ],\n \"sequence\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.luly.ai/api/v1/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"numbers\": [\n \"<string>\"\n ],\n \"sequence\": {}\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"campaign_id": "0a810190-c000-aaaa-bbbb-16a4630cc190"
}
Headers
string
required
Your API key for authentication.
Body
string
required
Name for your campaign to later reference.
string[]
required
An array of strings containing different phone numbers.Example:
["+19543110000", "..."]
object
required
A list of strings with different phone numbers.
sequence.retries - (INTEGER) Number of times to retry when no answer. sequence.wait_period - (INTEGER) Number of days to wait in between follow ups (retries).Example: {
...,
"sequence":{
"retries": 4,
"wait_period": 1
}
}
All other parameters supported by the Send Call endpoint are supported here as well. They will be applied to each call in the batch.
Response
string
Confirms the request was successful, or provides an error message if the request failed.
string
The unique identifier for the campaign.
{
"status": "success",
"campaign_id": "0a810190-c000-aaaa-bbbb-16a4630cc190"
}