Documentation contents

VCP 1 Documentation›API Reference

Collections

The two required list endpoints: your collections, and the ordered video summaries inside each one.

A collection is an ordered set of videos — a playlist, a series, a shelf, a folder. Collections are the unit of import: users pick which of your collections to bring into their library. Both routes here are required, paginated, and read-only.

List collections

GET/collections

Returns your collections. Supports limit and cursor per thepagination convention.

curl "https://api.example.com/vcp/v1/collections?limit=50" \
  -H "VCP-Service-Token: vcps_a81f42..."
200 OK
{
  "collections": [
    {
      "id": "col_summer24",
      "title": "Summer 2024",
      "description": "Everything from the summer season.",
      "cover_url": "https://cdn.example.com/covers/summer24.jpg",
      "item_count": 132,
      "updated_at": "2026-07-01T12:00:00Z"
    }
  ],
  "next_cursor": "eyJvIjoxMDB9"
}
FieldDescription
idOpaque, stable-forever id (data rules).
titleDisplay name.
descriptionShort description, rendered as plain text.
cover_urlCollection artwork (HTTPS).
item_countNumber of videos in the collection.
updated_atMust change whenever the collection or its items change — it's the re-sync signal for clients without delta sync.

List a collection's videos

GET/collections/{id}/items

Returns video summaries in your intended order. Summaries carry enough for lists and grids; the full metadata and playable sources come fromthe video detail endpoint at playback time.

curl "https://api.example.com/vcp/v1/collections/col_summer24/items?limit=100" \
  -H "VCP-Service-Token: vcps_a81f42..."
200 OK
{
  "items": [
    {
      "id": "vid_88213",
      "title": "Episode 1 - Arrival",
      "duration": 1440,
      "thumbnail_url": "https://cdn.example.com/thumbs/88213.jpg",
      "poster_url": "https://cdn.example.com/posters/88213.jpg",
      "cover_url": "https://cdn.example.com/covers/88213.jpg",
      "episode_number": 1,
      "updated_at": "2026-06-28T08:11:00Z"
    }
  ],
  "next_cursor": null
}

Of the three artwork fields only thumbnail_url is required — seeartwork for shapes and fallback order. Fields likeepisode_number are optional; unknown extra fields are ignored by consumers, so you can add your own with an x_ prefix.

Coming soon!

We're putting the finishing touches on VClarity. It'll be on the App Store and Google Play very soon.