# What's on Netflix Catalog Tracker (`crawlerbros/whats-on-netflix-catalog-tracker`) Actor

Track the full Netflix US catalog via What's on Netflix - browse and search 8,000+ movies & TV shows with genre, language, year, and rating filters, plus the latest Netflix news, coming-soon/leaving-soon alerts, and Top 10 reports.

- **URL**: https://apify.com/crawlerbros/whats-on-netflix-catalog-tracker.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** News, Automation, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## What's on Netflix Catalog Tracker

Track the full Netflix catalog and Netflix news in one actor. Powered by [What's on Netflix](https://www.whats-on-netflix.com), the leading independent Netflix tracking resource, this actor gives you structured, ready-to-use data on **8,000+ Netflix movies & TV shows** (genre, cast, ratings, runtime, release year, Netflix Original status) plus the site's **news & blog articles** — coming-soon alerts, leaving-soon warnings, Top 10 reports, reviews, and more.

No login, no cookies, no API key required.

### What this actor does

- **Catalog Browse & Search** — search by title/cast/director, or browse the entire Netflix library filtered by content type, genre, language, release year range, alphabetical letter, director, cast member, and editorial tags (Netflix Originals, Must Watch picks, documentaries, anime, kids, stand-up comedy, reality TV, video podcasts)
- **Random Picks ("surprise me" roulette)** — get a batch of genuinely random Netflix titles matching your mood filters (content type, genre, language, maturity rating, runtime bucket, release year range, Netflix Originals) — perfect for "what should I watch tonight" style discovery
- **Newly Added tracker** — a precise date-added tracker for both the US and UK Netflix catalogs, filterable by production country, exact date-added range, and extra editorial tags (Christmas titles, interactive titles, titles unavailable on Netflix's ad-supported plan) not available on the plain catalog browse
- **Upcoming titles** — titles with a confirmed future Netflix release date, distinct from the editorial "Coming Soon" news articles
- **Netflix News** — pull the latest news & blog posts, optionally filtered by category (Coming Soon, Leaving Soon, What's New, Top 10 Reports, Reviews, Anime, Interviews, K-Dramas, Netflix Games, Soundtracks, Sports, UK) or a free-text search query
- **Sorting** — order results by title (A-Z / Z-A), release year, or date added, depending on mode
- **Rich per-title metadata** — IMDb rating, Rotten Tomatoes score, maturity rating, runtime, season/episode info, cast & director, cover art, and the official trailer link
- **Extra critic scores on Random Picks & Newly Added** — Rotten Tomatoes audience score, Metacritic score, and Letterboxd rating, plus (on Random Picks) the title's actual Netflix-CDN portrait poster and real-world release date — data points the catalog-browse endpoint doesn't expose
- Empty fields are always omitted from the output — every field you get back has a real value

### Output fields

#### Catalog titles (`mode: catalogBrowse`)

| Field | Description |
|---|---|
| `titleId` | Internal What's on Netflix title ID |
| `title` | Title of the movie/show |
| `contentType` | `Movie` or `TV` |
| `language` | Primary spoken/original language |
| `genres[]` | Genre tags (e.g. `Drama`, `Horror`) |
| `maturityRating` | US content rating (e.g. `TV-MA`, `PG-13`) |
| `imdbRating` | IMDb score, 0-10 |
| `rottenTomatoesScore` | Rotten Tomatoes score, 0-100 |
| `runtime` | Runtime as text (e.g. `"85 mins"`) |
| `runtimeMinutes` | Runtime parsed to minutes |
| `releaseYear` | First release year |
| `yearDisplay` | Human-readable year/year-range (e.g. `2018–2020`, `2026–present`) |
| `dateAddedToNetflix` | Date the title was added to Netflix (ISO `YYYY-MM-DD`) |
| `seasonInfo` | Season/volume label for TV shows (e.g. `Season 5 - Volume 3`) |
| `episodeCount` | Number of episodes in the current season |
| `seasons[]` | Per-season breakdown for TV shows: `seasonName`, `episodeCount`, `premiereDate` (ISO `YYYY-MM-DD`) for each season released so far |
| `description` | Synopsis |
| `director` | Director name(s) |
| `cast[]` | Cast list |
| `imageUrl` | Cover art image |
| `netflixId` | Netflix's own title ID |
| `netflixUrl` | Direct Netflix watch page |
| `isNetflixOriginal` | `true` if a Netflix Original |
| `isMustWatch` | `true` if tagged a "Must Watch" editorial pick |
| `isPodcast` | `true` if from the Video Podcasts library section |
| `youtubeTrailerId` / `youtubeTrailerUrl` | Official trailer on YouTube |
| `previewUrl` | Link to the site's preview/announcement article, if one exists |
| `reviewUrl` | Link to the site's full review, if one exists |
| `sourceUrl` | Canonical Netflix watch page |
| `recordType` | Always `"title"` |
| `scrapedAt` | UTC timestamp the record was scraped |

#### Random picks (`mode: randomPicks`)

| Field | Description |
|---|---|
| `titleId` | Internal What's on Netflix title ID |
| `netflixId` | Netflix's own title ID |
| `title` | Title of the movie/show |
| `contentType` | `Movie` or `TV` |
| `language` | Primary spoken/original language |
| `genres[]` | Genre tags |
| `maturityRating` | US content rating |
| `imdbRating` | IMDb score, 0-10 |
| `rottenTomatoesScore` | Rotten Tomatoes critic (Tomatometer) score, 0-100 |
| `rottenTomatoesAudienceScore` | Rotten Tomatoes audience (Popcornmeter) score, 0-100 — only when available |
| `metacriticScore` | Metacritic score, 0-100 — only when available |
| `letterboxdRating` | Letterboxd average rating, 0-5 — only when available |
| `runtime` / `runtimeMinutes` | Runtime as text / parsed to minutes |
| `releaseYear` | First release year |
| `yearDisplay` | Human-readable year/year-range |
| `releaseDate` | The title's real-world release/premiere date (ISO `YYYY-MM-DD`) — only when available |
| `seasonInfo` / `episodeCount` | Season label and episode count for TV shows — only when available |
| `description` | Synopsis |
| `director` | Director name(s) |
| `cast[]` | Cast list |
| `portraitImageUrl` | Portrait poster art, served directly from Netflix's own image CDN |
| `netflixUrl` | Direct Netflix watch page — only when available |
| `isNetflixOriginal` | `true` if a Netflix Original |
| `isMustWatch` | `true`/`false` if the editorial "Must Watch" status is known — only when available |
| `youtubeTrailerId` / `youtubeTrailerUrl` | Official trailer on YouTube — only when available |
| `previewUrl` / `reviewUrl` | Links to the site's preview/review article — only when available |
| `sourceUrl` | Same as `netflixUrl`, when available |
| `recordType` | Always `"randomPick"` |
| `scrapedAt` | UTC timestamp the record was scraped |

#### Newly added titles (`mode: newlyAdded`)

| Field | Description |
|---|---|
| `titleId` | Internal What's on Netflix title ID |
| `netflixId` | Netflix's own title ID |
| `title` | Title of the movie/show |
| `contentType` | `Movie` or `TV` |
| `language` | Primary spoken/original language |
| `genres[]` | Genre tags |
| `maturityRating` | US content rating |
| `imdbRating` | IMDb score, 0-10 |
| `rottenTomatoesScore` | Rotten Tomatoes critic (Tomatometer) score, 0-100 — only when available |
| `rottenTomatoesAudienceScore` | Rotten Tomatoes audience (Popcornmeter) score, 0-100 — only when available |
| `metacriticScore` | Metacritic score, 0-100 — only when available |
| `letterboxdRating` | Letterboxd average rating, 0-5 — only when available |
| `runtime` / `runtimeMinutes` | Runtime as text / parsed to minutes |
| `releaseYear` | First release year |
| `yearDisplay` | Human-readable year/year-range |
| `dateAddedToNetflix` | Date the title was added to Netflix (ISO `YYYY-MM-DD`) |
| `seasonInfo` / `episodeCount` | Season label and episode count for TV shows — only when available |
| `description` | Synopsis |
| `director` | Director name(s) |
| `writer` | Writer name(s) — only when available |
| `awards` | Awards/nominations summary — only when available |
| `country` | Primary production country |
| `cast[]` | Cast list |
| `imageUrl` | Cover art image |
| `netflixUrl` | Direct Netflix watch page |
| `isNetflixOriginal` | `true` if a Netflix Original |
| `isMustWatch` | `true`/`false` if the editorial "Must Watch" status is known |
| `isPodcast` | `true` if from the Video Podcasts library section |
| `isChristmasTitle` | `true` if tagged as a Christmas/holiday title |
| `isInteractiveTitle` | `true` if an interactive "choose your own adventure" style title |
| `isUnavailableOnAdsPlan` | `true` if the title is NOT available on Netflix's ad-supported (Standard with Ads) plan |
| `youtubeTrailerId` / `youtubeTrailerUrl` | Official trailer on YouTube — only when available |
| `previewUrl` | Link to the site's preview/announcement article, if one exists |
| `sourceUrl` | Same as `netflixUrl` |
| `region` | Netflix region this record was fetched for (`US` or `UK`) |
| `recordType` | Always `"newlyAdded"` |
| `scrapedAt` | UTC timestamp the record was scraped |

#### Upcoming titles (`mode: comingSoon`)

| Field | Description |
|---|---|
| `netflixId` | Netflix's own title ID |
| `title` | Title of the movie/show |
| `releaseDate` | Confirmed future Netflix release date (ISO `YYYY-MM-DD`) |
| `titleYear` | The title's original release/production year |
| `contentType` | `Movie`, `Series`, `Documentary`, or `Stand-Up` |
| `seasonInfo` | Season label, for TV shows — only when available |
| `additionalInfo` | Extra release-schedule note (e.g. `"Weekly Episodes"`) — only when available |
| `imageUrl` | Cover art image |
| `isNetflixOriginal` | `true` if a Netflix Original |
| `netflixUrl` | Direct Netflix watch page |
| `sourceUrl` | Same as `netflixUrl` |
| `recordType` | Always `"comingSoon"` |
| `scrapedAt` | UTC timestamp the record was scraped |

#### News articles (`mode: news`)

| Field | Description |
|---|---|
| `postId` | WordPress post ID |
| `title` | Article headline |
| `slug` | URL slug |
| `url` | Article URL |
| `excerpt` | Short summary |
| `contentText` | Full article body as plain text (first 8,000 characters) |
| `categories[]` | Category name(s) |
| `tags[]` | Tag name(s) |
| `publishedAt` / `modifiedAt` | UTC timestamps |
| `author` / `authorUrl` | Byline author and their author page |
| `featuredImageUrl` | Article cover image |
| `sourceUrl` | Same as `url` |
| `recordType` | Always `"article"` |
| `scrapedAt` | UTC timestamp the record was scraped |

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | select | `catalogBrowse` | `catalogBrowse`, `randomPicks`, `newlyAdded`, `comingSoon`, or `news` |
| `searchQuery` | string | – | Free-text search on title/cast/director (mode=catalogBrowse/randomPicks/newlyAdded/comingSoon) |
| `contentType` | select | All | `Movie` / `TV` (mode=catalogBrowse/randomPicks/newlyAdded) |
| `director` | string | – | Precise director-only match (mode=catalogBrowse) |
| `castMember` | string | – | Precise cast-only match (mode=catalogBrowse) |
| `genre` | select | All | One of 27 genres (mode=catalogBrowse/randomPicks/newlyAdded) |
| `language` | select | All | One of 28 languages (mode=catalogBrowse/randomPicks/newlyAdded) |
| `letter` | select | All | First letter A-Z or `#` (mode=catalogBrowse) |
| `yearMin` / `yearMax` | integer | – | Release-year range, 1940-2030 (mode=catalogBrowse/randomPicks) |
| `region` | select | `us` | `us` / `uk` Netflix catalog (mode=newlyAdded) |
| `country` | string | – | Production country, e.g. `Japan` (mode=newlyAdded) |
| `dateFrom` / `dateTo` | date | – | Date-added ISO range (mode=newlyAdded) |
| `ratingFilter` | select | Any | One of 6 maturity ratings (mode=randomPicks) |
| `runtimeFilter` | select | Any | `short` (<90 min) / `standard` (90-150 min) / `long` (>150 min) (mode=randomPicks) |
| `sortBy` | select | `title_asc` | `title_asc` / `title_desc` / `year_desc` / `year_asc` (mode=catalogBrowse) |
| `newlyAddedSortBy` | select | `date_desc` | Date/title/popularity sort (mode=newlyAdded) |
| `comingSoonSortBy` | select | `date_asc` | Date/title sort (mode=comingSoon) |
| `netflixOriginalsOnly` | boolean | `false` | Only Netflix Originals (mode=catalogBrowse/randomPicks/newlyAdded/comingSoon) |
| `mustWatchOnly` | boolean | `false` | Only editorial "Must Watch" picks (mode=catalogBrowse/newlyAdded) |
| `documentariesOnly` | boolean | `false` | Only documentaries (mode=catalogBrowse/randomPicks/newlyAdded) |
| `animeOnly` | boolean | `false` | Only anime (mode=catalogBrowse/randomPicks/newlyAdded) |
| `kidsOnly` | boolean | `false` | Only Kids library titles (mode=catalogBrowse/randomPicks/newlyAdded) |
| `standupOnly` | boolean | `false` | Only stand-up comedy specials (mode=catalogBrowse/randomPicks/newlyAdded) |
| `realityOnly` | boolean | `false` | Only reality TV (mode=catalogBrowse/randomPicks/newlyAdded) |
| `podcastsOnly` | boolean | `false` | Only video podcasts (mode=catalogBrowse/newlyAdded) |
| `christmasOnly` | boolean | `false` | Only Christmas/holiday titles (mode=newlyAdded) |
| `interactiveOnly` | boolean | `false` | Only interactive titles (mode=newlyAdded) |
| `adsPlanUnavailableOnly` | boolean | `false` | Only titles unavailable on the ad-supported plan (mode=newlyAdded) |
| `newsCategory` | select | All | One of 13 news categories (mode=news) |
| `newsSearchQuery` | string | – | Free-text search on news articles (mode=news) |
| `maxItems` | integer | `20` | Hard cap on emitted records (1-2000); in mode=randomPicks, also the number of random picks requested |

#### Example: search the catalog

```json
{
  "mode": "catalogBrowse",
  "searchQuery": "stranger things",
  "maxItems": 20
}
```

#### Example: browse Korean dramas released 2020-2024, newest first

```json
{
  "mode": "catalogBrowse",
  "language": "korean",
  "genre": "drama",
  "yearMin": 2020,
  "yearMax": 2024,
  "sortBy": "year_desc",
  "maxItems": 50
}
```

#### Example: Netflix Originals starting with "A"

```json
{
  "mode": "catalogBrowse",
  "letter": "A",
  "netflixOriginalsOnly": true,
  "maxItems": 100
}
```

#### Example: 10 random "surprise me" picks — Korean, R-rated, over 150 mins

```json
{
  "mode": "randomPicks",
  "language": "korean",
  "ratingFilter": "R",
  "runtimeFilter": "long",
  "maxItems": 10
}
```

#### Example: latest "Coming Soon to Netflix" news

```json
{
  "mode": "news",
  "newsCategory": "comingSoon",
  "maxItems": 25
}
```

#### Example: Christopher Nolan titles on Netflix

```json
{
  "mode": "catalogBrowse",
  "director": "Christopher Nolan",
  "maxItems": 20
}
```

#### Example: Japanese titles added to the UK Netflix catalog this month

```json
{
  "mode": "newlyAdded",
  "region": "uk",
  "country": "Japan",
  "dateFrom": "2026-07-01",
  "dateTo": "2026-07-31",
  "maxItems": 50
}
```

#### Example: everything landing on Netflix in the next few weeks

```json
{
  "mode": "comingSoon",
  "maxItems": 50
}
```

### Use cases

- **Streaming intelligence** — track Netflix's catalog composition by genre, language, and content type over time
- **Recommendation engines** — feed structured Netflix metadata (ratings, genres, cast) into a recommender system
- **Content discovery apps** — power a "what to watch" browser filtered by mood, genre, or rating, or bolt on a "surprise me" random-pick button
- **Media monitoring** — get alerted to newly announced, coming-soon, or soon-to-be-removed Netflix titles
- **Competitive/market research** — analyze Netflix Originals output and Top 10 chart trends over time
- **Academic/data research** — bulk-export catalog metadata for streaming-market analysis

### FAQ

**Is this affiliated with the data source?** No, this is a third-party actor that scrapes [What's on Netflix](https://www.whats-on-netflix.com), the largest independent Netflix tracking site, which maintains its own manually-curated catalog and news database. It is not affiliated with Netflix or What's on Netflix.

**Which Netflix region does the catalog cover?** `catalogBrowse` and `randomPicks` cover the US Netflix catalog. `newlyAdded` covers either the US or UK catalog, selectable via the `region` input.

**What's the difference between `mode: comingSoon` and the "Coming Soon" news category?** `mode: comingSoon` returns structured data (title, confirmed release date, Netflix ID) for titles with a concrete future Netflix release date. `mode: news` with `newsCategory: comingSoon` instead returns the site's editorial announcement/preview blog articles about upcoming titles — prose, not structured release-date records.

**What does `isUnavailableOnAdsPlan` mean?** Some licensed titles (and a subset of Netflix Originals) aren't available on Netflix's ad-supported "Standard with Ads" plan due to studio licensing restrictions — this flag (mode=newlyAdded only) tells you which ones.

**How fresh is the data?** What's on Netflix updates its catalog and news daily as titles are added/removed and news breaks. Because it's an independently-maintained tracking database rather than Netflix's own catalog API, a small fraction of `netflixUrl`/`sourceUrl` links can briefly 404 if a title was removed from Netflix after the tracker's last update — this is an upstream data-freshness limitation, not a broken link on our end.

**What does "Must Watch" mean?** An editorial tag the What's on Netflix team applies to titles they specifically recommend.

**Why do some titles have no IMDb/Rotten Tomatoes score?** Not every title (especially very new or exclusive originals) has been rated yet on those platforms; the field is simply omitted when no score is available.

**What's the difference between `previewUrl` and `reviewUrl`?** `previewUrl` links to the site's pre-release announcement/preview article; `reviewUrl` links to their full post-release review. Both are optional — most titles don't have either.

**Can I combine multiple filters?** Yes — all `catalogBrowse` filters (content type, genre, language, letter, year range, and the editorial toggles) can be combined freely. The same applies to `randomPicks`, which additionally supports maturity-rating and runtime filters.

**How is `randomPicks` different from `catalogBrowse`?** `catalogBrowse` deterministically returns every title matching your filters, page by page. `randomPicks` instead draws a fresh, genuinely random sample of titles matching your filters each run — same underlying Netflix catalog, but for "surprise me" / discovery use cases rather than exhaustive listing. It also occasionally surfaces extra critic scores (Rotten Tomatoes audience score, Metacritic, Letterboxd) and a real-world release date that `catalogBrowse` doesn't have.

**Will `randomPicks` always return exactly `maxItems` records?** Only if at least that many distinct titles match your filters — the actor makes several fresh random draws and de-duplicates until it reaches `maxItems` or exhausts the matching pool, whichever comes first.

**Does `contentType` support "Series"?** No — the upstream catalog only distinguishes `Movie` and `TV`. Use `TV` for all series/shows.

# Actor input Schema

## `mode` (type: `string`):

What to fetch: browse/search the Netflix catalog, get random "surprise me" picks, see what's newly added (with precise date-added/region/country filters), see upcoming titles with concrete release dates, or fetch Netflix news & blog articles.

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

Free-text search across title, cast, and director (e.g. `stranger things`). Leave blank to browse/pick from the full catalog with filters below.

## `contentType` (type: `string`):

Restrict to movies or TV shows. Leave as "All" to include both.

## `director` (type: `string`):

Restrict to titles by a specific director (precise director-only match, e.g. `Christopher Nolan`) — more precise than the general search query above.

## `castMember` (type: `string`):

Restrict to titles featuring a specific cast member (precise cast-only match, e.g. `Tom Hanks`) — more precise than the general search query above.

## `genre` (type: `string`):

Restrict to a single genre.

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

Restrict to titles in a single audio/original language.

## `letter` (type: `string`):

Restrict to titles starting with a specific letter (or # for titles starting with a digit/symbol).

## `yearMin` (type: `integer`):

Drop titles released before this year.

## `yearMax` (type: `integer`):

Drop titles released after this year.

## `region` (type: `string`):

Which Netflix region's catalog to track newly added titles for.

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

Restrict to titles produced in a specific country (e.g. `Japan`, `South Korea`, `United States`).

## `dateFrom` (type: `string`):

Only include titles added to Netflix on or after this ISO date (`YYYY-MM-DD`).

## `dateTo` (type: `string`):

Only include titles added to Netflix on or before this ISO date (`YYYY-MM-DD`).

## `ratingFilter` (type: `string`):

Restrict random picks to a single US maturity rating.

## `runtimeFilter` (type: `string`):

Restrict random picks to a runtime bucket.

## `sortBy` (type: `string`):

Order in which catalog titles are returned.

## `newlyAddedSortBy` (type: `string`):

Order in which newly added titles are returned.

## `comingSoonSortBy` (type: `string`):

Order in which upcoming titles are returned.

## `netflixOriginalsOnly` (type: `boolean`):

Only include titles produced/commissioned by Netflix.

## `mustWatchOnly` (type: `boolean`):

Only include titles the What's on Netflix editorial team has tagged as a top recommendation.

## `documentariesOnly` (type: `boolean`):

Only include documentary titles.

## `animeOnly` (type: `boolean`):

Only include anime titles.

## `kidsOnly` (type: `boolean`):

Only include titles from the Kids library section.

## `standupOnly` (type: `boolean`):

Only include stand-up comedy specials.

## `realityOnly` (type: `boolean`):

Only include reality TV titles.

## `podcastsOnly` (type: `boolean`):

Only include titles from the Video Podcasts library section.

## `christmasOnly` (type: `boolean`):

Only include titles tagged as Christmas/holiday movies & shows.

## `interactiveOnly` (type: `boolean`):

Only include interactive "choose your own adventure" style titles (e.g. Black Mirror: Bandersnatch).

## `adsPlanUnavailableOnly` (type: `boolean`):

Only include titles that are NOT available on Netflix's ad-supported (Standard with Ads) plan.

## `newsCategory` (type: `string`):

Restrict news/articles to a single category. Leave as "All categories" for the latest posts across the whole site.

## `newsSearchQuery` (type: `string`):

Free-text search across news & blog article titles and content.

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

Hard cap on emitted records. In mode=randomPicks this is also the number of random picks requested (bounded by how many distinct titles match the filters).

## Actor input object example

```json
{
  "mode": "catalogBrowse",
  "contentType": "",
  "genre": "",
  "language": "",
  "letter": "",
  "region": "us",
  "ratingFilter": "",
  "runtimeFilter": "",
  "sortBy": "title_asc",
  "newlyAddedSortBy": "date_desc",
  "comingSoonSortBy": "date_asc",
  "netflixOriginalsOnly": false,
  "mustWatchOnly": false,
  "documentariesOnly": false,
  "animeOnly": false,
  "kidsOnly": false,
  "standupOnly": false,
  "realityOnly": false,
  "podcastsOnly": false,
  "christmasOnly": false,
  "interactiveOnly": false,
  "adsPlanUnavailableOnly": false,
  "newsCategory": "",
  "maxItems": 20
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset containing all scraped catalog titles, random picks, or news articles.

# 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 = {
    "mode": "catalogBrowse",
    "contentType": "",
    "genre": "",
    "language": "",
    "letter": "",
    "region": "us",
    "ratingFilter": "",
    "runtimeFilter": "",
    "sortBy": "title_asc",
    "newlyAddedSortBy": "date_desc",
    "comingSoonSortBy": "date_asc",
    "netflixOriginalsOnly": false,
    "mustWatchOnly": false,
    "documentariesOnly": false,
    "animeOnly": false,
    "kidsOnly": false,
    "standupOnly": false,
    "realityOnly": false,
    "podcastsOnly": false,
    "christmasOnly": false,
    "interactiveOnly": false,
    "adsPlanUnavailableOnly": false,
    "newsCategory": "",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/whats-on-netflix-catalog-tracker").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 = {
    "mode": "catalogBrowse",
    "contentType": "",
    "genre": "",
    "language": "",
    "letter": "",
    "region": "us",
    "ratingFilter": "",
    "runtimeFilter": "",
    "sortBy": "title_asc",
    "newlyAddedSortBy": "date_desc",
    "comingSoonSortBy": "date_asc",
    "netflixOriginalsOnly": False,
    "mustWatchOnly": False,
    "documentariesOnly": False,
    "animeOnly": False,
    "kidsOnly": False,
    "standupOnly": False,
    "realityOnly": False,
    "podcastsOnly": False,
    "christmasOnly": False,
    "interactiveOnly": False,
    "adsPlanUnavailableOnly": False,
    "newsCategory": "",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/whats-on-netflix-catalog-tracker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "mode": "catalogBrowse",
  "contentType": "",
  "genre": "",
  "language": "",
  "letter": "",
  "region": "us",
  "ratingFilter": "",
  "runtimeFilter": "",
  "sortBy": "title_asc",
  "newlyAddedSortBy": "date_desc",
  "comingSoonSortBy": "date_asc",
  "netflixOriginalsOnly": false,
  "mustWatchOnly": false,
  "documentariesOnly": false,
  "animeOnly": false,
  "kidsOnly": false,
  "standupOnly": false,
  "realityOnly": false,
  "podcastsOnly": false,
  "christmasOnly": false,
  "interactiveOnly": false,
  "adsPlanUnavailableOnly": false,
  "newsCategory": "",
  "maxItems": 20
}' |
apify call crawlerbros/whats-on-netflix-catalog-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/whats-on-netflix-catalog-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GgMKwNeVmIBLHRSx4/builds/DsSak9LwsmwMR3iij/openapi.json
