IMDb User Reviews Scraper avatar

IMDb User Reviews Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
IMDb User Reviews Scraper

IMDb User Reviews Scraper

Scrape IMDb user reviews: review title, full text, author, star rating, date, helpfulness votes, spoiler flag and permalink, plus the title's aggregate rating, total votes and per-star breakdown. Sort by helpfulness, date, rating or votes. Export to JSON, CSV or Excel.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

0.042 hours

Issues response

14 days ago

Last modified

Share

IMDb User Reviews Scraper

IMDb User Reviews Scraper

Here is one real result, with every field the actor returns (review text trimmed for length, kept real):

{
"imageUrl": "https://m.media-amazon.com/images/M/MV5BMDAyY2FhYjctNDc5OS00MDNlLThiMGUtY2UxYWVkNGY2ZjljXkEyXkFqcGc@._V1_.jpg",
"reviewTitle": "An incredible movie. One that lives with you.",
"reviewId": "rw6606154",
"rating": 10,
"author": "Sleepin_Dragon",
"authorUrl": "https://www.imdb.com/user/ur15311310/",
"reviewDate": "2021-02-17",
"helpfulUpVotes": 628,
"helpfulTotalVotes": 679,
"spoiler": false,
"reviewText": "It is no wonder that the film has such a high rating, it is quite literally breathtaking. What can I say that hasn't said before? ... The ultimate story of friendship, of hope, and of life, and overcoming adversity. ... it's amazing. 10/10. (trimmed)",
"permalink": "https://www.imdb.com/review/rw6606154/",
"imdbId": "tt0111161",
"titleName": "The Shawshank Redemption",
"titleYear": 1994,
"titleUrl": "https://www.imdb.com/title/tt0111161/",
"titleRating": 9.3,
"titleVotes": 3223482,
"titleRatingBreakdown": [
{ "rating": 1, "voteCount": 43564 },
{ "rating": 8, "voteCount": 380871 },
{ "rating": 9, "voteCount": 836657 },
{ "rating": 10, "voteCount": 1769830 }
],
"aiSentiment": null,
"aiSentimentScore": null,
"aiSummary": null,
"aiTopics": null,
"source": "IMDb",
"observedAt": "2026-08-14T08:21:31.702Z",
"error": null
}

The most complete IMDb user-reviews scraper available. It returns every field each review exposes (title, full text, author, star rating, date, helpfulness, spoiler flag, permalink), plus the title's aggregate rating, total votes and full per-star breakdown, with optional AI sentiment, summary and topic add-ons.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor takes one or more IMDb titles (title IDs like tt0111161 or full title URLs), pages through their user reviews, and writes one normalized record per review to the run's dataset. Each record carries the review title, full plain-text body, author and author URL, star rating, submission date, helpfulness votes, spoiler flag and permalink, along with the parent title's name, year, poster image, aggregate rating, total vote count and full per-star rating breakdown. It reads only publicly available IMDb data.

Choose the sort order (most helpful, newest, user rating or total votes) and how many reviews to collect per title. Optional AI add-ons tag each review with sentiment, a short summary and the topics it discusses.

Quickstart

Open the actor, paste this into the input, and press Run. It collects the 10 most helpful reviews of The Shawshank Redemption.

{
"titleUrls": ["tt0111161"],
"sort": "helpfulness",
"sortOrder": "DESC",
"maxReviews": 10
}

Add several titles to titleUrls (IDs or URLs, one per line) to scrape reviews from many titles in one run.

Input reference

FieldTypeRequiredDefaultDescription
titleUrlsstring[]yes["tt0111161"]IMDb titles to scrape. Accepts title IDs (tt...) or full title URLs, one per line.
maxReviewsintegerno100Maximum reviews to collect per title. Free Apify plans are capped at 10 per title.
sortenumnohelpfulnessSort reviews by helpfulness, date, rating, or votes.
sortOrderenumnoDESCDESC (most helpful/newest/highest first) or ASC.
withSentimentbooleannofalsePaid add-on. AI sentiment and score per review (aiSentiment, aiSentimentScore). Paid plans only.
withSummarybooleannofalsePaid add-on. AI 1-2 sentence summary per review (aiSummary). Paid plans only.
withTopicsbooleannofalsePaid add-on. AI topics/aspects per review (aiTopics). Paid plans only.

Output reference

One dataset item per review. Types: string, number, integer, boolean, object[], or null when the source value is absent.

FieldTypeDescription
imageUrlstringTitle poster image URL.
reviewTitlestringReview headline/summary.
reviewIdstringIMDb review ID, for example rw6606154.
ratingintegerReviewer star rating 1-10, or null if unrated.
authorstringReviewer nickname.
authorUrlstringReviewer profile URL, else null.
reviewDatestringSubmission date (YYYY-MM-DD).
helpfulUpVotesintegerNumber of helpful up-votes.
helpfulTotalVotesintegerTotal helpfulness votes (up plus down).
spoilerbooleantrue if the review is flagged as a spoiler.
reviewTextstringFull plain-text review body.
permalinkstringPermalink to the review.
imdbIdstringParent title ID.
titleNamestringParent title name.
titleYearintegerParent title release year.
titleUrlstringParent title URL.
titleRatingnumberTitle aggregate rating.
titleVotesintegerTitle total vote count.
titleRatingBreakdownobject[]Per-star breakdown: rating (1-10) and voteCount.
aiSentimentstringAI sentiment positive/negative/mixed/neutral (paid add-on), else null.
aiSentimentScorenumberAI sentiment score -1..1 (paid add-on), else null.
aiSummarystringAI review summary (paid add-on), else null.
aiTopicsstring[]AI review topics (paid add-on), else null.
sourcestringAlways IMDb.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed title, an item with a populated error field (and imdbId) is written instead.

Example output record

Real record from a live run (input {"imdbIds":["tt0111161"],"maxReviews":3,"withSentiment":true,"withSummary":true,"withTopics":true}). Review text and breakdown trimmed for length, all values real:

{
"reviewTitle": "An incredible movie. One that lives with you.",
"reviewId": "rw6606154",
"rating": 10,
"author": "Sleepin_Dragon",
"reviewDate": "2021-02-17",
"helpfulUpVotes": 628,
"helpfulTotalVotes": 679,
"spoiler": false,
"permalink": "https://www.imdb.com/review/rw6606154/",
"imdbId": "tt0111161",
"titleName": "The Shawshank Redemption",
"titleYear": 1994,
"titleRating": 9.3,
"titleVotes": 3223482,
"aiSentiment": "positive",
"aiSentimentScore": 0.9,
"aiSummary": "The reviewer praises the film as breathtaking and unforgettable, highlighting its powerful story, acting, and emotional impact, while acknowledging its status as a highly regarded film.",
"aiTopics": ["acting", "plot", "emotional impact", "themes", "friendship", "adversity"],
"source": "IMDb",
"observedAt": "2026-08-14T08:21:31.702Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~imdb-reviews-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"titleUrls":["tt0111161"],"sort":"helpfulness","maxReviews":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~imdb-reviews-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"titleUrls":["https://www.imdb.com/title/tt0068646/"],"sort":"date","maxReviews":100}'

Apify CLI:

apify call scrapers_lat/imdb-reviews-scraper \
--input '{"titleUrls":["tt0111161","tt0068646"],"maxReviews":50}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per review returned (result event). See the pricing tab for the current per-result price.
  • Paid AI add-ons. withSentiment, withSummary and withTopics charge separate per-review events (ai_sentiment, ai_summary, ai_topics) only when they produce output, and are disabled for free plans.
  • No charge on failure. If a title errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 reviews per title. Upgrade for higher maxReviews.

FAQ and troubleshooting

A title returned an error item. Why? IMDb briefly blocked the request or the title ID was invalid. The item carries an error field and imdbId and is not charged. Retry, or confirm the title ID.

How do I get the newest reviews first? Set sort to date and sortOrder to DESC.

What is titleRatingBreakdown? The count of votes at each star level (1 through 10) for the title, so you can chart the full rating distribution, not just the average.

Can I scrape reviews for many titles at once? Yes. Add multiple IDs or URLs to titleUrls. maxReviews applies per title.

Is this an official IMDb tool? No. This actor is independent and has no affiliation with IMDb or Amazon. It reads only data that is publicly available on IMDb. Use it in accordance with IMDb's terms of service.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with IMDb or Amazon. Accesses only publicly available IMDb data. Use in accordance with IMDb's terms of service.