IMDB Scraper
Pricing
Pay per event
IMDB Scraper
Scrape IMDB movie and TV show data — ratings, votes, genres, runtime, plot, metascore, and more.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does IMDB Scraper do?
IMDB Scraper extracts movie and TV show data from IMDB search results. Get structured data for titles including ratings, vote counts, genres, runtime, plot summaries, metascores, content certificates, and poster images. Filter by title type, genre, release year, rating range, and minimum votes.
Use it for movie research, content analysis, recommendation systems, data journalism, and entertainment industry analytics.
Use cases
- Movie research — Find top-rated movies by genre, year, or vote count. Build curated movie lists for any criteria.
- Content analysis — Analyze rating distributions, genre trends, and audience preferences across decades of film history.
- Recommendation systems — Feed structured IMDB data into recommendation engines to suggest movies based on ratings, genres, and metadata.
- Data journalism — Research film industry trends, box office performance indicators, and critical reception patterns.
- Entertainment analytics — Track new releases, monitor rating changes, and compare titles by metascore vs audience rating.
Why use IMDB Scraper?
- Rich data extraction — Every title includes IMDB rating, vote count, metascore, genres, runtime, plot summary, certificate, and poster image.
- Powerful filters — Filter by title type (movie, TV series, mini-series), genre, release year range, rating range, and minimum vote count.
- Fast and lightweight — Extracts data from IMDB's embedded JSON (
__NEXT_DATA__), no HTML parsing needed. Single request returns up to 50 titles. - Multiple sort options — Sort by most voted, highest/lowest rating, newest/oldest, or alphabetical.
- No browser needed — Pure HTTP extraction, extremely fast and reliable.
- Pay-per-event pricing — You only pay for titles scraped. No monthly subscription.
What data can you extract?
Each title in the output includes:
| Field | Description |
|---|---|
titleId | IMDB title identifier (e.g., "tt0111161") |
title | Title name |
originalTitle | Original title (for foreign films) |
titleType | Type: "movie", "tvSeries", "tvMovie", etc. |
releaseYear | Release year |
endYear | End year (for TV series) |
runtime | Runtime in minutes |
runtimeFormatted | Formatted runtime (e.g., "2h 22m") |
rating | IMDB rating (0–10) |
voteCount | Number of user votes |
metascore | Metacritic score (0–100) |
certificate | Content certificate (e.g., "R", "PG-13") |
genres | Array of genres |
plot | Plot summary |
imageUrl | Poster image URL |
url | Direct link to the IMDB title page |
scrapedAt | Timestamp when the data was extracted |
Output example
{"titleId": "tt1160419","title": "Dune: Part Two","originalTitle": "Dune: Part Two","titleType": "movie","releaseYear": 2024,"endYear": null,"runtime": 166,"runtimeFormatted": "2h 46m","rating": 8.4,"voteCount": 719914,"metascore": 79,"certificate": "PG-13","genres": ["Action", "Adventure", "Drama"],"plot": "Paul Atreides unites with the Fremen while on a warpath of revenge...","imageUrl": "https://m.media-amazon.com/images/M/MV5...","url": "https://www.imdb.com/title/tt1160419/","scrapedAt": "2026-03-03T00:58:41.000Z"}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
titleType | string | "feature" | Title type: feature, tvSeries, tvMovie, short, tvMiniSeries. |
genres | array | [] | Filter by genres. Leave empty for all. Examples: action, comedy, drama, sci-fi, horror. |
releaseYearFrom | integer | - | Minimum release year. |
releaseYearTo | integer | - | Maximum release year. |
ratingMin | number | - | Minimum IMDB rating (0–10). |
ratingMax | number | - | Maximum IMDB rating (0–10). |
minVotes | integer | - | Minimum number of votes. Use 10000+ for well-known titles. |
sort | string | "num_votes_desc" | Sort: num_votes_desc, user_rating_desc, user_rating_asc, release_date_desc, release_date_asc, alpha_asc. |
maxResults | integer | 50 | Maximum titles to return (up to 50). |
maxRequestRetries | integer | 3 | Retry attempts for failed requests. |
Pricing
IMDB Scraper uses pay-per-event pricing — you only pay for what you scrape.
| Event | Price |
|---|---|
| Actor start | $0.001 per run |
| Title scraped | $0.002 per title |
Cost examples:
- 50 titles (default): ~$0.10
- 10 titles (filtered): ~$0.02
- 50 titles x 5 runs (different genres): ~$0.50
No monthly subscription. Platform costs (compute, proxy) are included in the per-event price.
How to use IMDB Scraper via API
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/imdb-scraper').call({titleType: 'feature',genres: ['sci-fi'],releaseYearFrom: 2024,minVotes: 10000,sort: 'user_rating_desc',});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(movie => {console.log(`${movie.rating}/10 - ${movie.title} (${movie.releaseYear})`);});
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('YOUR_USERNAME/imdb-scraper').call(run_input={'titleType': 'feature','genres': ['sci-fi'],'releaseYearFrom': 2024,'minVotes': 10000,'sort': 'user_rating_desc',})items = client.dataset(run['defaultDatasetId']).list_items().itemsfor movie in items:print(f"{movie['rating']}/10 - {movie['title']} ({movie['releaseYear']})")
Integrations
IMDB Scraper works with all standard Apify integrations:
- Webhooks — Get notified when a scraping run finishes.
- API — Start runs and fetch results programmatically with REST API or official clients.
- Scheduling — Run weekly to track new releases and rating changes.
- Storage — Export as JSON, CSV, or Excel. Push to Google Sheets, Slack, or email.
- Zapier / Make / n8n — Connect IMDB data to thousands of apps and workflows.
Tips and best practices
- Use minVotes — Set
minVotesto 10000+ to filter out obscure titles and get well-known movies with reliable ratings. - Combine filters — Use genre + year + minVotes for targeted lists like "Best Horror Movies of 2024 with 10k+ votes".
- TV Series — Set
titleTypeto "tvSeries" to scrape TV show data including end year for completed series. - Schedule for tracking — Run weekly with the same filters to track new entries and rating changes.
- Metascore comparison — Use both
rating(audience) andmetascore(critics) for comprehensive title evaluation. - 50 titles per search — IMDB returns up to 50 titles per search. Use multiple runs with different filters for larger datasets.
Limitations
- Returns up to 50 titles per search (IMDB's page limit). Multi-page pagination is not supported.
- Some titles may not have metascore, certificate, or plot data.
- Runtime is extracted in seconds from IMDB's data and converted to minutes.
- Only supports IMDB's advanced title search. Does not scrape individual title pages, reviews, or cast details.