Create channel
curl --request POST \
--url https://your-instance.example.com/api/{session}/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Channel",
"session": "default",
"description": "Channel description",
"profileUrl": "https://.../example.png"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My Channel',
session: 'default',
description: 'Channel description',
profileUrl: 'https://.../example.png'
})
};
fetch('https://your-instance.example.com/api/{session}/channels', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.example.com/api/{session}/channels"
payload = {
"name": "My Channel",
"session": "default",
"description": "Channel description",
"profileUrl": "https://.../example.png"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.example.com/api/{session}/channels"
payload := strings.NewReader("{\n \"name\": \"My Channel\",\n \"session\": \"default\",\n \"description\": \"Channel description\",\n \"profileUrl\": \"https://.../example.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your-instance.example.com/api/{session}/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' => 'My Channel',
'session' => 'default',
'description' => 'Channel description',
'profileUrl' => 'https://.../example.png'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"description": "<string>",
"followers": 123,
"lid": "<string>",
"muted": true,
"name": "<string>",
"preview": true,
"profileUrl": "<string>"
}{
"docs": "https://docs.polymorfa.com/api/messages/send",
"error": "missing required field: chatId"
}{
"error": "missing or invalid API key"
}{
"error": "internal server error"
}{
"docs": "<string>",
"error": "<string>"
}channels
Create channel
Creates a new newsletter channel
POST
/
api
/
{session}
/
channels
Create channel
curl --request POST \
--url https://your-instance.example.com/api/{session}/channels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Channel",
"session": "default",
"description": "Channel description",
"profileUrl": "https://.../example.png"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My Channel',
session: 'default',
description: 'Channel description',
profileUrl: 'https://.../example.png'
})
};
fetch('https://your-instance.example.com/api/{session}/channels', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.example.com/api/{session}/channels"
payload = {
"name": "My Channel",
"session": "default",
"description": "Channel description",
"profileUrl": "https://.../example.png"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.example.com/api/{session}/channels"
payload := strings.NewReader("{\n \"name\": \"My Channel\",\n \"session\": \"default\",\n \"description\": \"Channel description\",\n \"profileUrl\": \"https://.../example.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://your-instance.example.com/api/{session}/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' => 'My Channel',
'session' => 'default',
'description' => 'Channel description',
'profileUrl' => 'https://.../example.png'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"description": "<string>",
"followers": 123,
"lid": "<string>",
"muted": true,
"name": "<string>",
"preview": true,
"profileUrl": "<string>"
}{
"docs": "https://docs.polymorfa.com/api/messages/send",
"error": "missing required field: chatId"
}{
"error": "missing or invalid API key"
}{
"error": "internal server error"
}{
"docs": "<string>",
"error": "<string>"
}Authorizations
Scoped API key created via POST /api/account/keys.
Path Parameters
Session name
Body
application/json
Channel parameters
Response
OK
Channel description/topic
Number of channel followers
Channel JID (Linked Device ID)
Whether channel notifications are muted
Channel display name
Whether the channel is in preview mode
URL of the channel profile picture