JustWatch + Trakt Scraper avatar

JustWatch + Trakt Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
JustWatch + Trakt Scraper

JustWatch + Trakt Scraper

Combined movies/TV scraper covering JustWatch (60+ countries, streaming-availability + offers) and Trakt (movies/shows/episodes/people, popular/trending/anticipated). One actor, two surfaces, switchable via the `platform` input.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(16)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

16

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Scrape movies, TV shows, episodes, and people from JustWatch (streaming availability + offers across 60+ countries) and Trakt (popular, trending, anticipated, public lists, calendar releases). One actor, two sources — switch between them with a single platform input.

Quick Start

  1. Pick a platformjustwatch (no auth, default) or trakt.
  2. Pick a modepopular is the easiest no-input run.
  3. (Trakt only) paste a free Client ID from trakt.tv/oauth/applications into traktClientId.
  4. Run. The default daily test (
    platform=justwatch, mode=popular, country=US, maxItems=10
    ) returns ~10 records with no auth and no proxy.

What it does

JustWatch (no auth required)

JustWatch tracks where every movie / TV show is streaming in 60+ countries — Netflix, Disney+, Hulu, Max, Prime Video, Apple TV+, regional services, plus rent/buy offers from Apple TV, Google Play, Amazon Video, etc. This actor exposes:

  • Search — text query → matching titles with their availability.
  • By URL / path — paste any justwatch.com/<country>/<type>/<slug> URL to get the full title record + offers.
  • By streaming provider — list popular titles available on Netflix / Hulu / Max / Disney+ / Apple TV+ / 40+ providers, in any country.
  • Popular / Trending — most-popular and currently-trending titles per country, optionally narrowed to movies-only or shows-only.

Each record includes: title, original title, original release year, description, poster + backdrop URLs, genres, IMDb ID, runtime, age certification, IMDb / TMDB / Rotten Tomatoes scores, top credits, and the full offer list (which providers, monetization model — subscription / rent / buy / free / ads / cinema — and prices).

Trakt (requires free API key)

Trakt is the open community database for movies & TV. This actor uses the official Trakt REST API (api.trakt.tv) to expose:

  • Search — across movies, shows, episodes, people, lists.
  • By URL / slug / ID — direct lookup of trakt.tv/movies/..., trakt.tv/shows/..., or any Trakt slug or numeric ID.
  • Popular / Trending / Anticipated — for movies and shows.
  • By user — public lists owned by a Trakt user, or items inside a specific public list.
  • Calendar releases — upcoming movies / show episodes / season premieres / DVD releases for any date window (1–31 days).

Each record includes: title, year, IMDb / TMDB / TVDB IDs, slug, overview, release / first-aired date, runtime, genres, certification, rating, votes, network (shows), watcher count, and per-record metadata.

Trakt requires an API key — get a free one at trakt.tv/oauth/applications: create an app, copy the Client ID, paste it into traktClientId. Trakt rejects every request without a valid key.

Inputs

FieldRequiredDescription
platformyesjustwatch or trakt
modeyesWhat to scrape (see modes below)
searchQuerymode=searchFree-text query
urlsmode=byTitleTitle URLs / Trakt slugs / numeric IDs
countryoptionalISO 3166-1 alpha-2 (60+ supported, JustWatch availability is country-specific)
languageoptionalISO 639-1 (titles / descriptions returned in this language)
titleTypeoptionalall, movie, show, episode, person, list
streamingProvidermode=byProvider (JustWatch)Provider technical name (netflix, hulu, max, etc.)
monetizationTypeoptional (JustWatch)FLATRATE, RENT, BUY, FREE, ADS, CINEMA, FAST
objectTypeoptional (JustWatch)MOVIE, SHOW, or all
minYear / maxYearoptionalRelease-year filter
minImdbScoreoptional (JustWatch)Drop titles with IMDb score below
traktClientIdyes (Trakt)Free API key from trakt.tv
traktSortoptional (Trakt)popularity, trending, rating, votes, etc.
traktUsernamemode=byUserTrakt username for public lists
traktListSlugoptional (mode=byUser)Specific list slug
calendarStartDateoptional (Trakt calendar)YYYY-MM-DD; defaults to today
calendarDaysoptional (Trakt calendar)1–31; defaults 7
calendarKindoptional (Trakt calendar)movies, shows, new-shows, premieres, dvd
includeOffersoptional (JustWatch)Whether to enrich each title with full offer list
maxItemsoptionalHard cap on records, default 30
autoEscalateOnBlockoptionalAuto-engage Apify proxy if datacenter IP gets blocked
proxyGroupsoptionalApify proxy groups to use on escalation
rehostMediaUrlsoptionalDefault true. Rehost JustWatch poster/backdrop/icon URLs into Apify storage so they download from any client. Disable for raw upstream URLs.

Modes

platform=justwatch

ModeWhat it does
searchText query → matching titles
byTitleSingle title by JustWatch URL or /{country}/{type}/{slug} path
byProviderPopular titles available on a specific streaming service
popularMost popular titles in the chosen country
trendingCurrently-trending titles

platform=trakt

ModeWhat it does
searchSearch across movies / shows / episodes / people / lists
byTitleSingle title by Trakt URL, slug, or numeric ID
popularMost popular movies / shows
trendingCurrently-trending movies / shows
anticipatedMost anticipated upcoming titles
byUserPublic lists owned by a Trakt user
calendarReleasesUpcoming releases for a date window

Sample outputs

JustWatch movie

{
"platform": "justwatch",
"recordType": "movie",
"id": "tm10",
"objectType": "MOVIE",
"country": "US",
"language": "en",
"url": "https://www.justwatch.com/us/movie/the-matrix",
"title": "The Matrix",
"year": 1999,
"imdbId": "tt0133093",
"runtimeMinutes": 138,
"ageCertification": "R",
"genres": ["Action & Adventure", "Science-Fiction"],
"scoring": { "imdbScore": 8.7, "tomatoMeter": 83, "certifiedFresh": true },
"offers": [
{
"monetizationType": "FLATRATE",
"providerName": "Netflix",
"providerSlug": "netflix",
"url": "https://netflix.com/..."
},
{ "monetizationType": "RENT", "providerName": "Apple TV", "retailPrice": "$3.99", "currency": "USD" }
],
"scrapedAt": "2026-05-08T..."
}

Trakt show

{
"platform": "trakt",
"recordType": "show",
"title": "Breaking Bad",
"year": 2008,
"traktId": 1,
"slug": "breaking-bad",
"url": "https://trakt.tv/shows/breaking-bad",
"imdbId": "tt0903747",
"tmdbId": 1396,
"overview": "An ordinary teacher...",
"firstAired": "2008-01-20T...",
"network": "AMC",
"rating": 9.12,
"votes": 100000,
"airedEpisodes": 62,
"genres": ["drama", "crime"],
"scrapedAt": "2026-05-08T..."
}

FAQ

Do I need a JustWatch API key? No. JustWatch's GraphQL endpoint is public (Cloudflare-fronted; this actor uses Chrome-131 TLS impersonation to satisfy the WAF).

Do I need a Trakt API key? Yes — Trakt rejects every request without one. It's free; sign up at trakt.tv and create an app at trakt.tv/oauth/applications. Paste the Client ID into traktClientId.

Why is my JustWatch run different across countries? Streaming availability is country-specific. A title available on Netflix US might be on Disney+ in the UK and unavailable in Japan.

What languages are supported? JustWatch supports localised titles, descriptions, and genre translations in 30+ languages. Trakt mostly returns English by default.

Does the actor support pagination beyond maxItems? JustWatch returns up to 100 results per query; Trakt paginates 50 per page. Internally the actor pages until maxItems or the upstream runs out of results.

Can I narrow by streaming provider in JustWatch search/popular? Yes — set streamingProvider to filter offers in any mode. For provider-only browsing, use mode=byProvider.

Will my run get blocked? JustWatch is fronted by Cloudflare — the Chrome-131 TLS impersonation handles that without proxy on most runs. If it fails, set autoEscalateOnBlock: true (default) to engage Apify proxy.

Why are some JustWatch image URLs rehosted on Apify storage? JustWatch's image CDN (images.justwatch.com) only serves a small allowlist of size profiles per asset path — every other size returns HTTP 400 from a clean shell, even with a Referer header. This is hotlink protection, similar to Pinterest's i.pinimg.com. To make sure the URLs in your dataset download from any client (curl, Python requests, your data pipeline, etc.), the actor downloads each image once and rehosts it on Apify's Key-Value Store. The original JustWatch URL is preserved on a parallel posterUrlOriginal / backdropUrlsOriginal / providerIconUrlOriginal field for traceability. Disable rehosting via rehostMediaUrls: false if you have your own browser-side image proxy or want raw upstream URLs only.

Output URL fields

FieldTypeNotes
posterUrlstringWhen rehostMediaUrls=true (default), this is an Apify Key-Value Store URL — permanent and downloadable from any client. When false, this is the upstream images.justwatch.com URL (may HTTP 400 outside a browser session).
posterUrlOriginalstringPresent only when rehosting. Holds the original images.justwatch.com URL for provenance / debugging.
backdropUrlsstring[]Same rehosting rules as posterUrl.
backdropUrlsOriginalstring[]Parallel array with original upstream URLs.
offers[].providerIconUrlstringSame rehosting rules.
offers[].providerIconUrlOriginalstringOriginal icon URL for provenance.

Limitations

  • Trakt API key required: the daily test prefill uses JustWatch (no auth) to ensure ≥1 record without user input. Trakt-mode users must supply traktClientId.
  • No personal Trakt data: only public endpoints (popular / trending / anticipated / public lists / calendar). User-history / watchlist / profile data requires OAuth which this actor does not support.
  • No fuzzy ID lookup on Trakt byTitle without URL: a bare slug is assumed to be a movie. To force a show, supply the full URL.
  • JustWatch episode-level offers: this actor returns title-level offers (the offer list per movie/show). Per-episode offers are returned when a season-specific URL is given as urls.