API reference
Watchlist and friends
A watchlist across every streaming service (P6-49), and ratings, reviews and friends’ activity on this server (P6-50). Friends are the people on the same server; each shares only what they choose (sharing in their preferences), and nobody sees anything about an item they couldn’t open themselves.
Paths are relative to /api/v1 on your server.
/friends#The people on this server, and what each shares
Yourself first. sharing is your own choice, as your preferences hold it.
- Authorisation
- Bearer token or API key · Session cookie
- 200Success.
application/json·object - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope
/friends/{id}#One person’s page
Their activity, reviews and ratings as you may see them, and their watchlist while they share it.
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) | |
before | query | string | |
limit | query | integer |
- 200Success.
application/json·object - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.NOT_FOUND: nobody by that id is on this serverapplication/json·ErrorEnvelope
/friends/activity#What people here watched, rated, reviewed and put on their watchlists
Newest first, a page at a time: before is the next of the page before. Only what each person shares, and only about items you may open; a review is always shown, being written to be read. Nothing from an adult library.
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
before | query | string | |
limit | query | integer |
- 200Success.
application/json·object - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope
/items/{id}/opinions#An item’s ratings and reviews
Your rating, the average of every rating you see (yours, those shared, those with a review), each shared rating, and the reviews. open is false for what can’t be rated: anything but a film, show or episode, or anything in an adult library.
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) |
- 200Success.
application/json·object - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/items/{id}/rating#Rate an item
Half stars, 1 to 10; null clears it.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) |
- 200Success.
application/json·object - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.VALIDATION_FAILED: it can’t be ratedapplication/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/items/{id}/review#Write or rewrite your review of an item
Up to 5,000 characters; spoilers hides it until the reader asks. Everyone on this server who may open the item can read it.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·object
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) |
- 200Success.
application/json·object - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.VALIDATION_FAILED: it can’t be reviewedapplication/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.application/json·ErrorEnvelope
/items/{id}/review#Take your review down
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) |
- 200Success.
application/json·object - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.NOT_FOUND: you haven’t reviewed itapplication/json·ErrorEnvelope
/reviews/{id}#Take a review down
Its author, or whoever runs the server (user:manage).
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) |
- 204Done; no body.
- 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.FORBIDDEN: it isn’t yours, and you don’t run the serverapplication/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.NOT_FOUND: no such reviewapplication/json·ErrorEnvelope
/watchlist#Your watchlist
Newest first. onServer is this server’s copy, when it has one you may open: the one it was added from, or one found since by its TMDB number. A catalogue title is left out for an account with an age limit, since nobody vouches for its rating, and for an account with Discover switched off (P7-20), which keeps to what is on the server; its catalogue titles come back with Discover.
- Authorisation
- Bearer token or API key · Session cookie
- 200Success.
application/json·object - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope
/watchlist#Put a title on your watchlist
A title from Discover ({tmdb: {kind, id}}) or a film or show of this server’s ({itemId}). 201 when added, 200 with the entry it already had.
- Authorisation
- Bearer token or API key · Session cookie
- Body
application/json·
- 201Success.
application/json·object - 400
VALIDATION_FAILED: the request did not match the schema;details.issueslists what.application/json·ErrorEnvelope - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.PERMISSION_AGE_RESTRICTED: a catalogue title (none of this server’s), for an account with an age limitFORBIDDEN: a catalogue title, with Discover switched off for the account (details.reasonisdiscover-off)application/json·ErrorEnvelope - 404
NOT_FOUND: no such title or item, or it is past your age limitapplication/json·ErrorEnvelope - 409
CONFLICT: the watchlist holds 1,000 titles alreadyapplication/json·ErrorEnvelope - 502
PROVIDER_UNAVAILABLE: a catalogue title, on a server that asks no film catalogueapplication/json·ErrorEnvelope
/watchlist/{id}#Take a title off your watchlist
- Authorisation
- Bearer token or API key · Session cookie
| Parameter | In | Type | Description |
|---|---|---|---|
id required | path | string (uuid) |
- 204Done; no body.
- 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope - 404
NOT_FOUND: no such thing, or not one the caller may see.NOT_FOUND: it isn’t on your watchlistapplication/json·ErrorEnvelope
/watchlist/availability#Where each title on your watchlist can be watched
By entry, in your country: subscription, free, rent or buy, as TMDB has JustWatch’s data, and when it comes out. TMDB’s answers are kept twelve hours.
- Authorisation
- Bearer token or API key · Session cookie
- 200Success.
application/json·object - 401
UNAUTHENTICATED: no session, or the access token expired.application/json·ErrorEnvelope - 403
FORBIDDEN: the account lackslibrary:view, or the library, label, age or schedule scope refuses it.application/json·ErrorEnvelope
No endpoint here matches. Try another word, or look in another area.