GET/api/v1/playlists
List a project's playlists
project_id is required: playlists are listed one project at a time. Ordered by name unless sort says otherwise. To poll for changes, pass updated_after with the newest updated_at you have seen and sort=-updated_at (or updated_at); updated_at moves when the name, description or target_count change, not when items do. A deleted playlist leaves the list. An OAuth token's person needs read on the project (a project they cannot open is a 422 like a missing one).
Scopes: projects:read
Parameters
project_idquery · string (uuid)requiredRequired: the project whose playlists to list (GET /api/v1/projects). Not its sub-projects.
updated_afterquery · string (date-time)Only playlists changed strictly after this instant (ISO 8601 with offset), compared to the millisecond — pass the newest
updated_atyou have seen and that playlist is not returned again.sortquery · "name" | "-name" | "updated_at" | "-updated_at"Sort key; a leading
-is descending. Defaultname. Ties break on id.limitquery · integerPage size, default 50. Values above 100 are treated as 100.
cursorquery · stringnext_cursor from the previous page, with the other parameters unchanged.
Response 200PlaylistList
dataarray of Playlistrequiredidstring (uuid)requiredprojectProjectRefrequiredThe project the playlist belongs to — its permission parent: who may open the project may open the playlist, who may update the project may change it.
idstring (uuid)requirednamestringrequired
namestringrequireddescriptionstring or nullrequiredtarget_countinteger or nullrequiredHow many items the playlist is meant to hold (e.g. a season's episode count), or null. Advisory: nothing refuses an item past it.
item_countintegerrequiredHow many items it holds (GET /playlists/{id}/items lists them).
created_atstring (date-time)requiredupdated_atstring (date-time)requiredWhen its name, description or target_count last changed. Adding, removing or reordering items does not move it (the ETag moves instead).
next_cursorstring or nullrequiredPass as
cursorto get the next page; null means this is the last page.
Other responses
- 401 unauthenticated — no key, or an unknown, revoked or expired one.
- 403 insufficient-scope — the key lacks a required scope.
- 404 not-found.
- 422 validation — a missing or unknown
project_id, or a badlimit,updated_after,sortorcursor. - 429 rate-limited — the key's request budget is spent; wait Retry-After seconds.
- 500 internal.