/scrobble/pause) or stops before 80% progress (/scrobble/stop with progress < 80), Simkl persists the position so the user can resume from any signed-in device. Playbacks are how Simkl powers “Continue Watching” UIs.
This page is a reference index. The lifecycle, cross-device flow, and full scrobble integration live in the Scrobble guide.
Members can browse and clean up their saved playbacks at simkl.com/my/history/playback-progress-manager/.
What gets stored
Only one paused playback per show / movie / anime is kept. A new pause replaces the previous one for that title.
Retention by plan
Saved playbacks are pruned automatically by a daily cleanup job:
After the retention window, the playback is deleted unconditionally and can no longer be resumed.
Cross-device resume — the recipe
Device A pauses, Device B picks it up:1
Device A pauses
POST /scrobble/pause with the user’s access_token and current progress. Simkl saves the position.2
Device B gates the refetch on activities
POST /sync/activities returns a playback timestamp per media-type bucket. Compare it to the value you saved on the previous sync — if it hasn’t moved, no new pause has happened and you can skip the next step.3
Device B asks for any saved playbacks
Only when the
playback timestamp moved: GET /sync/playback (or narrow with /sync/playback/episodes / /sync/playback/movies) returns the paused playbacks for this user. Save the new timestamp.4
Device B resumes
POST /scrobble/start with the same item and the saved progress. The session continues; the prior pause is automatically cleared.access_token — the playback is stored per-user, not per-device.

After Device B resumes, the title shows back in the "Now Watching" banner on the user dashboard — picking up at the saved progress.
Endpoints
Get playbacks
GET /sync/playback — list saved paused playbacks for a user (or narrow with /sync/playback/:type where :type is episodes or movies). Filter by date_from, date_to, hide_watched, limit.Delete playback
DELETE /sync/playback/:id — remove a saved playback by its ID.Item shape
Each playback in the response includes:id— 64-bit integer playback ID (use this with the DELETE endpoint)progress— percentage 0-100 (e.g.42,75.5)paused_at— ISO-8601 UTC timestamptype—"episode"or"movie"- For episodes:
episode.{season, number, title}plustvdb_season/tvdb_numberfor anime - The container object:
show(TV episodes),anime(anime episodes), ormovie. Each carriestitle,year, andids.
Related
Add to history
POST /sync/history — the canonical “mark as watched” endpoint. Use this (not playback) when you want a title on the user’s watched library.Mark as watched guide
Pick the right write endpoint when you don’t need real-time playback tracking.
Scrobble guide
The full scrobble lifecycle, including how pause/stop create playbacks.
How scrobbling works
API reference index for the four scrobble endpoints.
Activities
POST /sync/activities — the “is anything new?” gate. Check the playback timestamp before refetching.Sync guide
The activities-driven refresh strategy applied across all user data.