curl --request POST \
--url https://api.pubrio.com/channels/templates/create_version \
--header 'Content-Type: application/json' \
--header 'pubrio-api-key: <api-key>' \
--data '
{
"channel_template_identifier": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_name": "default",
"is_default": true,
"parameters": {},
"profile_id": 123
}
'import requests
url = "https://api.pubrio.com/channels/templates/create_version"
payload = {
"channel_template_identifier": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_name": "default",
"is_default": True,
"parameters": {},
"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_identifier: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
channel_template_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
version_name: 'default',
is_default: true,
parameters: {},
profile_id: 123
})
};
fetch('https://api.pubrio.com/channels/templates/create_version', 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_version",
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_identifier' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'channel_template_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'version_name' => 'default',
'is_default' => true,
'parameters' => [
],
'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_version"
payload := strings.NewReader("{\n \"channel_template_identifier\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"channel_template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"version_name\": \"default\",\n \"is_default\": true,\n \"parameters\": {},\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_version")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channel_template_identifier\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"channel_template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"version_name\": \"default\",\n \"is_default\": true,\n \"parameters\": {},\n \"profile_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pubrio.com/channels/templates/create_version")
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_identifier\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"channel_template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"version_name\": \"default\",\n \"is_default\": true,\n \"parameters\": {},\n \"profile_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"data": {
"channel_template_id": 249,
"channel_template_identifier": "4c717a78-26e9-49eb-ab2e-e1ce0755674a",
"created_at": "2025-08-07T17:22:11.344Z",
"version_number": 2,
"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 2"
}
}{
"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 Version
Create a new version of an existing channel template.
curl --request POST \
--url https://api.pubrio.com/channels/templates/create_version \
--header 'Content-Type: application/json' \
--header 'pubrio-api-key: <api-key>' \
--data '
{
"channel_template_identifier": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_name": "default",
"is_default": true,
"parameters": {},
"profile_id": 123
}
'import requests
url = "https://api.pubrio.com/channels/templates/create_version"
payload = {
"channel_template_identifier": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version_name": "default",
"is_default": True,
"parameters": {},
"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_identifier: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
channel_template_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
version_name: 'default',
is_default: true,
parameters: {},
profile_id: 123
})
};
fetch('https://api.pubrio.com/channels/templates/create_version', 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_version",
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_identifier' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'channel_template_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'version_name' => 'default',
'is_default' => true,
'parameters' => [
],
'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_version"
payload := strings.NewReader("{\n \"channel_template_identifier\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"channel_template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"version_name\": \"default\",\n \"is_default\": true,\n \"parameters\": {},\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_version")
.header("pubrio-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"channel_template_identifier\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"channel_template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"version_name\": \"default\",\n \"is_default\": true,\n \"parameters\": {},\n \"profile_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pubrio.com/channels/templates/create_version")
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_identifier\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"channel_template_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"version_name\": \"default\",\n \"is_default\": true,\n \"parameters\": {},\n \"profile_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"data": {
"channel_template_id": 249,
"channel_template_identifier": "4c717a78-26e9-49eb-ab2e-e1ce0755674a",
"created_at": "2025-08-07T17:22:11.344Z",
"version_number": 2,
"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 2"
}
}{
"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
The identifier for the channel template version group.
A unique identifier for the channel template operation.
Version names provide a way to identify the history of changes.
"default"
When enabled, execution will set this to true for the current record and false for all other linked record groups affected.
The parameter information depends on the channel node requirements.
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.

