Skip to main content
GET
/
sync
/
activities
cURL
curl "https://api.simkl.com/sync/activities?client_id=YOUR_CLIENT_ID&app-name=my-app-name&app-version=1.0" \
  -H "User-Agent: my-app-name/1.0" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
{ "all": "2026-05-14T06:50:38Z", "settings": { "all": "2026-02-15T22:53:03Z" }, "tv_shows": { "all": "2026-05-14T06:49:56Z", "rated_at": "2026-04-10T05:34:55Z", "playback": "2026-04-11T10:36:01Z", "plantowatch": "2026-04-10T05:42:42Z", "watching": "2026-05-04T19:40:58Z", "completed": "2026-04-11T11:50:21Z", "hold": "2026-05-14T06:49:56Z", "dropped": "2026-05-14T06:49:56Z", "removed_from_list": "2026-04-10T05:34:55Z" }, "anime": { "all": "2026-05-14T06:50:38Z", "rated_at": "2026-04-10T05:34:55Z", "playback": "2026-05-14T06:50:38Z", "plantowatch": "2026-05-14T06:41:53Z", "watching": "2026-05-14T06:43:00Z", "completed": "2026-05-14T06:42:42Z", "hold": "2026-05-14T06:42:05Z", "dropped": "2026-05-14T06:49:56Z", "removed_from_list": "2026-04-10T05:34:55Z" }, "movies": { "all": "2026-05-14T06:50:38Z", "rated_at": "2026-05-14T06:43:20Z", "playback": "2026-05-14T06:50:38Z", "plantowatch": "2026-05-14T06:43:11Z", "completed": "2026-05-14T06:43:15Z", "dropped": "2026-05-14T06:49:56Z", "removed_from_list": "2026-04-10T05:34:55Z" } }

Documentation Index

Fetch the complete documentation index at: https://api.simkl.org/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

client_id
string
query
default:YOUR_CLIENT_ID
required

Preferred form: your client_id as a URL query parameter on every request. Self-describing in logs and curl commands. See Headers and required parameters.

Authorization
string
header
default:YOUR_ACCESS_TOKEN
required

OAuth 2.0 or PIN-flow access_token. Required for endpoints that read or modify the user's library, scrobble session, ratings, settings, or playbacks. See Authentication.

Headers

User-Agent
string
required

Descriptive identifier for your app, ideally name/version. Examples: PlexMediaServer/1.43.1.10540, kodi-simkl/0.9.2, MyApp/2.4.1 (https://myapp.com).

Query Parameters

client_id
string
required

Your client_id from your Simkl developer settings. Required on every request.

app-name
string
required

Short, lowercase identifier for your app (e.g. plex-scrobbler, kodi-bridge). Helps Simkl identify which apps are using the API.

app-version
string
required

Your app's current version (e.g. 1.0, 2.4.1). Helps Simkl debug issues you report.

Response

OK

Last-activity envelope returned by GET /sync/activities. Use all as the cheapest first-pass check, then drill into a per-domain block only when its all has moved.

all
string<date-time> | null
required

Type 4 null — data not on file in that field's slot. See Null and missing values. Newest timestamp across every domain and bucket. Best first-level check — if this hasn't moved since your last sync, nothing has changed.

settings
object
required

Top-level settings change marker. Bumped when the user changes any setting at https://simkl.com/settings/ (display name, time zone, privacy, etc.).

tv_shows
object
required

Per-domain timestamps for TV shows and anime. Both types share the full five-status set (watching, plantowatch, hold, dropped, completed). Each timestamp is an ISO-8601 datetime, or null if the user has never had activity in that bucket — a Type 1 null ("never happened yet", see Null-value conventions).

anime
object
required

Per-domain timestamps for TV shows and anime. Both types share the full five-status set (watching, plantowatch, hold, dropped, completed). Each timestamp is an ISO-8601 datetime, or null if the user has never had activity in that bucket — a Type 1 null ("never happened yet", see Null-value conventions).

movies
object
required

Per-domain timestamps for movies. Movies are single-session content, so this block does not include watching or hold — those keys are omitted entirely (not null). See Watchlist statuses for the per-type matrix.