Contents
On this page
Create Series - Plugixa Video
POST /pvx/v1/series
Create a series. Episodes are videos of type episode that point at it with series_id.
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 series: administrators, editors and the Video Creator role. Needs Plugixa Video Pro with the Series app on in Plugixa Video -> App manager; with it off, this route answers 404.
Request
POST https://your-site.example/wp-json/pvx/v1/series
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
title |
string |
Yes | Must not be blank. |
synopsis |
string |
No | HTML, filtered like post content. |
status |
string |
No | draft (the default), publish, pending or private. |
poster_id |
integer |
No | Media library id of the poster. Also set as the featured image. |
backdrop_id |
integer |
No | Media library id of the backdrop. |
trailer |
string |
No | Trailer URL, http or https. |
year |
integer |
No | Release year, up to 9999. |
age_rating |
string |
No | Free text, cut to 20 characters. |
cast |
string |
No | Free text over several lines. |
categories |
integer[] |
No | Category ids. Ids that are not categories are dropped. |
tags |
integer[] |
No | Tag ids. Ids that are not tags are dropped. |
The owner is the caller. To add episodes, create videos with type episode, series_id, season and episode.
{
"title": "Northern Kitchens",
"synopsis": "<p>A cook travels north and learns one dish in every town.</p>",
"status": "publish",
"year": 2026,
"age_rating": "PG",
"categories": [14]
}
Responses
201 Created. data is the new series in the back-office shape.
{
"success": true,
"data": {
"id": 910,
"title": "Northern Kitchens",
"synopsis": "<p>A cook travels north and learns one dish in every town.</p>",
"poster": "https://your-site.example/wp-content/uploads/2026/11/northern-kitchens-1024x1536.jpg",
"backdrop": "https://your-site.example/wp-content/uploads/2026/11/northern-kitchens-backdrop.jpg",
"trailer": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"year": 2026,
"age_rating": "PG",
"cast": "Mara Lind\nJonas Berg",
"categories": [14],
"permalink": "https://your-site.example/series/northern-kitchens/",
"status": "publish",
"poster_id": 1401,
"backdrop_id": 1402,
"tags": [31],
"author": 1
}
}
| Field | Type | Meaning |
|---|---|---|
data.id |
integer |
The series’ id |
data.status |
string |
publish, pending, draft or private |
data.synopsis |
string |
The synopsis as stored, HTML |
data.poster_id |
integer |
Media library id of the poster, 0 for none |
data.backdrop_id |
integer |
Media library id of the backdrop, 0 for none |
data.tags |
integer[] |
Tag ids |
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 series. |
Plus the errors every endpoint can return.
Examples
curl -s -X POST "https://your-site.example/wp-json/pvx/v1/series" \
-u "$WP_USER:$WP_APP_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"title":"Northern Kitchens","synopsis":"<p>A cook travels north and learns one dish in every town.</p>","status":"publish","year":2026,"age_rating":"PG","categories":[14]}'
<?php
$ch = curl_init('https://your-site.example/wp-json/pvx/v1/series');
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' => 'Northern Kitchens',
'synopsis' => '<p>A cook travels north and learns one dish in every town.</p>',
'status' => 'publish',
'year' => 2026,
'age_rating' => 'PG',
'categories' => [14],
]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const response = await fetch('https://your-site.example/wp-json/pvx/v1/series', {
method: 'POST',
headers: {
'Authorization': `Basic ${btoa(`${process.env.WP_USER}:${process.env.WP_APP_PASSWORD}`)}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: "Northern Kitchens", synopsis: "<p>A cook travels north and learns one dish in every town.</p>", status: "publish", year: 2026, age_rating: "PG", categories: [14] }),
});
const { data } = await response.json();
Quick Links
Share