OrbTop

JustWatch Streaming Availability Scraper

VIDEOSECOMMERCE

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

JustWatch Streaming Availability Scraper

Bulk-extracts streaming availability data from JustWatch's public GraphQL API. Returns one flat record per offer — which providers carry each title, in what video format (SD/HD/4K), at what price, with a direct deeplink URL.

Covers Netflix, Amazon Prime Video, Disney+, Max, Hulu, Apple TV+, Peacock, Paramount+, and 200+ more streaming services across 80+ countries.

What it does

Queries the popularTitles endpoint on JustWatch's public GraphQL API (apis.justwatch.com/graphql) for each country you specify. For every title it retrieves all current streaming offers, flattening the result into one record per offer (title × provider × format combination).

Each output record includes:

  • Title metadata (name, type, release year, runtime, genres, IMDb/TMDB IDs and scores)
  • Provider details (name, JustWatch package ID)
  • Offer details (monetization type, format, retail price, currency, deeplink URL)
  • Country queried

Use cases

  • Streaming catalog analytics — which providers carry which content, by country
  • Price tracking — monitor rental/purchase prices across services over time
  • Affiliate deeplink monetization — get direct watch-now URLs for any title on any provider
  • Availability-change monitoring — detect when titles enter or leave a streaming service
  • Content licensing research — identify gaps in streaming coverage by region

Input

Field Type Description Default
country string ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, AU, JP, BR) US
providers string[] Filter by JustWatch provider slug(s). Leave empty for all. nfx=Netflix, prv=Prime Video, dnp=Disney+, hlu=Hulu, hbm=Max, atp=Apple TV+, pct=Peacock, pbk=Paramount+ ["nfx"]
monetizationTypes string[] Filter by monetization type(s). Options: FLATRATE, RENT, BUY, FREE, ADS, CINEMA. Leave empty for all. []
objectTypes string[] Filter by content type. Options: MOVIE, SHOW. Leave empty for both. []
maxItems integer Max offer records to collect. 0 = unlimited. 0

Output

One record per streaming offer. A popular show may have 15–25 offers (different providers and quality tiers).

{
  "title": "Succession",
  "object_type": "SHOW",
  "jw_entity_id": "ts78125",
  "imdb_id": "tt7660850",
  "tmdb_id": 76331,
  "original_release_year": 2018,
  "runtime_minutes": 60,
  "genres": "drm",
  "imdb_score": 8.9,
  "imdb_votes": 501234,
  "tmdb_popularity": 142.5,
  "country": "US",
  "provider_id": "cGF8MjQ=",
  "provider_name": "Max",
  "monetization_type": "FLATRATE",
  "presentation_type": "HD",
  "price_amount": null,
  "price_currency": "USD",
  "deeplink_url": "https://play.max.com/show/..."
}

Monetization types

Type Meaning
FLATRATE Included in subscription (no extra charge)
RENT Digital rental — price shown in price_amount
BUY Digital purchase — price shown in price_amount
FREE Free to watch (with or without ads)
ADS Free with ads
CINEMA In theaters

Presentation types

Type Meaning
SD Standard definition
HD High definition
_4K Ultra HD / 4K

Notes

  • One record per offer: a title with 3 providers × 2 formats = 6 records. This is intentional — each offer is independently actionable for affiliate links or price tracking.
  • No authentication required: JustWatch's GraphQL API is fully public.
  • Rate limiting: a 200ms courtesy delay is applied between page requests.
  • Unlimited mode: set maxItems: 0 to crawl the full catalog for a country. The US catalog has ~200,000 titles.