import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.channels.create({
name: "twilio",
channelService: "sip",
supportedModes: "chat,voice",
isSystemChannel: false,
config: {
accountSid: "AC123...",
authToken: "sometoken",
providerCredentials: {
"api_key": "atk123",
"username": "test_username",
},
telephony: {
preInputTimeout: 1.2,
overallInputTimeout: 20,
interruptibility: "dtmf_only",
passiveSpeechInputEnabled: true,
passiveInputStart: 0.5,
},
email: {
sendingDomain: "mail.example.com",
},
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK, models
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.channels.create(request={
"name": "twilio",
"channel_service": models.ChannelServices.SIP,
"supported_modes": "chat,voice",
"is_system_channel": False,
"config": {
"account_sid": "AC123...",
"auth_token": "sometoken",
"provider_credentials": {
"api_key": "atk123",
"username": "test_username",
},
"telephony": {
"pre_input_timeout": 1.2,
"overall_input_timeout": 20,
"interruptibility": "dtmf_only",
"passive_speech_input_enabled": True,
"passive_input_start": 0.5,
},
"email": {
"sending_domain": "mail.example.com",
},
},
})
# Handle response
print(res)curl --request POST \
--url https://api.syllable.cloud/api/v1/channels/ \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"config": {
"account_sid": "AC123...",
"auth_token": "sometoken",
"provider_credentials": {
"api_key": "atk123",
"username": "test_username"
},
"telephony": {
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
},
"email": {
"sending_domain": "mail.example.com"
}
},
"supported_modes": "chat,voice",
"is_system_channel": true
}
'const options = {
method: 'POST',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
config: {
account_sid: 'AC123...',
auth_token: 'sometoken',
provider_credentials: {api_key: 'atk123', username: 'test_username'},
telephony: {
interruptibility: 'dtmf_only',
overall_input_timeout: 20,
passive_input_start: 0.5,
passive_speech_input_enabled: true,
pre_input_timeout: 1.2
},
email: {sending_domain: 'mail.example.com'}
},
supported_modes: 'chat,voice',
is_system_channel: true
})
};
fetch('https://api.syllable.cloud/api/v1/channels/', 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/channels/",
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>',
'config' => [
'account_sid' => 'AC123...',
'auth_token' => 'sometoken',
'provider_credentials' => [
'api_key' => 'atk123',
'username' => 'test_username'
],
'telephony' => [
'interruptibility' => 'dtmf_only',
'overall_input_timeout' => 20,
'passive_input_start' => 0.5,
'passive_speech_input_enabled' => true,
'pre_input_timeout' => 1.2
],
'email' => [
'sending_domain' => 'mail.example.com'
]
],
'supported_modes' => 'chat,voice',
'is_system_channel' => 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/channels/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"config\": {\n \"account_sid\": \"AC123...\",\n \"auth_token\": \"sometoken\",\n \"provider_credentials\": {\n \"api_key\": \"atk123\",\n \"username\": \"test_username\"\n },\n \"telephony\": {\n \"interruptibility\": \"dtmf_only\",\n \"overall_input_timeout\": 20,\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 1.2\n },\n \"email\": {\n \"sending_domain\": \"mail.example.com\"\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": true\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.syllable.cloud/api/v1/channels/")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"config\": {\n \"account_sid\": \"AC123...\",\n \"auth_token\": \"sometoken\",\n \"provider_credentials\": {\n \"api_key\": \"atk123\",\n \"username\": \"test_username\"\n },\n \"telephony\": {\n \"interruptibility\": \"dtmf_only\",\n \"overall_input_timeout\": 20,\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 1.2\n },\n \"email\": {\n \"sending_domain\": \"mail.example.com\"\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/channels/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"config\": {\n \"account_sid\": \"AC123...\",\n \"auth_token\": \"sometoken\",\n \"provider_credentials\": {\n \"api_key\": \"atk123\",\n \"username\": \"test_username\"\n },\n \"telephony\": {\n \"interruptibility\": \"dtmf_only\",\n \"overall_input_timeout\": 20,\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 1.2\n },\n \"email\": {\n \"sending_domain\": \"mail.example.com\"\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": true\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"id": 123,
"supported_modes": "chat,voice",
"is_system_channel": true,
"config": {
"telephony": {
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Channel
import { SyllableSDK } from "syllable-sdk";
const syllableSDK = new SyllableSDK({
apiKeyHeader: process.env["SYLLABLESDK_API_KEY_HEADER"] ?? "",
});
async function run() {
const result = await syllableSDK.channels.create({
name: "twilio",
channelService: "sip",
supportedModes: "chat,voice",
isSystemChannel: false,
config: {
accountSid: "AC123...",
authToken: "sometoken",
providerCredentials: {
"api_key": "atk123",
"username": "test_username",
},
telephony: {
preInputTimeout: 1.2,
overallInputTimeout: 20,
interruptibility: "dtmf_only",
passiveSpeechInputEnabled: true,
passiveInputStart: 0.5,
},
email: {
sendingDomain: "mail.example.com",
},
},
});
console.log(result);
}
run();import os
from syllable_sdk import SyllableSDK, models
with SyllableSDK(
api_key_header=os.getenv("SYLLABLESDK_API_KEY_HEADER", ""),
) as ss_client:
res = ss_client.channels.create(request={
"name": "twilio",
"channel_service": models.ChannelServices.SIP,
"supported_modes": "chat,voice",
"is_system_channel": False,
"config": {
"account_sid": "AC123...",
"auth_token": "sometoken",
"provider_credentials": {
"api_key": "atk123",
"username": "test_username",
},
"telephony": {
"pre_input_timeout": 1.2,
"overall_input_timeout": 20,
"interruptibility": "dtmf_only",
"passive_speech_input_enabled": True,
"passive_input_start": 0.5,
},
"email": {
"sending_domain": "mail.example.com",
},
},
})
# Handle response
print(res)curl --request POST \
--url https://api.syllable.cloud/api/v1/channels/ \
--header 'Content-Type: application/json' \
--header 'Syllable-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"config": {
"account_sid": "AC123...",
"auth_token": "sometoken",
"provider_credentials": {
"api_key": "atk123",
"username": "test_username"
},
"telephony": {
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
},
"email": {
"sending_domain": "mail.example.com"
}
},
"supported_modes": "chat,voice",
"is_system_channel": true
}
'const options = {
method: 'POST',
headers: {'Syllable-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
config: {
account_sid: 'AC123...',
auth_token: 'sometoken',
provider_credentials: {api_key: 'atk123', username: 'test_username'},
telephony: {
interruptibility: 'dtmf_only',
overall_input_timeout: 20,
passive_input_start: 0.5,
passive_speech_input_enabled: true,
pre_input_timeout: 1.2
},
email: {sending_domain: 'mail.example.com'}
},
supported_modes: 'chat,voice',
is_system_channel: true
})
};
fetch('https://api.syllable.cloud/api/v1/channels/', 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/channels/",
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>',
'config' => [
'account_sid' => 'AC123...',
'auth_token' => 'sometoken',
'provider_credentials' => [
'api_key' => 'atk123',
'username' => 'test_username'
],
'telephony' => [
'interruptibility' => 'dtmf_only',
'overall_input_timeout' => 20,
'passive_input_start' => 0.5,
'passive_speech_input_enabled' => true,
'pre_input_timeout' => 1.2
],
'email' => [
'sending_domain' => 'mail.example.com'
]
],
'supported_modes' => 'chat,voice',
'is_system_channel' => 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/channels/"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"config\": {\n \"account_sid\": \"AC123...\",\n \"auth_token\": \"sometoken\",\n \"provider_credentials\": {\n \"api_key\": \"atk123\",\n \"username\": \"test_username\"\n },\n \"telephony\": {\n \"interruptibility\": \"dtmf_only\",\n \"overall_input_timeout\": 20,\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 1.2\n },\n \"email\": {\n \"sending_domain\": \"mail.example.com\"\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": true\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.syllable.cloud/api/v1/channels/")
.header("Syllable-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"config\": {\n \"account_sid\": \"AC123...\",\n \"auth_token\": \"sometoken\",\n \"provider_credentials\": {\n \"api_key\": \"atk123\",\n \"username\": \"test_username\"\n },\n \"telephony\": {\n \"interruptibility\": \"dtmf_only\",\n \"overall_input_timeout\": 20,\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 1.2\n },\n \"email\": {\n \"sending_domain\": \"mail.example.com\"\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.syllable.cloud/api/v1/channels/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Syllable-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"config\": {\n \"account_sid\": \"AC123...\",\n \"auth_token\": \"sometoken\",\n \"provider_credentials\": {\n \"api_key\": \"atk123\",\n \"username\": \"test_username\"\n },\n \"telephony\": {\n \"interruptibility\": \"dtmf_only\",\n \"overall_input_timeout\": 20,\n \"passive_input_start\": 0.5,\n \"passive_speech_input_enabled\": true,\n \"pre_input_timeout\": 1.2\n },\n \"email\": {\n \"sending_domain\": \"mail.example.com\"\n }\n },\n \"supported_modes\": \"chat,voice\",\n \"is_system_channel\": true\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"id": 123,
"supported_modes": "chat,voice",
"is_system_channel": true,
"config": {
"telephony": {
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
Request model to create a channel through the organizations API
The channel name
"twilio"
The service that facilitates communication on the channel
sip, twilio, email, webchat, africastalking, whatsapp "webchat"
The configuration of the channel
Show child attributes
Show child attributes
{
"account_sid": "AC123",
"auth_token": "sometoken",
"telephony": {
"interruptibility": "dtmf_only",
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 3
}
}{
"provider_credentials": {
"api_key": "atk123",
"username": "test_username"
},
"telephony": {
"interruptibility": "dtmf_only",
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 3
}
}The comma-delimited list of supported modes for the channel, which defines the possible communication methods for channel targets linked to it.
"chat,voice"
Whether the channel is a built-in system channel (i.e., is not customizable)
false
Response
Successful Response
The channel name
"syllable-webchat"
The service that facilitates communication on the channel
sip, twilio, email, webchat, africastalking, whatsapp "webchat"
The channel ID
The comma-delimited list of supported modes for the channel, which defines the possible communication methods for channel targets linked to it.
"chat,voice"
Whether the channel is a built-in system channel (i.e., is not customizable)
false
Configuration for the channel
Show child attributes
Show child attributes
{
"telephony": {
"interruptibility": "dtmf_only",
"overall_input_timeout": 20,
"passive_input_start": 0.5,
"passive_speech_input_enabled": true,
"pre_input_timeout": 1.2
}
}
