Contents
On this page
Update Series - Plugixa Video
PATCH /pvx/v1/series/{id}
Change some fields of a series. Fields you leave out keep their stored value.
Needs a user (signed in with an Application Password or the login cookie) who has the plugixa_video_edit capability and the right to edit this series. Needs Plugixa Video Pro with the Series app on in Plugixa Video -> App manager; with it off, this route answers 404.
Note.
PUTandPOSTon the same URL also merge. Asking forpendingon a series that is already published keeps it published.
Request
PATCH https://your-site.example/wp-json/pvx/v1/series/910
Path parameters
| Name | Type | Description |
|---|---|---|
id |
integer |
The series’ id |
Request body
Content type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
title |
string |
No | 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. |
{
"age_rating": "12",
"year": 2025
}
Responses
200 OK. data is the updated 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": 2025,
"age_rating": "12",
"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.year |
integer |
Release year, 0 when not set |
data.age_rating |
string |
Free text, up to 20 characters |
Errors
| Status | Code | When |
|---|---|---|
404 |
plugixa_video_not_found |
No series with that id. |
422 |
plugixa_video_invalid |
title is blank, or status is unknown. |
401 / 403 |
plugixa_video_forbidden |
The caller may not edit this series. |
Plus the errors every endpoint can return.
Examples
curl -s -X PATCH "https://your-site.example/wp-json/pvx/v1/series/910" \
-u "$WP_USER:$WP_APP_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"age_rating":"12","year":2025}'
<?php
$ch = curl_init('https://your-site.example/wp-json/pvx/v1/series/910');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => getenv('WP_USER') . ':' . getenv('WP_APP_PASSWORD'),
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'age_rating' => '12',
'year' => 2025,
]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const response = await fetch('https://your-site.example/wp-json/pvx/v1/series/910', {
method: 'PATCH',
headers: {
'Authorization': `Basic ${btoa(`${process.env.WP_USER}:${process.env.WP_APP_PASSWORD}`)}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ age_rating: "12", year: 2025 }),
});
const { data } = await response.json();
Quick Links
Share