Browse the docs

API reference

Discover

What is in cinemas, new on DVD and Blu-ray and to stream, and on an account’s streaming services; where a title can be watched (P6-42, P6-43). TMDB’s lists, with JustWatch’s streaming data.

Paths are relative to /api/v1 on your server.

GET/discover#

What is in cinemas, new on disc and to stream

The rows of Discover for the caller: in cinemas, coming soon, new on DVD and Blu-ray, new to stream or rent, popular on the services the account chose, and new episodes this week, each title marked when this server has it. Films are held to the account’s age limit, and shows are left out for an account with one. region is the country, else the account’s, else the US. With no film catalogue to ask, the rows are empty and unavailable says why. Every Discover route answers 403 while Discover is switched off for the caller (P7-20) — by the server (discover.enabled), by an admin (allowDiscover) or by the person (prefs.discover) — and asks TMDB nothing.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
regionquerystring
  • 200Success. application/json · object
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. FORBIDDEN: Discover is switched off for the caller; details.reason is discover-off, details.by server, admin or self application/json · ErrorEnvelope
GET/discover/images/{size}/{file}#

A TMDB picture, through this server

Fetched from TMDB once and kept, so a browser asks only its own server. JPEG, PNG or WebP, never SVG.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
size requiredpath"w92" | "w154" | "w185" | "w342" | "w500" | "w780" | "w1280"
file requiredpathstring
  • 200Success. image/* ·
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelope
GET/discover/providers#

The streaming services in a country

The services TMDB knows in the country, the most watched first, for an account to choose its own from.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
regionquerystring
  • 200Success. application/json · object
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
GET/discover/regions#

The countries with streaming data

Authorisation
Bearer token or API key · Session cookie
  • 200Success. application/json · object
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
GET/discover/titles/{kind}/{tmdbId}#

One title from Discover

More about a film or a show TMDB knows: its releases in the country, its certificate there, and where to watch it.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
kind requiredpath"movie" | "show"
tmdbId requiredpathinteger
regionquerystring
  • 200Success. application/json · object
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. NOT_FOUND: TMDB has no such title, or it is past the account’s age limit application/json · ErrorEnvelope
  • 502PROVIDER_UNAVAILABLE: this server asks no film catalogue, or it is not answering application/json · ErrorEnvelope
GET/items/{id}/where-to-watch#

Where a library item can be watched

The streaming services that have a film or a show in the country (a season or an episode is its show), by subscription, free, rent and buy; null for an item TMDB does not know.

Authorisation
Bearer token or API key · Session cookie
ParameterInTypeDescription
id requiredpathstring (uuid)
regionquerystring
  • 200Success. application/json · object
  • 400VALIDATION_FAILED: the request did not match the schema; details.issues lists what. application/json · ErrorEnvelope
  • 401UNAUTHENTICATED: no session, or the access token expired. application/json · ErrorEnvelope
  • 403FORBIDDEN: the account lacks library:view, or the library, label, age or schedule scope refuses it. application/json · ErrorEnvelope
  • 404NOT_FOUND: no such thing, or not one the caller may see. application/json · ErrorEnvelope