Skip to main content
POST
/
sync
/
ratings
curl --request POST \ --url 'https://api.simkl.com/sync/ratings?client_id=' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'User-Agent: <user-agent>' \ --data '{}'
{ "added": { "movies": 2, "shows": 1, "statuses": [ { "request": { "title": "Terminator 3: Rise of the Machines", "year": "2003", "rated_at": "2014-09-01T09:10:11.000Z", "rating": 8, "ids": { "imdb": "tt0181852", "tmdb": 296, "simkl": 53536 } }, "response": { "status": "completed" } }, { "request": { "rating": 6, "ids": { "simkl": 210728 } }, "response": { "status": "completed" } }, { "request": { "title": "Attack on Titan", "year": 2013, "rating": 10, "ids": { "simkl": 39687, "mal": 16498, "tvdb": 267440, "imdb": "tt2560140", "anidb": 9541 } }, "response": { "status": "watching" } } ] }, "not_found": { "movies": [], "shows": [] } }

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.

Body

application/json

Request body for adding/updating ratings. Each item must include rating (1–10 integer). To unset a rating without re-rating, use POST /sync/ratings/remove instead. Items go under movies[], shows[], or anime[] — Simkl resolves anime titles correctly under either shows[] or anime[], so match the field to your data type when known.

movies
object[]
shows
object[]
anime
object[]

Array of anime entries (same shape as shows[]).

Response

OK

Response from POST /sync/ratings.

added
object
not_found
object

Items Simkl could not match. Inspect this to surface diagnostics back to your users. Anime entries that fail to resolve land in shows regardless of which top-level array they were sent under — there is no separate anime bucket in not_found.