import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.outbound.batches.update({
batchId: "<id>",
communicationBatchUpdate: {
paused: true,
expiresOn: new Date("2027-01-01T06:00:00Z"),
callRate: 25,
autoCallRate: true,
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
from syllable_sdk.utils import parse_datetime
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.outbound.batches.update(batch_id="<id>", communication_batch_update={
"paused": True,
"expires_on": parse_datetime("2027-01-01T06:00:00Z"),
"call_rate": 25,
"auto_call_rate": True,
})
# Handle response
print(res)curl --request PUT \
--url https://api.syllable.cloud/api/v1/outbound/batches/{batch_id} \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"paused": true,
"expires_on": "2027-01-01T06:00:00Z",
"call_rate": 25,
"auto_call_rate": true
}
'const options = {
method: 'PUT',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paused: true,
expires_on: '2027-01-01T06:00:00Z',
call_rate: 25,
auto_call_rate: true
})
};
fetch('https://api.syllable.cloud/api/v1/outbound/batches/{batch_id}', 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.syllable.cloud/api/v1/outbound/batches/{batch_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'paused' => true,
'expires_on' => '2027-01-01T06:00:00Z',
'call_rate' => 25,
'auto_call_rate' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Syllable-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.syllable.cloud/api/v1/outbound/batches/{batch_id}"
payload := strings.NewReader("{\n \"paused\": true,\n \"expires_on\": \"2027-01-01T06:00:00Z\",\n \"call_rate\": 25,\n \"auto_call_rate\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Syllable-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.put("https://api.syllable.cloud/api/v1/outbound/batches/{batch_id}")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"paused\": true,\n \"expires_on\": \"2027-01-01T06:00:00Z\",\n \"call_rate\": 25,\n \"auto_call_rate\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/outbound/batches/{batch_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paused\": true,\n \"expires_on\": \"2027-01-01T06:00:00Z\",\n \"call_rate\": 25,\n \"auto_call_rate\": true\n}"
response = http.request(request)
puts response.read_body{
"batch_id": "20260917.9",
"campaign_id": 1,
"last_updated_by": "user@email.com",
"expires_on": "2026-09-18T00:00:00Z",
"paused": true,
"call_rate": 25,
"auto_call_rate": true,
"status": "PENDING",
"auto_call_rate_baseline": 25,
"upload_filename": "LATE_PAYMENTS_20250401.csv",
"dispatch_id": "5ac42327fbd7e03b441650b79ae91ae1",
"created_at": "2026-09-17T00:00:00Z",
"deleted_at": "2026-09-17T00:00:00Z",
"deleted_reason": "User request",
"last_updated_at": "2026-09-17T00:00:00Z",
"error_message": "Invalid file format"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update Outbound Communication Batch
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.outbound.batches.update({
batchId: "<id>",
communicationBatchUpdate: {
paused: true,
expiresOn: new Date("2027-01-01T06:00:00Z"),
callRate: 25,
autoCallRate: true,
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
from syllable_sdk.utils import parse_datetime
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.outbound.batches.update(batch_id="<id>", communication_batch_update={
"paused": True,
"expires_on": parse_datetime("2027-01-01T06:00:00Z"),
"call_rate": 25,
"auto_call_rate": True,
})
# Handle response
print(res)curl --request PUT \
--url https://api.syllable.cloud/api/v1/outbound/batches/{batch_id} \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"paused": true,
"expires_on": "2027-01-01T06:00:00Z",
"call_rate": 25,
"auto_call_rate": true
}
'const options = {
method: 'PUT',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
paused: true,
expires_on: '2027-01-01T06:00:00Z',
call_rate: 25,
auto_call_rate: true
})
};
fetch('https://api.syllable.cloud/api/v1/outbound/batches/{batch_id}', 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.syllable.cloud/api/v1/outbound/batches/{batch_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'paused' => true,
'expires_on' => '2027-01-01T06:00:00Z',
'call_rate' => 25,
'auto_call_rate' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Syllable-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.syllable.cloud/api/v1/outbound/batches/{batch_id}"
payload := strings.NewReader("{\n \"paused\": true,\n \"expires_on\": \"2027-01-01T06:00:00Z\",\n \"call_rate\": 25,\n \"auto_call_rate\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Syllable-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.put("https://api.syllable.cloud/api/v1/outbound/batches/{batch_id}")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"paused\": true,\n \"expires_on\": \"2027-01-01T06:00:00Z\",\n \"call_rate\": 25,\n \"auto_call_rate\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/outbound/batches/{batch_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"paused\": true,\n \"expires_on\": \"2027-01-01T06:00:00Z\",\n \"call_rate\": 25,\n \"auto_call_rate\": true\n}"
response = http.request(request)
puts response.read_body{
"batch_id": "20260917.9",
"campaign_id": 1,
"last_updated_by": "user@email.com",
"expires_on": "2026-09-18T00:00:00Z",
"paused": true,
"call_rate": 25,
"auto_call_rate": true,
"status": "PENDING",
"auto_call_rate_baseline": 25,
"upload_filename": "LATE_PAYMENTS_20250401.csv",
"dispatch_id": "5ac42327fbd7e03b441650b79ae91ae1",
"created_at": "2026-09-17T00:00:00Z",
"deleted_at": "2026-09-17T00:00:00Z",
"deleted_reason": "User request",
"last_updated_at": "2026-09-17T00:00:00Z",
"error_message": "Invalid file format"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Path Parameters
Body
Whether the batch is on HOLD. When on HOLD, no outreach will be made.
true
Timestamp of batch expiration
"2027-01-01T06:00:00Z"
Target number of outreach attempts per hour for this batch. Omitted leaves the current value unchanged; a batch that has never set one inherits the campaign's hourly_rate.
1 <= x <= 360025
Pace this batch automatically to finish before expires_on. Omitted leaves the current setting unchanged. Enabling it requires the batch to have an expires_on, either already set or supplied in the same update.
true
Response
Successful Response
Unique ID for conversation batch
"20260917.9"
Unique ID for campaign
1
Email of user who last updated campaign
"user@email.com"
Timestamp of batch expiration
"2026-09-18T00:00:00Z"
Whether the batch is on HOLD. When on HOLD, no outreach will be made.
true
Target number of outreach attempts per hour for this batch. When omitted, the batch inherits the campaign's hourly_rate.
1 <= x <= 360025
Pace this batch automatically to finish before expires_on, counting only the campaign's valid hours (daily_start_time..daily_end_time on active_days). The derived rate takes precedence over call_rate and over the campaign hourly_rate. Requires expires_on.
true
false
Status of batch
PENDING, ACTIVE, PAUSED, FAILED, CANCELED, EXPIRED "PENDING"
"ACTIVE"
"PAUSED"
"FAILED"
"CANCELED"
"EXPIRED"
Read-only. The auto-paced rate first computed for this batch, set on its first dialing cycle. Subsequent cycles hold the rate within +/- 20% of it. Null until the batch has dialed, or when auto_call_rate is off.
25
Name of file used to create batch
"LATE_PAYMENTS_20250401.csv"
A unique identifier for dipatched job
"5ac42327fbd7e03b441650b79ae91ae1"
Timestamp of batch creation
"2026-09-17T00:00:00Z"
Timestamp of batch deletion
"2026-09-17T00:00:00Z"
Reason for batch deletion
"User request"
Timestamp of last change to batch
"2026-09-17T00:00:00Z"
Error message if batch upload failed
"Invalid file format"

