IMDb Scraper
Pricing
Pay per event
IMDb Scraper
Scrape IMDb movie and TV show data — titles, ratings, vote counts, genres, runtime, and release year. Filter by type, genre, year, rating, and popularity. No API key needed. Export to JSON, CSV, or Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
8
Total users
4
Monthly active users
13 days ago
Last modified
Categories
Share
What does IMDb Scraper do?
IMDb Scraper extracts movie and TV show data from IMDb's public datasets. Get structured data for titles including ratings, vote counts, genres, runtime, and release year. 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.
Who is it for?
Data Scientists & ML Engineers
- Build movie recommendation engines using structured rating, genre, and vote data
- Train sentiment and popularity prediction models on decades of IMDb title metadata
- Analyze rating distributions and audience preference patterns across genres and years
Content Creators & Journalists
- Research film industry trends for articles: genre popularity shifts, rating patterns by decade, emerging directors
- Create data-driven "Best Of" lists backed by vote counts and ratings rather than opinion
- Track new releases weekly to spot breakout titles before they trend
Developers & Product Teams
- Power entertainment apps with curated movie databases filtered by genre, year, and rating
- Build internal dashboards that track title performance and audience reception over time
- Feed structured IMDb data into chatbots, recommendation widgets, or content platforms
Why use IMDb Scraper?
- Rich data extraction — Every title includes IMDb rating, vote count, genres, runtime, release year, and a direct link to the IMDb page.
- Powerful filters — Filter by title type (movie, TV series, mini-series), genre, release year range, rating range, and minimum vote count.
- Fast and lightweight — Streams IMDb's public TSV datasets directly, no HTML parsing or browser needed.
- 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": null,"certificate": "","genres": ["Action", "Adventure", "Drama"],"plot": "","imageUrl": "","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). |
How to scrape IMDb
- Go to IMDb Scraper on Apify Store
- Choose a title type (movie, TV series, etc.)
- Optionally filter by genre, release year, rating range, or minimum votes
- Set the sort order and maximum results
- Click Start and wait for results
- Download data as JSON, CSV, or Excel
How much does it cost to scrape IMDb?
IMDb Scraper uses pay-per-event pricing — you only pay for what you scrape. Higher subscription tiers get lower per-title rates.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Actor start | $0.001 | $0.001 | $0.001 | $0.001 | $0.001 | $0.001 |
| Title scraped | $0.0023 | $0.002 | $0.00156 | $0.0012 | $0.0008 | $0.00056 |
Cost examples (FREE tier):
- 50 titles (default): ~$0.12
- 10 titles (filtered): ~$0.024
- 50 titles x 5 runs (different genres): ~$0.58
No monthly subscription. Platform costs (compute, proxy) are included in the per-event price.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automation-lab/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('automation-lab/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']})")
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~imdb-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"titleType": "feature","genres": ["sci-fi"],"releaseYearFrom": 2024,"minVotes": 10000,"sort": "user_rating_desc"}'
Integrations
- IMDb data to Google Sheets — Schedule a weekly run and push results to a Google Sheet to maintain a live tracker of new releases and rating changes.
- Schedule + Slack alert — Run daily with a genre + year filter and send a Slack notification whenever new highly-rated titles appear in the dataset.
- Zapier / Make / n8n — Trigger automated emails or CRM updates when specific genres add new titles above a rating threshold (e.g., sci-fi movies rated 8+).
- Webhook + custom pipeline — Receive a webhook callback when a run finishes, then pull the dataset into your data warehouse or recommendation engine for processing.
- REST API — Start runs and fetch results programmatically from any backend using the Apify API or official Node.js / Python clients.
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.
- Vote count filter — Use
minVotesto focus on well-known titles with reliable ratings and filter out obscure entries. - 50 titles per run — The default
maxResultsis 50. Use multiple runs with different filters for larger datasets.
Use with AI agents via MCP
IMDb Scraper is available as a tool for AI assistants via the Model Context Protocol (MCP).
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/imdb-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/imdb-scraper"}}}
Example prompts
- "Get IMDb details for 'The Shawshank Redemption'"
- "Search IMDb for top-rated TV shows of 2025"
- "Find the highest-rated sci-fi movies with at least 50,000 votes on IMDb"
Legality
Scraping publicly available data is generally legal according to the US Court of Appeals ruling (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.
FAQ
Why does my search return 0 results? IMDb's advanced search requires at least one filter to return results. If you set a very narrow combination of filters (e.g., a rare genre + high minimum votes + a single year), there may be no matching titles. Try relaxing one or more filters.
Some fields like metascore, plot, certificate, and imageUrl are always empty. The actor uses IMDb's public TSV datasets which do not include these fields. They are included in the output schema for compatibility but will always be null or empty. For these details, consider scraping individual IMDb title pages.
Limitations
- Returns up to 50 titles per run (configurable via
maxResults). - Metascore, certificate, plot, and imageUrl fields are always empty — the public TSV datasets do not include these.
- Does not scrape individual title pages, reviews, or cast details.
Related
- Goodreads Scraper — Books, ratings, and reviews from Goodreads
- Steam Scraper — Games, prices, and reviews from Steam
- Metacritic Scraper — Critic and user scores from Metacritic
