import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.outbound.campaigns.getById({
campaignId: 11227,
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.outbound.campaigns.get_by_id(campaign_id=11227)
# Handle response
print(res)curl --request GET \
--url https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id} \
--header 'Syllable-API-Key: <api-key>'const options = {method: 'GET', headers: {'Syllable-API-Key': '<api-key>'}};
fetch('https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_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/campaigns/{campaign_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Syllable-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id}")
.header("Syllable-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Syllable-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"campaign_name": "Outbound Campaign 1",
"campaign_variables": {
"key": "value",
"key2": "value2"
},
"caller_id": 19995551234,
"active_days": "[\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"]",
"id": 1,
"last_updated_by": "user@email.com",
"description": "This is a test campaign",
"mode": "voice",
"sms_session_ttl": 720,
"label": "test",
"labels": [
"test",
"demo"
],
"daily_start_time": "09:00:00",
"daily_end_time": "17:00:00",
"source": "+19032900844",
"hourly_rate": 25,
"max_daily_calls": 2500,
"retry_count": 1,
"retry_interval": "30m",
"outreach_override_rules": {
"dates": {
"2026-11-26": {
"active": false
}
},
"days": {
"fri": {
"daily_end_time": "15:00:00",
"max_daily_calls": 1300
},
"sat": {
"max_daily_calls": 0
},
"thu": {
"max_daily_calls": 1300
}
}
},
"voicemail_detection": {
"voicemail_detection_overall_timeout": 30,
"voicemail_detection_post_speech_timeout": 1.75,
"voicemail_detection_pre_speech_timeout": 3.5
},
"allowed_line_types": [
"mobile",
"voip"
],
"include_unknown_line_types": true,
"target_filters": {
"match": "any",
"on_unknown": "include",
"rules": [
{
"field": "line_type",
"op": "in",
"values": [
"landline",
"fixedVoip",
"nonFixedVoip"
]
},
{
"field": "carrier_name",
"op": "in",
"values": [
"Onvoy, LLC - Sinch"
]
}
]
},
"agent_id": "agent_id",
"created_at": "2026-09-17T00:00:00Z",
"updated_at": "2026-09-17T00:00:00Z",
"webhooks": {
"id": 1,
"request_method": "POST",
"trigger_statuses": [
"COMPLETED"
],
"url": "https://example.com/hooks/syllable"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get Outbound Communication Campaign
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.outbound.campaigns.getById({
campaignId: 11227,
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.outbound.campaigns.get_by_id(campaign_id=11227)
# Handle response
print(res)curl --request GET \
--url https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id} \
--header 'Syllable-API-Key: <api-key>'const options = {method: 'GET', headers: {'Syllable-API-Key': '<api-key>'}};
fetch('https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_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/campaigns/{campaign_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Syllable-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id}")
.header("Syllable-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/outbound/campaigns/{campaign_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Syllable-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"campaign_name": "Outbound Campaign 1",
"campaign_variables": {
"key": "value",
"key2": "value2"
},
"caller_id": 19995551234,
"active_days": "[\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"]",
"id": 1,
"last_updated_by": "user@email.com",
"description": "This is a test campaign",
"mode": "voice",
"sms_session_ttl": 720,
"label": "test",
"labels": [
"test",
"demo"
],
"daily_start_time": "09:00:00",
"daily_end_time": "17:00:00",
"source": "+19032900844",
"hourly_rate": 25,
"max_daily_calls": 2500,
"retry_count": 1,
"retry_interval": "30m",
"outreach_override_rules": {
"dates": {
"2026-11-26": {
"active": false
}
},
"days": {
"fri": {
"daily_end_time": "15:00:00",
"max_daily_calls": 1300
},
"sat": {
"max_daily_calls": 0
},
"thu": {
"max_daily_calls": 1300
}
}
},
"voicemail_detection": {
"voicemail_detection_overall_timeout": 30,
"voicemail_detection_post_speech_timeout": 1.75,
"voicemail_detection_pre_speech_timeout": 3.5
},
"allowed_line_types": [
"mobile",
"voip"
],
"include_unknown_line_types": true,
"target_filters": {
"match": "any",
"on_unknown": "include",
"rules": [
{
"field": "line_type",
"op": "in",
"values": [
"landline",
"fixedVoip",
"nonFixedVoip"
]
},
{
"field": "carrier_name",
"op": "in",
"values": [
"Onvoy, LLC - Sinch"
]
}
]
},
"agent_id": "agent_id",
"created_at": "2026-09-17T00:00:00Z",
"updated_at": "2026-09-17T00:00:00Z",
"webhooks": {
"id": 1,
"request_method": "POST",
"trigger_statuses": [
"COMPLETED"
],
"url": "https://example.com/hooks/syllable"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Path Parameters
Response
Successful Response
Human readable name of campaign
"Outbound Campaign 1"
Variables for campaign
Show child attributes
Show child attributes
{ "key": "value", "key2": "value2" }
Caller ID for call
19995551234
Days of the week when campaign is active
Enum representing days of the week.
mon, tue, wed, thu, fri, sat, sun "[\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"]"
Unique ID for campaign
1
Email of user who last updated campaign
"user@email.com"
Description of campaign
"This is a test campaign"
Mode of the campaign (e.g. voice, sms, email)
"voice"
Time to live for SMS session in minutes
720
Label for campaign (DEPRECATED - use labels instead)
"test"
Labels for campaign
["test", "demo"]
Start time of campaign each day
"09:00:00"
End time of campaign each day
"17:00:00"
Source phone number, email, or SMS number
"+19032900844"
Target number of outreach calls per hour
1 <= x <= 360025
Maximum number of outreach calls per day
2500
Number of retries per target
1
How long to wait before retrying
"30m"
Weekday- and date-specific outreach windows and daily maximums. The most specific rule wins: date, then weekday, then the campaign defaults above. Omitted or null means the campaign defaults apply to every active day.
Show child attributes
Show child attributes
{
"dates": { "2026-11-26": { "active": false } },
"days": {
"fri": {
"daily_end_time": "15:00:00",
"max_daily_calls": 1300
},
"sat": { "max_daily_calls": 0 },
"thu": { "max_daily_calls": 1300 }
}
}
Config for voicemail detection for voice campaigns. Set to None to disable.
Show child attributes
Show child attributes
{
"voicemail_detection_overall_timeout": 30,
"voicemail_detection_post_speech_timeout": 1.75,
"voicemail_detection_pre_speech_timeout": 3.5
}
Line-type buckets this campaign is allowed to dial. Empty or omitted means no filter (all line types are dialed).
Friendly line-type buckets a campaign can be restricted to dial.
These map to raw Twilio Lookup v2 line types via
lib.twilio.line_type_lookup.LINE_TYPE_BUCKETS.
mobile, landline, voip ["mobile", "voip"]
When a line-type filter is active, whether to also dial numbers whose line type is unknown or could not be classified. Has no effect when allowed_line_types is empty.
true
Generic target filter (a flat rule list over request enrichment attributes such as line_type, caller_type, caller_name, carrier_name, mcc, mnc). When set, takes precedence over allowed_line_types / include_unknown_line_types. Omitted or null means those legacy fields are used instead. Rules on caller_type / caller_name are resolved by Twilio's separately billed caller_name (CNAM) lookup, which only returns data for US numbers.
Show child attributes
Show child attributes
{
"match": "any",
"on_unknown": "include",
"rules": [
{
"field": "line_type",
"op": "in",
"values": ["landline", "fixedVoip", "nonFixedVoip"]
},
{
"field": "carrier_name",
"op": "in",
"values": ["Onvoy, LLC - Sinch"]
}
]
}
ID of agent assigned to campaign
"agent_id"
Timestamp of campaign creation
"2026-09-17T00:00:00Z"
Timestamp of campaign update
"2026-09-17T00:00:00Z"
Webhooks for campaign
Show child attributes
Show child attributes
{
"id": 1,
"request_method": "POST",
"trigger_statuses": ["COMPLETED"],
"url": "https://example.com/hooks/syllable"
}

