JustWatch APIjustwatch.com ↗
Search movies and TV shows, get streaming offers, browse trending titles, and find similar content across Indian providers via the JustWatch API.
What is the JustWatch API?
This API exposes 6 endpoints covering JustWatch India's catalog of movies and TV shows, including full streaming availability across Indian providers. The get_title_details endpoint returns up to a dozen metadata fields per title — IMDB, TMDB, and Rotten Tomatoes scores, cast credits, genres, runtime, age rating, and a complete list of streaming offers with provider, monetization type, quality tier, price, and currency.
curl -X GET 'https://api.parse.bot/scraper/1e818686-70d7-4a06-b078-9c469784a890/search_titles?limit=5&query=Inception' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace justwatch-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.justwatch_api import JustWatch, Title, TitleSummary, Provider, Genre, TitleNotFound
client = JustWatch()
# Search for movies by title
for result in client.titlesummaries.search(query="Inception"):
print(result.title, result.year, result.streaming_on)
# Drill into full details for the first match
details = result.details()
print(details.title, details.imdb_score, details.runtime)
# Get similar recommendations
for similar in details.similar():
print(similar.title, similar.year, similar.path)
break
# Browse trending titles
for title in client.titlesummaries.popular():
print(title.title, title.year, title.type)
# List all streaming providers
for provider in client.providers.list():
print(provider.clear_name, provider.short_name)
# List available genres
for genre in client.genres.list():
print(genre.translation, genre.short_name)
Full-text search for movies and TV shows by title. Returns matching titles with basic streaming availability (first flatrate or first available offer). Results are server-ranked by relevance to the query.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return. |
| queryrequired | string | The search query for title name. |
{
"type": "object",
"fields": {
"items": "array of title objects with id, type, title, year, path, poster, streaming_on, watch_url"
},
"sample": {
"data": {
"items": [
{
"id": "tm92641",
"path": "/in/movie/inception",
"type": "MOVIE",
"year": 2010,
"title": "Inception",
"poster": "/poster/302449148/{profile}/inception.{format}",
"watch_url": "https://app.primevideo.com/detail?gti=amzn1.dv.gti.04a9f72c-f9c8-c4d1-f97b-6d7ad986a51f",
"streaming_on": "Amazon Prime Video"
}
]
},
"status": "success"
}
}About the JustWatch API
Search and Title Metadata
The search_titles endpoint accepts a query string and an optional limit, returning an array of title objects that each include an id, type (MOVIE or SHOW), title, year, path, poster, streaming_on, and watch_url. The path field is the slug you pass to other endpoints. For a single title's full data, get_title_details takes a slug such as movie/jaws or /in/movie/jaws and returns cast (with name, role, and character), genres, runtime in minutes, backdrop, poster, production countries, age rating, and an offers array that details every current streaming option with provider name, type (flatrate, rent, buy), quality tier, price, and currency.
Browsing and Discovery
browse_popular_titles returns lightweight title summaries — id, type, title, year, path, poster — sorted by trending popularity on JustWatch India. No streaming offers are included at this level; call get_title_details with the path field to get full offer data. get_similar_titles takes a slug and an optional limit and returns the same summary shape for related titles, letting you build recommendation flows or content carousels without storing a local graph.
Reference Endpoints
list_providers returns every streaming provider active in India with id, packageId, clearName, and shortName — useful for mapping provider names that appear in offer objects to canonical identifiers. list_genres returns genre id, shortName, and translation fields, covering all genre tags used across the catalog. Both endpoints take no parameters and return stable reference data.
The JustWatch API is a managed, monitored endpoint for justwatch.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when justwatch.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official justwatch.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Show which Indian streaming services (Netflix, Prime Video, Hotstar, etc.) currently carry a specific movie by reading the
offersarray fromget_title_details. - Compare rental and purchase prices across providers by filtering
offersontype= rent or buy and readingpriceandcurrency. - Build a trending content feed for India using
browse_popular_titleswith a configurablelimit. - Implement a 'More like this' section in a content app using
get_similar_titleskeyed off thepathof a viewed title. - Map provider short names in offer data to display names and logos using the
list_providersreference endpoint. - Surface IMDB, TMDB, and Rotten Tomatoes scores alongside streaming availability from a single
get_title_detailscall. - Filter or group catalog results by genre using genre IDs and translations returned by
list_genres.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does JustWatch have an official developer API?+
What streaming offer data does `get_title_details` return, and does it include price?+
offers array includes provider (display name), type (flatrate, rent, or buy), quality (e.g. HD, 4K), price, currency, and a direct url to the title on that provider. Flatrate offers typically show a null or zero price since they are included with a subscription.Is this API limited to India, or does it cover other JustWatch regions?+
/in/ path prefix and list_providers returns Indian providers only. Coverage of other JustWatch regions (US, UK, DE, etc.) is not currently included. You can fork this API on Parse and revise it to target a different region's endpoints.Does the API support filtering search results by genre, provider, or monetization type?+
search_titles accepts only query and limit — it does not support filtering by genre, provider, or offer type at the search stage. browse_popular_titles similarly takes only limit. Filtering must be applied client-side against the offers and genres fields returned per title. You can fork this API on Parse and revise it to add filter parameters if the underlying source supports them.Does the API return episode-level details or season breakdowns for TV shows?+
get_title_details returns show-level metadata including cast, genres, runtime, scores, and offers, but does not break down individual seasons or episodes. You can fork this API on Parse and revise it to add an episode-level endpoint.