Contents
On this page
Create Channel - Plugixa Video
POST /pvx/v1/channels
Create a channel, the public page that groups a creator’s videos.
Needs a user (signed in with an Application Password or the login cookie) who has the plugixa_video_create capability and the right to edit channels. In the free plugin only administrators hold it; with Pro, editors and the Video Creator role hold it too. Needs the Channels app on in Plugixa Video -> App manager; with it off, this route answers 404.
Note. A new channel is published unless you send another
status, unlike a video, which starts as a draft. With Pro’s review switched on, a Video Creator’s channel waits aspending.
Request
POST https://your-site.example/wp-json/pvx/v1/channels
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
title |
string |
Yes | The channel’s name. Must not be blank. |
description |
string |
No | HTML, filtered like post content. |
status |
string |
No | publish (the default), pending, draft or private. |
avatar_id |
integer |
No | Media library id of the avatar. Also set as the featured image. |
banner_id |
integer |
No | Media library id of the banner. |
links |
object[] |
No | Up to 10 {label, url}. Links without a valid http or https URL are dropped; any after the tenth are ignored. |
author |
integer |
No | The owner’s user id. Only users who may edit other people’s channels can set it; for anyone else it is ignored and the caller owns the channel. |
{
"title": "Far Places",
"description": "<p>Slow travel films from the edges of the map.</p>",
"avatar_id": 1301,
"banner_id": 1302,
"links": [
{
"label": "Instagram",
"url": "https://instagram.com/farplaces"
}
]
}
Responses
201 Created. data is the new channel in the back-office shape.
{
"success": true,
"data": {
"id": 692,
"title": "Far Places",
"description": "<p>Slow travel films from the edges of the map.</p>",
"avatar": "https://your-site.example/wp-content/uploads/2026/11/far-places-150x150.jpg",
"banner": "https://your-site.example/wp-content/uploads/2026/11/far-places-banner.jpg",
"links": [
{
"label": "Instagram",
"url": "https://instagram.com/farplaces"
}
],
"owner": "Lena Holt",
"owner_id": 7,
"subscribers": 0,
"subscribed": false,
"permalink": "https://your-site.example/channel/far-places/",
"status": "publish",
"avatar_id": 1301,
"banner_id": 1302,
"author": 7
}
}
| Field | Type | Meaning |
|---|---|---|
data.id |
integer |
The channel’s id |
data.status |
string |
publish, pending, draft or private |
data.description |
string |
The description as stored, HTML |
data.avatar_id |
integer |
Media library id of the avatar, 0 for none |
data.banner_id |
integer |
Media library id of the banner, 0 for none |
data.author |
integer |
The owner’s WordPress user id |
Errors
| Status | Code | When |
|---|---|---|
422 |
plugixa_video_invalid |
title is blank, or status is unknown; data.field names the field. |
401 / 403 |
plugixa_video_forbidden |
The caller may not create channels. |
Plus the errors every endpoint can return.
Examples
curl -s -X POST "https://your-site.example/wp-json/pvx/v1/channels" \
-u "$WP_USER:$WP_APP_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"title":"Far Places","description":"<p>Slow travel films from the edges of the map.</p>","avatar_id":1301,"banner_id":1302,"links":[{"label":"Instagram","url":"https://instagram.com/farplaces"}]}'
<?php
$ch = curl_init('https://your-site.example/wp-json/pvx/v1/channels');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => getenv('WP_USER') . ':' . getenv('WP_APP_PASSWORD'),
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'title' => 'Far Places',
'description' => '<p>Slow travel films from the edges of the map.</p>',
'avatar_id' => 1301,
'banner_id' => 1302,
'links' => [
[
'label' => 'Instagram',
'url' => 'https://instagram.com/farplaces',
],
],
]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const response = await fetch('https://your-site.example/wp-json/pvx/v1/channels', {
method: 'POST',
headers: {
'Authorization': `Basic ${btoa(`${process.env.WP_USER}:${process.env.WP_APP_PASSWORD}`)}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: "Far Places", description: "<p>Slow travel films from the edges of the map.</p>", avatar_id: 1301, banner_id: 1302, links: [{"label": "Instagram", "url": "https://instagram.com/farplaces"}] }),
});
const { data } = await response.json();
Quick Links
Share