# JustWatch Streaming Scraper (`parseforge/justwatch-streaming-scraper`) Actor

Scrapes JustWatch for movie and TV show streaming availability, pricing, and metadata. Returns provider offers, formats, prices, and deeplinks for 30 countries.

- **URL**: https://apify.com/parseforge/justwatch-streaming-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Videos, Automation
- **Stats:** 8 total users, 1 monthly users, 91.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### JustWatch Streaming Scraper

**Scrape JustWatch streaming availability, pricing, and metadata for any movie or TV show, across 30 countries.** Get provider offers, formats, prices, ratings, and deeplinks in a flat dataset. Export to CSV, JSON, Excel, or XML.

Finding where a movie or TV show is streaming across hundreds of services is a manual, country-by-country chore. JustWatch aggregates this data, but browsing it at scale is impossible. This Actor searches JustWatch by title, filters by content type, and returns every streaming offer, price, and metadata point for up to a million titles per run, localized to your chosen country and language.

| Who uses it | What they scrape JustWatch for |
|---|---|
| Content aggregators | Build a real-time guide of where titles are streaming in a specific country. |
| Market analysts | Track content licensing moves by monitoring which platforms carry a title over time. |
| App developers | Populate a streaming search feature with current availability and deeplinks. |
| Price comparison sites | Compare rental and purchase prices for a title across iTunes, Amazon, and Google Play. |

### What it does

This Actor searches JustWatch for movies and TV shows by title and returns each result with its streaming offers, pricing, ratings, and metadata as a flat row.

- 🌍 **Country localization:** Select from 30 countries to see offers specific to that region.
- 🎬 **Content type filter:** Limit results to movies only, shows only, or both.
- 🔗 **Direct deeplinks:** Every offer includes a clickable link straight to the provider's page.
- 💰 **Pricing details:** Rental, purchase, and subscription prices are included when available.
- 📊 **Flat output:** One row per title, with nested offers flattened for easy analysis.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with JustWatch data

**📊 Monitor content distribution.**

A media analyst runs the Actor weekly for a list of 500 titles to see which platforms added or dropped them in the US market.

**🔍 Power a streaming search engine.**

A developer integrates the Actor into a website backend so users can search any title and see where it is available in their country.

**💸 Compare digital purchase prices.**

A deal hunter scrapes a watchlist of movies to find the cheapest 4K purchase option across iTunes, Amazon, and Microsoft.

**🌎 Localize a content catalog.**

A streaming guide publisher runs the Actor for the same 200 titles across GB, DE, FR, and JP to build localized availability pages.

### Why choose this scraper

| | What you get |
|---|---|
| **No API key needed** | Scrapes public JustWatch data without registration or OAuth. |
| **Multi-country coverage** | Check availability across 30 countries in a single actor. |
| **Provider deeplinks** | Get direct URLs to the content on Netflix, Prime, Disney+, and more. |
| **Structured pricing** | Rental and purchase prices are parsed into separate fields. |

### How it compares

This Actor focuses on title-based search with country and content type filters, while the competitors below offer alternative approaches to JustWatch data.

| Feature | ParseForge | JustWatch Streaming Availability Scraper | JustWatch Streaming Availability Tracker | JustWatch Streaming Scraper |
|---|---|---|---|---|
| Title search input | Yes | Not listed | Yes | Yes |
| Country filter (30 countries) | Yes | Not listed | Yes | Not listed |
| Content type filter (movie/show) | Yes | Not listed | Not listed | Not listed |
| Provider deeplinks | Yes | Yes | Not listed | Not listed |
| Pricing data (rental/purchase) | Yes | Yes | Yes | Not listed |
| Multi-country run in one execution | Not listed | Not listed | Yes | Not listed |

### Configure the run

Drive the Actor with a search query, then narrow results by content type and localize streaming offers by country and language. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "searchQuery": "inception",
 "maxItems": 10
}
```

A larger pull:

```json
{
 "searchQuery": "inception",
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.0085 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [JustWatch Streaming Scraper](https://apify.com/parseforge/justwatch-streaming-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to JustWatch through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/justwatch-streaming-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results for my search query?**

Check the spelling of your search query. Try a shorter or more general keyword. Also verify that the selected country and language combination is valid.

**Why are the streaming offers empty or missing a provider I expected?**

Streaming availability is country-specific. Make sure you selected the correct country code. A title available on Netflix US may not be on Netflix GB.

**The Actor returns fewer results than my maxItems setting.**

The Actor stops when JustWatch has no more matching titles for your search query. Try a broader search term to get more results.

**Why are prices missing for some offers?**

JustWatch does not always display prices for subscription-based offers. Rental and purchase prices are shown when the provider makes them available.

**The run failed with a timeout error.**

Large searches can take time. Increase the run timeout in your Actor settings, or reduce the maxItems count to complete the run faster.

### FAQ

| Question | Answer |
|---|---|
| What data does this Actor return? | It returns title metadata (name, release year, genre, rating) and streaming offers. Each offer includes the provider name, format (SD/HD/4K), price, and a deeplink. |
| Which streaming providers are covered? | The Actor returns whatever providers JustWatch lists for the selected country. This typically includes Netflix, Prime Video, Disney+, Max, Hulu, Apple TV+, and hundreds of local services. |
| Can I search for a TV show and get season-level availability? | The Actor searches by title and returns the show-level record. Season and episode availability depends on what JustWatch exposes for that title in the selected country. |
| How do I specify the country? | Use the country input field with the two-letter ISO code, like US, GB, or DE. The Actor supports 30 countries. |
| Does this Actor use the official JustWatch API? | No. It scrapes the public JustWatch website, so no API key or registration is required. |
| Can I filter results to only show free streaming options? | The Actor returns all offers. You can filter for free options after export by checking the price field in your dataset. |
| What output formats are supported? | You can export your results to CSV, JSON, Excel, or XML from the Apify dataset. |
| How many titles can I scrape in one run? | You set the maximum with the maxItems input. The upper limit is 1,000,000 titles per run. |
| Is there a risk of getting blocked? | The Actor runs on Apify's infrastructure with built-in proxy rotation and request management to minimize blocking. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by JustWatch GmbH. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `searchQuery` (type: `string`):

Title or keyword to search on JustWatch (e.g. 'inception').

## `maxItems` (type: `integer`):

How many titles to collect per run.

## `country` (type: `string`):

ISO country code for streaming availability.

## `language` (type: `string`):

Two-letter language code.

## `objectType` (type: `string`):

Filter by content type.

## Actor input object example

```json
{
  "searchQuery": "inception",
  "maxItems": 10,
  "country": "US",
  "language": "en",
  "objectType": "MOVIE_AND_SHOW"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "inception",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/justwatch-streaming-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "inception",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/justwatch-streaming-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "inception",
  "maxItems": 10
}' |
apify call parseforge/justwatch-streaming-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/justwatch-streaming-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5txeKajN58DzxfJZh/builds/ZRXaKFl9J5iSVKgnw/openapi.json
