JustWatch + Trakt Scraper
Pricing
from $3.00 / 1,000 results
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
Maintained by CommunityActor stats
16
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
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
- Pick a
platform—justwatch(no auth, default) ortrakt. - Pick a
mode—popularis the easiest no-input run. - (Trakt only) paste a free Client ID from
trakt.tv/oauth/applications into
traktClientId. - Run. The default daily test () returns ~10 records with no auth and no proxy.platform=justwatch, mode=popular, country=US, maxItems=10
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
| Field | Required | Description |
|---|---|---|
platform | yes | justwatch or trakt |
mode | yes | What to scrape (see modes below) |
searchQuery | mode=search | Free-text query |
urls | mode=byTitle | Title URLs / Trakt slugs / numeric IDs |
country | optional | ISO 3166-1 alpha-2 (60+ supported, JustWatch availability is country-specific) |
language | optional | ISO 639-1 (titles / descriptions returned in this language) |
titleType | optional | all, movie, show, episode, person, list |
streamingProvider | mode=byProvider (JustWatch) | Provider technical name (netflix, hulu, max, etc.) |
monetizationType | optional (JustWatch) | FLATRATE, RENT, BUY, FREE, ADS, CINEMA, FAST |
objectType | optional (JustWatch) | MOVIE, SHOW, or all |
minYear / maxYear | optional | Release-year filter |
minImdbScore | optional (JustWatch) | Drop titles with IMDb score below |
traktClientId | yes (Trakt) | Free API key from trakt.tv |
traktSort | optional (Trakt) | popularity, trending, rating, votes, etc. |
traktUsername | mode=byUser | Trakt username for public lists |
traktListSlug | optional (mode=byUser) | Specific list slug |
calendarStartDate | optional (Trakt calendar) | YYYY-MM-DD; defaults to today |
calendarDays | optional (Trakt calendar) | 1–31; defaults 7 |
calendarKind | optional (Trakt calendar) | movies, shows, new-shows, premieres, dvd |
includeOffers | optional (JustWatch) | Whether to enrich each title with full offer list |
maxItems | optional | Hard cap on records, default 30 |
autoEscalateOnBlock | optional | Auto-engage Apify proxy if datacenter IP gets blocked |
proxyGroups | optional | Apify proxy groups to use on escalation |
rehostMediaUrls | optional | Default true. Rehost JustWatch poster/backdrop/icon URLs into Apify storage so they download from any client. Disable for raw upstream URLs. |
Modes
platform=justwatch
| Mode | What it does |
|---|---|
search | Text query → matching titles |
byTitle | Single title by JustWatch URL or /{country}/{type}/{slug} path |
byProvider | Popular titles available on a specific streaming service |
popular | Most popular titles in the chosen country |
trending | Currently-trending titles |
platform=trakt
| Mode | What it does |
|---|---|
search | Search across movies / shows / episodes / people / lists |
byTitle | Single title by Trakt URL, slug, or numeric ID |
popular | Most popular movies / shows |
trending | Currently-trending movies / shows |
anticipated | Most anticipated upcoming titles |
byUser | Public lists owned by a Trakt user |
calendarReleases | Upcoming 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
| Field | Type | Notes |
|---|---|---|
posterUrl | string | When 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). |
posterUrlOriginal | string | Present only when rehosting. Holds the original images.justwatch.com URL for provenance / debugging. |
backdropUrls | string[] | Same rehosting rules as posterUrl. |
backdropUrlsOriginal | string[] | Parallel array with original upstream URLs. |
offers[].providerIconUrl | string | Same rehosting rules. |
offers[].providerIconUrlOriginal | string | Original 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.