Your data .md

Playback progress

Manage resume points directly: read the active ones, write a single one, or delete one by id.

Reading resume points#

GET /v3/sync/playback returns the in-progress items the user hasn't finished or abandoned.

curl -H "Authorization: Bearer $TOKEN" \
  "https://flicklist.tv/api/v3/sync/playback"
[
  {
    "media_type": "episode",
    "title": "Breaking Bad",
    "season_number": 1,
    "episode_number": 1,
    "episode_name": "Pilot",
    "progress": 42.5,
    "paused": false,
    "updated_at": "2026-05-14T02:10:33.000Z",
    "ids": { "fldb": "flt_9f2c8a1b", "slug": "breaking-bad", "tmdb": 1396, "imdb": "tt0903747", "tvdb": 81189, "anilist": null }
  }
]

ids is null when a resume point has no resolved catalog match. Your own progress value is still meaningful without one.

Writing a resume point#

POST /v3/sync/playback upserts a single resume point, without the stale-sibling cleanup that POST /v3/scrobble/start performs. The resolved item needs a TMDB-linked catalog row, same as scrobbling. Build ids per The ids object.

{ "ids": { "tmdb": 1396 }, "media_type": "movie", "progress": 42.5 }

Add season and episode to target one episode of a show. paused defaults to false when omitted.

{ "id": 4471, "progress": 42.5, "paused": false }

A request that resolves to an item with no TMDB link, or an API key missing write, is a 400. An ids block that doesn't resolve to any catalog item at all is a 404.

Deleting a resume point#

DELETE /v3/sync/playback/{id} removes one resume point by its own row id, not by media identity. Use the id from GET /v3/sync/playback or from a prior write's response. Deleting another user's resume point id 404s, the same as a nonexistent one. A successful delete returns 204 with no body.