Contents
On this page

List Videos - Plugixa Video

GET /pvx/v1/videos

List videos one page at a time, newest first by default, with filters for the catalogue pages of a front end.

Public: no sign-in needed for published videos. With context=edit, the caller needs the plugixa_video_view capability, and a user who may not edit other people’s videos (a Video Creator PRO) sees only their own.

Note. The public list holds publish videos only (plus future with upcoming). Unlisted, private, pending and draft videos never appear in it. Locked content is not removed from the list: a members-only or paid video is listed like any other, without its source.

Request

GET https://your-site.example/wp-json/pvx/v1/videos?channel=692&orderby=views&per_page=5

Query parameters

Name Type Default Description
context string view view for the public shape of published videos. edit for the back-office shape and every status except the trash, which needs the plugixa_video_view capability.
access string free, members or paid.
type string video; with Pro also movie or episode.
duration string short (up to 4 minutes), medium (4 to 20 minutes) or long (20 minutes or more).
orderby string date date, views or title. Videos never viewed are kept when sorting by views.
category integer Videos in this category.
tag integer Videos with this tag.
channel integer Videos in this channel.
series integer Episodes of this series PRO.
include integer[] Only these ids, in this order (include[]=838&include[]=840). Overrides orderby.
upcoming boolean false Also list scheduled videos (coming_soon is true on them).

Plus the list parameters every paged list accepts. search matches the title, the description and the excerpt. With context=edit the list also accepts the filters of the admin’s filter drawer, which are not documented here.

Responses

200 OK. data is one page of videos.

{
  "success": true,
  "data": [
    {
      "id": 838,
      "title": "Iceland: The Ring Road",
      "excerpt": "A week around Iceland on Route 1, from Reykjavik to the glacier lagoons of the south coast.",
      "source": "mp4",
      "type": "video",
      "poster": "https://your-site.example/wp-content/uploads/2026/11/ring-road-1024x576.jpg",
      "poster_srcset": "https://your-site.example/wp-content/uploads/2026/11/ring-road-1024x576.jpg 1024w, https://your-site.example/wp-content/uploads/2026/11/ring-road-300x169.jpg 300w",
      "poster_width": 1024,
      "poster_height": 576,
      "duration": 1460,
      "access": "free",
      "price": 0.0,
      "channel_id": 692,
      "channel": "Far Places",
      "views": 1204,
      "likes": 37,
      "categories": [14],
      "permalink": "https://your-site.example/video/iceland-the-ring-road/",
      "date": "2026-11-12T09:30:00+00:00",
      "status": "publish",
      "coming_soon": false
    }
  ],
  "meta": {
    "total": 14,
    "pages": 3
  }
}
Field Type Meaning
data[].id integer The video’s id
data[].title string Plain-text title
data[].excerpt string Plain text, up to 30 words. Empty for a password-protected video
data[].source string hls, mp4, youtube or vimeo
data[].type string video; with Pro also movie or episode
data[].poster string Poster image URL, empty when there is none or the video is password-protected
data[].duration integer Seconds
data[].access string free, members or paid
data[].price number Price of a paid video, else 0
data[].channel_id integer 0 when the video is in no channel
data[].channel string The channel’s name, or empty
data[].views integer Times the source was loaded
data[].likes integer Likes
data[].categories integer[] Category ids
data[].date string Publication date, ISO 8601 in UTC
data[].status string WordPress status: publish, pvx_unlisted, future, pending, draft or private
data[].coming_soon boolean true for a scheduled video
meta.total integer Videos matching the filters, before paging
meta.pages integer Number of pages at this per_page

The public shape never carries the video’s source URL: ask Get Video Source for that. With Pro, every video also has series_id, season and episode (0 unless it is an episode), and an episode has a heading such as 1×3 · Title. With context=edit, each row is the back-office shape described in Get Video.

Errors

Status Code When
401 / 403 plugixa_video_forbidden context=edit without the plugixa_video_view capability.

Plus the errors every endpoint can return.

Examples

curl -s "https://your-site.example/wp-json/pvx/v1/videos?channel=692&orderby=views&per_page=5"
<?php
$query = http_build_query([
    'channel'  => 692,
    'orderby'  => 'views',
    'per_page' => 5,
]);
$ch = curl_init('https://your-site.example/wp-json/pvx/v1/videos?' . $query);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const query = new URLSearchParams({ channel: "692", orderby: "views", per_page: "5" });
const response = await fetch(`https://your-site.example/wp-json/pvx/v1/videos?${query}`);
const { data } = await response.json();

Quick Links

Share