docs / streaming

Streaming Availability API

Streaming Availability API

base /streaming/v111 endpoints
post/streaming/v1/browse1 credit

browse by country/provider/genre/type/year with pagination

ParameterAllowed / rangeDescription
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
object_typesoptionalmovie · show · tvRestrict to these title types (movie / show; 'tv' is accepted). Comma-list or array.
packagesoptionalRestrict to these providers by JustWatch technical name (e.g. nfx=Netflix, amp=Prime Video) — see the providers action.
genresoptionalRestrict to these genre short-names (e.g. act, drm) — see the genres action. Comma-list or array.
release_yearoptionalAdvanced: release-year range as {min, max} (overrides year_min/year_max).
year_minoptionalEarliest release year (inclusive).
year_maxoptionalLatest release year (inclusive).
page_size = 20optional1–40Results per page (1-40). Larger values are clamped.
cursoroptionalNext-page token from the previous response's meta.next_cursor (for episodes it is a numeric offset).
Try in playground →
post/streaming/v1/title1 credit

title metadata and offers by JustWatch node id

ParameterAllowed / rangeDescription
idoptionalJustWatch node id (movie tm…, show ts…, season tse…). Get it from a search/browse result's `id`.
queryoptionalResolve the title by name when you have no node id (first match is used).
urloptionalResolve from a JustWatch URL when you have no id/query.
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
Try in playground →
post/streaming/v1/availability2 credits

offers for one title across multiple countries

ParameterAllowed / rangeDescription
idrequiredJustWatch node id (movie tm…, show ts…, season tse…). Get it from a search/browse result's `id`.
countriesoptionalMarkets to check (comma-list or array of ISO-2 codes). Defaults to the single `country`.
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
monetization_typesoptionalflatrate · rent · buy · ads · free · cinemaFilter offers by how you pay. Common values shown; case-insensitive.
presentation_typesoptionalsd · hd · 4kFilter offers by video quality. Common values shown; case-insensitive.
Try in playground →
post/streaming/v1/new1 credit

recently added titles by country/provider/type

ParameterAllowed / rangeDescription
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
packagesoptionalRestrict to these providers by JustWatch technical name (e.g. nfx=Netflix, amp=Prime Video) — see the providers action.
object_typesoptionalmovie · show · tvRestrict to these title types (movie / show; 'tv' is accepted). Comma-list or array.
dateoptionalThe change day as YYYY-MM-DD (defaults to today).
price_drops = falseoptionalReturn price-drop changes instead of newly-added titles.
page_type = newoptionalnew · upcoming · leavingWhich change feed (upper-cased for JustWatch). Common values shown; case-insensitive.
monetization_typesoptionalflatrate · rent · buy · ads · free · cinemaFilter offers by how you pay. Common values shown; case-insensitive.
presentation_typesoptionalsd · hd · 4kFilter offers by video quality. Common values shown; case-insensitive.
page_size = 20optional1–40Results per page (1-40). Larger values are clamped.
cursoroptionalNext-page token from the previous response's meta.next_cursor (for episodes it is a numeric offset).
Try in playground →
post/streaming/v1/countriesfree

supported country codes

Try in playground →
post/streaming/v1/genresfree

JustWatch genre reference for a country/language

ParameterAllowed / rangeDescription
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
Try in playground →
post/streaming/v1/providersfree

streaming providers available in a country

ParameterAllowed / rangeDescription
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
Try in playground →
post/streaming/v1/countryfree

one country plus live supported provider/service details

ParameterAllowed / rangeDescription
countryrequiredMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
Try in playground →
post/streaming/v1/seasons1 credit

show seasons with offers

ParameterAllowed / rangeDescription
idrequiredJustWatch node id (movie tm…, show ts…, season tse…). Get it from a search/browse result's `id`.
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
Try in playground →
post/streaming/v1/episodes1 credit

season episodes with offers; show id + season_number resolves first

ParameterAllowed / rangeDescription
idoptionalJustWatch node id (movie tm…, show ts…, season tse…). Get it from a search/browse result's `id`.
season_idoptionalSeason node id (tse…) — fetches that season's episodes directly.
season_numberoptionalWith a show `id`, resolves this season number to its episodes.
country = USoptionalMarket — ISO-3166-1 alpha-2 (upper-cased; ~135 supported, see the countries action). Controls which offers/providers are returned.
language = enoptionalISO-639-1 language for titles/genre names (lower-cased).
page_size = 20optional1–40Results per page (1-40). Larger values are clamped.
cursoroptionalNext-page token from the previous response's meta.next_cursor (for episodes it is a numeric offset).
Try in playground →