curl --request POST \
--url https://api.pubrio.com/channels/templates/create \
--header 'Content-Type: application/json' \
--header 'pubrio-api-key: <api-key>' \
--data '
{
"channel_template_name": "channel template",
"channel_node_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parameters": {},
"version_name": "default",
"profile_id": 123
}
'import requests
url = "https://api.pubrio.com/channels/templates/create"
payload = {
"channel_template_name": "channel template",
"channel_node_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parameters": {},
"version_name": "default",
"profile_id": 123
}
headers = {
"pubrio-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'pubrio-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channel_template_name: 'channel template',
channel_node_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
parameters: {},
version_name: 'default',
profile_id: 123
})
};
fetch('https://api.pubrio.com/channels/templates/create', 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.pubrio.com/channels/templates/create",
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([
'channel_template_name' => 'channel template',
'channel_node_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'parameters' => [
],
'version_name' => 'default',
'profile_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"pubrio-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.pubrio.com/channels/templates/create"
payload := strings.NewReader("{\n \"channel_template_name\": \"channel template\",\n \"channel_node_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"parameters\": {},\n \"version_name\": \"default\",\n \"profile_id\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("pubrio-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.pubrio.com/channels/templates/create")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channel_template_name\": \"channel template\",\n \"channel_node_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"parameters\": {},\n \"version_name\": \"default\",\n \"profile_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pubrio.com/channels/templates/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["pubrio-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channel_template_name\": \"channel template\",\n \"channel_node_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"parameters\": {},\n \"version_name\": \"default\",\n \"profile_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"data": {
"channel_template_id": 248,
"channel_template_identifier": "4c717a78-26e9-49eb-ab2e-e1ce0755674a",
"created_at": "2025-08-07T17:22:11.344Z",
"version_number": 1,
"is_default": true,
"name": "Email Template",
"channel_node_id": "93873c33-2635-4537-928c-6a4f3564164c",
"parameters": {
"content": "<div>hello world</div>",
"subject": "hello world"
},
"version_name": "Default"
}
}{
"code": 40001,
"message": "Errors and codes will vary depending on the scenario, please see the documentation for information.",
"details": {}
}{
"error": "Request rate limit exceeded. Please wait and try again later."
}{
"error": "An unexpected error occurred on the server."
}Create Channel Template
Create a new outreach channel template with specified parameters.
curl --request POST \
--url https://api.pubrio.com/channels/templates/create \
--header 'Content-Type: application/json' \
--header 'pubrio-api-key: <api-key>' \
--data '
{
"channel_template_name": "channel template",
"channel_node_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parameters": {},
"version_name": "default",
"profile_id": 123
}
'import requests
url = "https://api.pubrio.com/channels/templates/create"
payload = {
"channel_template_name": "channel template",
"channel_node_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"parameters": {},
"version_name": "default",
"profile_id": 123
}
headers = {
"pubrio-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'pubrio-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
channel_template_name: 'channel template',
channel_node_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
parameters: {},
version_name: 'default',
profile_id: 123
})
};
fetch('https://api.pubrio.com/channels/templates/create', 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.pubrio.com/channels/templates/create",
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([
'channel_template_name' => 'channel template',
'channel_node_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'parameters' => [
],
'version_name' => 'default',
'profile_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"pubrio-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.pubrio.com/channels/templates/create"
payload := strings.NewReader("{\n \"channel_template_name\": \"channel template\",\n \"channel_node_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"parameters\": {},\n \"version_name\": \"default\",\n \"profile_id\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("pubrio-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.pubrio.com/channels/templates/create")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channel_template_name\": \"channel template\",\n \"channel_node_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"parameters\": {},\n \"version_name\": \"default\",\n \"profile_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pubrio.com/channels/templates/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["pubrio-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channel_template_name\": \"channel template\",\n \"channel_node_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"parameters\": {},\n \"version_name\": \"default\",\n \"profile_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"data": {
"channel_template_id": 248,
"channel_template_identifier": "4c717a78-26e9-49eb-ab2e-e1ce0755674a",
"created_at": "2025-08-07T17:22:11.344Z",
"version_number": 1,
"is_default": true,
"name": "Email Template",
"channel_node_id": "93873c33-2635-4537-928c-6a4f3564164c",
"parameters": {
"content": "<div>hello world</div>",
"subject": "hello world"
},
"version_name": "Default"
}
}{
"code": 40001,
"message": "Errors and codes will vary depending on the scenario, please see the documentation for information.",
"details": {}
}{
"error": "Request rate limit exceeded. Please wait and try again later."
}{
"error": "An unexpected error occurred on the server."
}Authorizations
Body
Filter search results to include a specific channel template name.
"channel template"
A unique identifier for the channel node operation.
The parameter information depends on the channel node requirements.
Version names provide a way to identify the history of changes.
"default"
Optional. An identifier for the user profile (workspace) making the request. This is no longer required as the API key already includes your workspace information. If provided, it helps in associating the lookup with a specific user, allowing for data retrieval and credit tracking.
Check out user details endpoints under the Profile tab for more information.
Response
Successful response containing list of channel template details.
Response info depends on specific endpoint.

