type values are movie or show. Title IDs in paths accept a TMDB numeric id (550), or a prefixed IMDb (tt0137523), TVDB (tvdb:81189), or MAL (mal:16498) id — PunchPlay resolves whichever you send to the canonical title server-side.
Recommended scope set
For a full native movie and TV client, request:GET /api/platform/v1/me for account linking. Existing users must approve
newly requested scopes and receive a new access token before the corresponding
endpoints become available.
Endpoint map
Pagination
Collection-style reads return a bounded page and an opaquenextCursor. Pass
that value back as cursor to fetch the next page; null means you have
reached the end.
Treat cursors as meaningless strings — do not parse or build them — and keep
every other query parameter identical while paging through one result set.
GET /api/platform/v1/me/ratings, /favourites, and /watch-status use
page-number pagination instead, taking page and returning total, page,
pageSize, and hasMore. GET /api/platform/v1/me/trophies returns a fixed
catalogue and is not paginated.
me/collection and me/lists previously returned the entire set in one
response. They are now paged, so a client that reads only items will see
the first page rather than everything. Follow nextCursor if you need the
full set.Profile settings
Read the complete editable profile withGET /api/platform/v1/me/profile and
the profile:read scope. Send only the fields that changed to the same endpoint
with PATCH and the profile:write scope; omitted fields keep their current
values.
Use this endpoint for portable account details such as displayName, bio,
avatarUrl, isPublic, regional formats, and spoiler protection. PunchPlay
website interface settings are not part of the public contract.
Title, season, and episode details
Fetch a movie or show by TMDB ID:History
Log a movie watch:allowRewatches: true only when the user explicitly chooses to log it again:
PATCH /api/platform/v1/watch-history/{id} with a watchedAt body to edit a date, or DELETE to remove that entry.
Ratings, favourites, and watch status
One interaction request can change any combination of rating, favourite state, or show status:scope, season, and episode query parameters when the interaction targets a series, season, or episode rather than the title itself.
Lists
Create a private list and add a title:externalSource. Treat a non-null value as externally managed and read-only. Dynamic lists are also read-only for item changes. A watchlist cannot be renamed or deleted, but its items can be added and removed. Collaborators can change items on ordinary lists; only the owner can rename or delete the list.
For anime, send the normal routable kind (movie or show) and the source
identity. isAnime: true remains an optional compatibility hint. When alias
resolution selects a canonical TVDB identity, PunchPlay derives the anime
category automatically even if the hint is omitted.
Collection
Add a physical or digital edition:4k_bluray, bluray, hd_dvd, dvd, and digital. Adding the same title, season, and format again is idempotent and returns the existing item ID.
Reading the collection is paged — see Pagination. Follow
nextCursor when you need the user’s whole collection rather than one screen.
Continue Watching
Read show-level “next episode” summaries:GET /api/platform/v1/me/continue-watching and its {showId} detail route
summarize a show’s current season, episode, and completion state. They are not a
per-item resume-position feed. Use GET /api/platform/v1/playback/in-progress
for exact movie or episode positions (progressSeconds, durationSeconds) and
DELETE /api/platform/v1/playback/in-progress/{id} when the user dismisses an
item.
Notifications
Developer apps can use the notification endpoints for an in-app inbox, unread badge, mark-read actions, and per-user notification preferences. The/me/push-devices routes are reserved for first-party PunchPlay clients.
Third-party apps must not register their device tokens with PunchPlay; use your
own notification delivery service. PunchPlay’s native push delivery requires a
native iOS build and APNs credentials managed by PunchPlay.
Current boundary
The versioned Platform API covers the core movie, TV, and anime experience, including notifications, trophies, profile editing, preferences, and authenticated community stats. Stable public discovery and community overview routes live under/api/public/v1.
Password changes, email changes, connected services, imports, and account deletion remain secure web experiences.
Anime is a PunchPlay category rather than a routable title kind. Titles retain a movie or show kind and TMDB identity, while mapped anime series use TVDB enrichment and official episode ordering.
See the generated API Reference in the Reference navigation for parameters and response contracts, and Playback API for lifecycle behavior.