๐Ÿฟ Netflix Search Scraper avatar

๐Ÿฟ Netflix Search Scraper

Pricing

from $15.00 / 1,000 results

Go to Apify Store
๐Ÿฟ Netflix Search Scraper

๐Ÿฟ Netflix Search Scraper

Netflix Search Scraper extracts Netflix movies and series with IMDb ratings, votes, genres, cast, episodes, posters, plot details, and full country-by-country streaming availability, including added and expiry dates. Perfect for streaming research, licensing, and AI pipelines.

Pricing

from $15.00 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

๐Ÿฟ Netflix Search Scraper โ€” Movies, Series, IMDb Ratings & Country Availability

Netflix Search Scraper is a production-grade Apify Actor for Netflix catalogue data extraction โ€” no Netflix account, login or API key needed. Type a search term (or paste a title link) and it returns movies and series with IMDb ratings, votes, awards and plot, genres, cast & crew, season/episode breakdowns, posters and artwork, plus the feature nobody else gives you: full region-by-region streaming availability with added and expiry dates โ€” streamed to your Apify Dataset in real time.

๐Ÿ’ก Need a custom version, private integration, or a tailored pipeline? Email hello.dataminds@gmail.com.

Built for streaming analysts, content acquisition & licensing teams, media researchers, film/TV databases and recommendation apps, market-entry research and AI/LLM data pipelines โ€” anyone who needs clean, structured Netflix catalogue data without an official API that does not exist.


๐Ÿ“‘ Table of contents


๐Ÿฟ What is Netflix Search Scraper?

Netflix publishes no public API. Its own search box shows you a poster and a title and nothing else โ€” no IMDb score, no cast list, no way to ask "which countries is this actually streaming in, and when does it leave?", and no way to export anything.

This Actor closes that gap:

  • Search the whole Netflix catalogue by keyword โ€” fashion, true crime, korean thriller โ€” each term searched separately, exactly like typing it into the search box.
  • Or paste links โ€” a Netflix search URL, or a link to one specific title. Bulk input and file upload supported.
  • Filter like a professional โ€” movies vs series, release-year range, IMDb rating range, region, audio language, subtitle language, sort order, and "leaving soon" / "added in the last 24 hours".
  • Get the full title record โ€” title, type, release year, runtime, synopsis, poster and large artwork, Netflix rating, maturity rating, and a direct netflix.com/title/โ€ฆ watch link.
  • Get the IMDb layer for free โ€” rating, vote count, metascore, genres, awards, full plot, IMDb id and link, plus Top-250 flags.
  • Get the availability layer nobody else exposes โ€” every region a title streams in, the date it was added there, its expiry date, the audio and subtitle languages carried in that region, and which seasons are available. Netflix's own pages never show this, and most scrapers cap it at the first handful of countries.
  • Get cast, crew, genres and full season/episode breakdowns โ€” opt-in, one toggle each.
  • Stream every finished title to your Dataset โ€” export to JSON, CSV, Excel, XML, or pull them through the Apify API.

If you have ever needed "every Netflix thriller from 2018 onward rated 7+, with the countries it streams in and when it expires, as clean rows" โ€” this is the Actor.


โœจ Main features

  • ๐Ÿ”Ž Plain-text catalogue search โ€” type terms exactly as you would in Netflix's search box; each line is searched separately.
  • ๐Ÿ”— Links accepted too โ€” Netflix search URLs and links to individual titles, in one bulk input field with file upload.
  • ๐ŸŽฌ ๐Ÿ“บ Movies and series โ€” collect both, or restrict to one with a single toggle.
  • ๐Ÿงฐ Rich filters โ€” release-year range, IMDb rating range, region + region-match mode (any / all / only these / not in these), audio language, subtitle language, sort order, and availability filters.
  • ๐ŸŒ Full region-by-region availability โ€” the headline feature: every streaming region with added date, expiry date, audio & subtitle languages and season coverage, not a truncated first-ten list.
  • โญ Complete IMDb layer โ€” rating, votes, metascore, genres, awards, full plot, IMDb link, Top-250 film and TV flags.
  • ๐ŸŽญ Cast & crew โ€” actors, directors, writers and producers, grouped by role.
  • ๐Ÿ“บ Season & episode breakdown โ€” every season with its episode list, numbers, titles, synopses and stills.
  • ๐Ÿ–ผ๏ธ Posters & artwork โ€” thumbnail, poster and large artwork URLs for every title.
  • ๐Ÿšฆ Automatic network fallback โ€” direct โžœ datacenter โžœ residential, sticky after the first switch.
  • ๐Ÿ”„ Automatic source fallback โ€” if the main catalogue index is unreachable, the run switches to a backup index and still returns data instead of failing.
  • ๐Ÿ“ฆ Live dataset writes and nine prebuilt table views โ€” Overview, Ratings & IMDb, Where it streams, Cast & genres, Seasons & episodes, Artwork & story, Links & ids, Source & quality, Errors.
  • ๐Ÿ“Š Run summary stored in the key-value store, with per-run totals.
  • ๐Ÿ” Drop-in compatible with the input field names other Netflix scrapers on the Store use.

๐Ÿ‘ฅ Who is this Actor for?

  • ๐Ÿ“Š Streaming & media analysts โ€” track what is on Netflix in each market and how it changes.
  • ๐Ÿค Content acquisition and licensing teams โ€” see exactly which regions carry a title and when the licence expires.
  • ๐ŸŽฌ Film & TV databases, recommendation apps โ€” bulk-populate a catalogue with ratings, genres, cast and artwork.
  • ๐ŸŒ Market-entry and competitive research โ€” compare catalogue depth across 37 regions.
  • ๐Ÿ“ฐ Journalists & researchers โ€” back a "what's leaving Netflix" story with real dates.
  • ๐Ÿค– AI / LLM pipelines โ€” clean, structured, typed rows ready for embedding or fine-tuning.
  • ๐Ÿ“ˆ Growth & SEO teams โ€” build "what to watch" content from live catalogue data.

โš™๏ธ What the scraper does

  1. Reads your search terms and links, and works out what each one is asking for.
  2. Runs every search against the catalogue with your filters applied.
  3. Walks the result pages until your per-search limit is filled or the results run out.
  4. For each title, collects the extra detail the search results never show โ€” IMDb layer, region availability, genres, cast, episodes.
  5. Writes each finished title to your Dataset the moment it is ready, so an aborted or migrated run keeps everything collected so far.
  6. Reports what it could not find as explicit error rows, never as silent gaps.

๐Ÿ“ฅ Inputs it accepts

InputExampleWhat you get
๐Ÿ”Ž Search termfashionEvery matching movie and series, up to your limit
๐Ÿ”Ž Search termkorean thrillerSame, searched separately from the other terms
๐Ÿ”— Netflix search URLhttps://www.netflix.com/search?q=documentaryTreated as a search for documentary
๐Ÿ”— Title linka link that contains the title nameThat one title, matched by name
๐Ÿ”— Netflix title URLhttps://www.netflix.com/title/81002370That one title, looked up by its catalogue id

Search terms go in ๐Ÿ”Ž Search terms, links go in ๐Ÿ”— Netflix / catalogue links. Use either, or both โ€” they run in the same pass.


๐ŸŽฏ Filtering configuration

FilterValuesNotes
๐ŸŽž๏ธ Movies or seriesboth / movies / series
๐Ÿ“… Released from / untilany yearEnter them backwards and they are swapped for you
โญ Min / max IMDb rating0โ€“10Titles with no rating are excluded when a minimum is set
๐ŸŒ Regions37 Netflix regionsLeave empty to search every region
๐Ÿงฉ Region matchany / all / only these / not in theseHow several selected regions combine
๐Ÿ—ฃ๏ธ Audio languagee.g. English, KoreanPick from the list or type your own
๐Ÿ’ฌ Subtitle languagee.g. SpanishSame
๐Ÿงฉ Audio & subtitle matcheither / both
๐Ÿ”ƒ Sort byrelevance, newest, rating, title, year, runtime โ€ฆ
โณ Availabilityeverything / leaving soon / added in the last 24 hours

Every filter is optional. Leave one blank to skip it.


๐Ÿ“ค Output format (Dataset)

Each title is written as one Dataset row, the moment it is finished โ€” not batched at the end of the run. The Console shows nine prebuilt views, so you can jump straight to the section you need:

ViewWhat it shows
โœจ OverviewPoster, title, type, year, ratings, runtime, region count, watch link
โญ Ratings & IMDbEvery score, vote count, metascore, genres, awards, IMDb link
๐ŸŒ Where it streamsRegion count and the full per-region breakdown with dates
๐ŸŽญ Cast & genresGenres plus actors, directors, writers and producers
๐Ÿ“บ Seasons & episodesSeries only โ€” every season with its episode list
๐Ÿ–ผ๏ธ Artwork & storyPoster, artwork, synopsis, full IMDb plot, maturity rating
๐Ÿ”— Links & idsNetflix id, IMDb id, and every link for the title
๐Ÿงญ Source & qualityWhich search produced the row and how completely it was filled
โš ๏ธ ErrorsInputs that returned nothing, and why

A run summary record is also written to the key-value store under run-summary.


๐Ÿ“š Output fields reference

FieldTypeDescription
keywordstringThe search term or title name this row came from
sourcestringWhich index answered โ€” catalogue or backup-index
idstring / numberRecord id in that index
titlestringTitle name
slugstringURL-friendly title slug
typestringmovie or series
netflixIdnumberNetflix's own catalogue id
netflixUrlstringDirect netflix.com/title/โ€ฆ watch link
img / posterstringArtwork and poster URLs
largeImagestringHigh-resolution artwork
synopsisstringShort description
avgratingnumberCatalogue rating
yearnumberRelease year
runtimeSeconds / runtimeMinutesnumberRuntime in both units
maturityRatingstringAge/maturity label
imdbid / imdbUrlstringIMDb id and link
imdbRatingnumberIMDb rating
imdbVotesnumberIMDb vote count
imdbMetascorestringMetascore
imdbGenrestringIMDb genre string
imdbAwardsstringAwards summary
imdbPlotstringFull IMDb plot
tmdbScorenumberTMDb score, when available
top250 / top250tvnumberTop-250 film / TV flags
genresarrayCatalogue genre labels
castarray{ role, names[] } per role
seasonsarray{ season, episodeCount, episodes[] }
availableCountriesarrayPer-region: code, name, added date, expiry date, audio, subtitles, seasons
countryCountnumberHow many regions carry the title
addedDatestringWhen the title was added
lastCheckedDatestringWhen availability was last verified
titledatestringCatalogue date for the title
enrichmentStatusstringcomplete or partial
enrichmentErrorsarrayAnything that could not be collected, spelled out

Fields the catalogue does not publish for a given title are simply absent from that row rather than filled in with a guess โ€” check enrichmentErrors to see exactly what was missing and why.


๐Ÿงพ Example output (JSON)

{
"keyword": "fashion",
"source": "catalogue",
"id": 4877,
"title": "Emily in Paris",
"slug": "emily-in-paris",
"type": "series",
"netflixId": 81037371,
"netflixUrl": "https://www.netflix.com/title/81037371",
"img": "https://occ-0-1433-1432.1.nflxso.net/dnm/api/v6/โ€ฆjpg",
"poster": "https://occ-0-1433-1432.1.nflxso.net/dnm/api/v6/โ€ฆjpg",
"synopsis": "After landing her dream job in Paris, Chicago marketing executive Emily embraces a new life while juggling work, friends and romance.",
"avgrating": 6.9,
"year": 2020,
"runtimeSeconds": 1800,
"runtimeMinutes": 30,
"imdbid": "tt8962124",
"imdbUrl": "https://www.imdb.com/title/tt8962124",
"imdbRating": 6.9,
"imdbVotes": 128441,
"imdbMetascore": "60",
"imdbGenre": "Comedy Drama Romance",
"imdbAwards": "Nominated for 4 Primetime Emmys",
"imdbPlot": "A young American woman moves to Paris for an unexpected job opportunityโ€ฆ",
"maturityRating": "TV-MA",
"largeImage": "https://occ-0-1433-1432.1.nflxso.net/dnm/api/v6/โ€ฆjpg",
"top250": 0,
"top250tv": 0,
"genres": ["TV Comedies", "Romantic TV Comedies"],
"cast": [
{ "role": "Actor", "names": [{ "fullname": "Lily Collins" }, { "fullname": "Philippine Leroy-Beaulieu" }] },
{ "role": "Director", "names": [{ "fullname": "Andrew Fleming" }] }
],
"seasons": [
{ "season": 1, "episodeCount": 10, "episodes": [{ "epnum": 1, "title": "Emily in Paris", "synopsis": "โ€ฆ" }] }
],
"availableCountries": [
{
"countryId": 78,
"code": "FR",
"name": "France",
"addedDate": "2020-10-02",
"expiresDate": null,
"audioLanguages": "English [Original],French",
"subtitleLanguages": "English,French,Spanish",
"seasonsAvailable": "S1(10), S2(10)"
}
],
"countryCount": 31,
"addedDate": "2020-10-02",
"lastCheckedDate": "2026-09-01",
"titledate": "2020-10-02",
"enrichmentErrors": [],
"enrichmentStatus": "complete"
}

๐Ÿš€ Quick start

Apify Console

  1. Log in at console.apify.com โ†’ Actors.
  2. Open Netflix Search Scraper.
  3. Type a search term under ๐Ÿ”Ž Search terms โ€” or paste links under ๐Ÿ”— Netflix / catalogue links.
  4. Set ๐Ÿ“ฌ Max titles per search, and add any filters you want.
  5. Click Start and watch the run log โ€” every title appears as it is saved.
  6. Open the Output tab and pick a view, then export to JSON / CSV / XLSX.

API

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["fashion"],
"maxItems": 25,
"type": "movie",
"minRating": 6.5,
"countries": ["US", "GB"]
}'

Python client

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("<ACTOR_ID>").call(run_input={
"keywords": ["true crime"],
"maxItems": 50,
"type": "series",
"startYear": 2018,
"includeCast": True,
"includeEpisodes": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item.get("imdbRating"), item.get("countryCount"))

More input examples

Everything leaving Netflix soon in the UK

{ "keywords": ["drama"], "countries": ["GB"], "filterBy": "Expiring", "maxItems": 100 }

Highly-rated Korean series with English subtitles

{ "keywords": ["korean"], "type": "series", "minRating": 7.5, "subtitle": "English", "orderBy": "Rating" }

One specific title, with everything switched on

{ "urls": [{ "url": "https://www.netflix.com/title/81037371" }], "includeCast": true, "includeEpisodes": true }

A market-comparison run across three regions

{ "keywords": ["documentary"], "countries": ["US", "DE", "JP"], "countryMatch": "and", "maxItems": 200 }

โš™๏ธ Input parameters reference

๐Ÿš€ Start here

FieldTypeDefaultDescription
urlsarray[]Netflix search URLs or links to individual titles. Bulk input & file upload
keywordsarray[]Plain search terms, one per line

๐Ÿ“ฌ How much to collect

FieldTypeDefaultDescription
maxItemsinteger50Max titles per search term (1โ€“10 000)
maxScannedinteger20000Safety cap on how deep a single search digs

๐ŸŽž๏ธ Filter the catalogue

FieldTypeDefaultDescription
typestring"""" / movie / series
startYear / endYearintegerโ€“Release-year range
minRating / maxRatingnumberโ€“IMDb rating range, 0โ€“10
orderBystringRelevanceSort order
filterBystring"""" / Expiring / New last 24 hours

๐ŸŒ Regions & languages

FieldTypeDefaultDescription
countriesarray[]Region codes; empty = all regions
countryMatchstringoror / and / unique / notin
audio / subtitlestring""Language names
audioSubtitleMatchstringoror / and

๐Ÿงฉ Extra details per title

FieldTypeDefaultDescription
includeImdbExtrasbooleantrueIMDb rating, votes, metascore, awards, plot, artwork
includeCountryAvailabilitybooleantrueFull per-region availability with dates
includeGenresbooleantrueCatalogue genre labels
includeCastbooleanfalseActors, directors, writers, producers
includeEpisodesbooleanfalseSeasons and episodes for series

๐Ÿ”ฌ Advanced

FieldTypeDefaultDescription
genreIdsstring""Comma-separated catalogue genre ids
personIdstring""Catalogue person id

๐ŸŒ Network & โšก Speed

FieldTypeDefaultDescription
proxyConfigurationobjectno proxyPin your own route, or leave it automatic
backupCountrystringUSRegion used if the run falls back to the backup index
maxConcurrencyinteger2Titles collected in parallel
maxRequestRetriesinteger8Attempts per request before giving up

๐Ÿ” Migrating from another Netflix scraper

Inputs saved for other Netflix Actors on the Store run here unchanged โ€” these field names are all accepted and mapped automatically:

Their fieldMaps toNotes
querykeywords
actor_querykeywordsAdded as an extra search term
genre_querykeywordsAdded as an extra search term
startUrls / searchUrlsurls
limit / maxResults / resultsLimitmaxItems
type (Movie / Series)typeCase-insensitive
start_year / end_yearstartYear / endYear
min_rating / max_ratingminRating / maxRating
filter_by / order_byfilterBy / orderBySame values
genre_ids / person_idgenreIds / personId

Paste your old input JSON straight in โ€” nothing needs renaming.


๐Ÿ›ก๏ธ Reliability & anti-blocking

This Actor starts every run on a direct connection โ€” no proxy overhead unless it is actually needed. If the catalogue pushes back, the run automatically and transparently escalates:

Direct connection โžœ datacenter proxy โžœ residential proxy (3 retries)

Once the run escalates it stays on the new route for every remaining request, and every switch is logged clearly in the run log. You can also pin your own proxy group in Proxy configuration to skip the automatic ladder entirely.

On top of the network ladder there is a second, independent safety net: if the main catalogue index stops answering altogether, the run switches to a backup index and still returns data rather than failing. Backup rows carry a smaller field set โ€” every one of them says so in its own enrichmentErrors column, and no field is ever filled in with a guess.

Other reliability behaviour worth knowing:

  • Requests are paced, not just capped by concurrency โ€” the run limits how fast requests are launched, which is what actually triggers rate limits.
  • Every result is written to the Dataset the moment it is finished, so an aborted, timed-out or migrated run keeps everything collected so far.
  • Abort and migration are handled gracefully โ€” the run wraps up and writes its summary instead of dying mid-write.
  • Inputs that return nothing become explicit error rows with a plain-English reason.

๐Ÿ”Œ Integrations & automation

  • Schedules โ€” run daily/weekly with filterBy: "New last 24 hours" to capture new Netflix additions automatically.
  • Webhooks โ€” fire ACTOR.RUN.SUCCEEDED to your own endpoint when a run finishes.
  • Zapier / Make / n8n โ€” feed dataset items straight into a spreadsheet, database or Slack alert.
  • MCP / AI agents โ€” call this Actor as a tool from Claude, Cursor or any MCP-compatible client via mcp.apify.com.
  • REST API โ€” pull dataset items directly: GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json.

๐Ÿ’ฐ Pricing & how to control cost

This Actor runs on Apify's pay-per-usage pricing โ€” you pay for the platform compute, proxy and storage your run consumes. To control cost:

  • Start with a low maxItems to sample a search before a full harvest.
  • Leave includeCast and includeEpisodes off unless you need them โ€” each adds one request per title.
  • Turn includeCountryAvailability off if you only want ratings and metadata.
  • Leave Proxy configuration on automatic โ€” it only escalates to a paid proxy route when actually needed.
  • Narrow with filters rather than collecting everything and filtering afterwards.

โ“ Frequently asked questions (FAQ)

Do I need a Netflix account or an API key? No. Nothing is logged into, and there is no key or quota to manage. Only publicly available catalogue data is read.

Can I see which countries a title streams in? Yes โ€” that is the headline feature. Keep ๐ŸŒ Full region-by-region availability on and every row carries a availableCountries array with the region, the date it was added, its expiry date, the audio and subtitle languages there, and which seasons are carried.

Can I find out what is leaving Netflix soon? Yes โ€” set โณ Availability filter to Leaving soon, optionally with a region selected.

Does it return IMDb ratings? Yes โ€” rating, vote count, metascore, genres, awards and the full plot, with includeImdbExtras on (the default).

Can I get every episode of a series? Yes โ€” turn on ๐Ÿ“บ Seasons & episodes. Each series row then carries every season with its episode list, numbers, titles, synopses and stills.

Why does maxItems sometimes return fewer titles? Because there genuinely were fewer matches, or your filters removed some. Widen the year/rating range, clear the region filter, or use a broader search term.

Why do some rows have fewer fields than others? Netflix does not publish the same metadata for every title, and if the run had to use the backup index that index carries less. enrichmentStatus and enrichmentErrors on each row tell you exactly what was and was not collected โ€” nothing is ever invented to fill a gap.

Can I look a title up by its Netflix id? Yes โ€” paste https://www.netflix.com/title/<id>. If the main catalogue index is unavailable at that moment, an id on its own cannot be resolved and you get a clear error row saying so; paste the title name instead.

Is there a limit on how many titles I can collect? Up to 10 000 per search term, and you can run as many search terms as you like in one run.


๐Ÿ› ๏ธ Troubleshooting

SymptomFix
A search comes back as an error rowCheck the โš ๏ธ Errors view โ€” usually the term was too narrow or the filters excluded everything
Fewer titles than maxItemsWiden the year/rating range, clear the region filter, or use a broader term
TITLE_ID_UNRESOLVABLE on a title linkThe link only carried a numeric id and the main index was unavailable โ€” paste the title name instead
Rows are missing IMDb fieldsTurn on โญ IMDb ratings, votes, awards & plot, or the title simply has no IMDb entry
No seasons on a seriesTurn on ๐Ÿ“บ Seasons & episodes โ€” it is off by default because it makes records large
Region filter returns nothingTry countryMatch: "or" โ€” and requires the title to stream in every selected region
Run seems slowLower maxRequestRetries, reduce maxItems, or turn off cast/episodes

๐Ÿ†˜ Help, support & custom builds

Something not working, or need a custom field, private integration or a bespoke pipeline built on top of this Actor? Email hello.dataminds@gmail.com โ€” we read every message.


This Actor only reads publicly available catalogue information โ€” the same title, rating and availability data any anonymous visitor can see. It does not log into Netflix, bypass any paywall, or touch private account data, viewing history or video streams. You are responsible for how you use the collected data โ€” respect the applicable terms of service, copyright law, and privacy regulations (GDPR, CCPA, etc.) for your jurisdiction and use case.


๐Ÿ”‘ SEO keywords targeted

netflix scraper, netflix search scraper, netflix api, netflix data scraper, netflix catalogue scraper, netflix movies scraper, netflix series scraper, netflix availability by country, what's leaving netflix, netflix expiring titles, netflix new releases scraper, netflix imdb ratings, netflix title metadata, netflix streaming availability api, unofficial netflix api, netflix content database, netflix region availability, netflix cast and crew data, netflix episode list scraper, streaming catalogue data, apify netflix actor, scrape netflix without api key, netflix market research data, netflix licensing data.