Rotten Tomatoes Scraper - Search or Direct URL, Full Metadata avatar

Rotten Tomatoes Scraper - Search or Direct URL, Full Metadata

Pricing

$5.00 / 1,000 item scrapeds

Go to Apify Store
Rotten Tomatoes Scraper - Search or Direct URL, Full Metadata

Rotten Tomatoes Scraper - Search or Direct URL, Full Metadata

Scrape Rotten Tomatoes by keyword or direct URL: Tomatometer, audience score, cast, director, genres, review counts for movies and TV shows. $0.005/title.

Pricing

$5.00 / 1,000 item scrapeds

Rating

5.0

(2)

Developer

Gio

Gio

Maintained by Community

Actor stats

0

Bookmarked

43

Total users

7

Monthly active users

10 days ago

Last modified

Categories

Share

Why use this scraper

Rotten Tomatoes has no public API for its Tomatometer and audience-score data. If you need those scores, plus cast, genres and review counts, for more than a handful of titles, hand-copying pages does not scale, and a homemade scraper breaks the first time Rotten Tomatoes changes its markup.

Rotten Tomatoes Scraper takes a keyword or a direct movie/TV-show URL and returns full title metadata as structured JSON: Tomatometer score, audience (Popcornmeter) score, critic and audience review counts, cast, director, genres, content rating and runtime, in one call.

Overview

The actor accepts either search keywords or a list of direct Rotten Tomatoes URLs, and returns one record per title. Each title scraped is charged $0.005, whichever mode produced it. A run of a few titles finishes in well under a minute.

Supported inputs

  • searchTerms (array, optional) - keywords to search on Rotten Tomatoes, e.g. "breaking bad", "inception", "the office". Each term runs its own search.
  • urls (array, optional) - direct Rotten Tomatoes URLs for a specific movie or TV show, e.g. https://www.rottentomatoes.com/m/inception or https://www.rottentomatoes.com/tv/breaking_bad. Use this when you know exactly which title you want.
  • maxItems (optional, default 50) - maximum items to scrape; set 0 for unlimited.
  • proxy (optional) - proxy configuration; Rotten Tomatoes generally works without one, but it can be enabled for reliability at scale.

At least one of searchTerms or urls should be set; you can combine both in the same run.

Use cases

  • Streaming and media research. Pull Tomatometer and audience scores across a slate of titles to spot critic/audience gaps worth writing about.
  • Recommendation and rating datasets. Build a structured dataset of scores, genres and cast for a recommendation engine or a personal movie tracker.
  • Content licensing due diligence. Check critical reception and review volume for titles under consideration before a licensing or acquisition decision.
  • Film and TV journalism. Track how a title's Tomatometer score moves over its release window by re-running the same URL list on a schedule.
  • Watchlist and catalog enrichment. Attach real Tomatometer and audience scores, cast and genre tags to an existing catalog of titles by running the actor once per title URL, instead of maintaining a manual spreadsheet that goes stale the day someone re-checks a score by hand.

How it works

For a keyword, the actor runs Rotten Tomatoes' own search and opens the resulting title pages. For a direct URL, it opens that page immediately. Either way, it reads the same fields off the title's own page: scores, cast, genres, description, runtime and content rating, exactly as a visitor's browser renders them.

Input configuration

1. Search by keyword

{
"searchTerms": ["breaking bad", "inception", "the office"],
"maxItems": 20
}

2. Specific titles by direct URL

{
"urls": [
"https://www.rottentomatoes.com/m/inception",
"https://www.rottentomatoes.com/tv/breaking_bad"
]
}

3. Combined search and direct URLs, unlimited

{
"searchTerms": ["dune part two"],
"urls": ["https://www.rottentomatoes.com/m/oppenheimer_2023"],
"maxItems": 0
}

Output sample

Real output from a production run against direct title URLs (September 2026):

[
{
"title": "Inception",
"type": "Movie",
"url": "https://www.rottentomatoes.com/m/inception",
"year": "2010",
"genres": ["Sci-Fi", "Mystery & Thriller", "Action"],
"contentRating": "PG-13",
"duration": "2h 28m",
"tomatoMeterScore": "86",
"tomatoMeterSentiment": "POSITIVE",
"tomatoMeterCertified": true,
"criticsAvgRating": "8.40",
"criticsReviewCount": 364,
"audienceScore": "91",
"audienceSentiment": "POSITIVE",
"audienceAvgRating": "4.4",
"audienceReviewCount": 41620,
"cast": ["Leonardo DiCaprio", "Joseph Gordon-Levitt", "Elliot Page", "Tom Hardy", "Ken Watanabe"],
"director": "Christopher Nolan",
"producers": ["Chris Brigham", "Thomas Tull"],
"numberOfSeasons": null,
"image": "https://resizing.flixster.com/-XZAfHZM39UwaGJIFWKAE8fS0ak=/v3/t/assets/p7825626_p_v10_ae.jpg",
"scrapedAt": "2026-09-30T09:25:14.607Z"
},
{
"title": "Breaking Bad",
"type": "TV Series",
"url": "https://www.rottentomatoes.com/tv/breaking_bad",
"year": "2008",
"genres": ["Crime", "Drama"],
"contentRating": "TV-14",
"tomatoMeterScore": "96",
"tomatoMeterSentiment": "POSITIVE",
"criticsAvgRating": "9.20",
"criticsReviewCount": 250,
"audienceScore": "97",
"audienceSentiment": "POSITIVE",
"cast": ["Bryan Cranston", "Aaron Paul", "Anna Gunn", "RJ Mitte", "Dean Norris"],
"director": "Michelle MacLaren, Adam Bernstein, Vince Gilligan",
"producers": ["Vince Gilligan", "Mark Johnson"],
"numberOfSeasons": 5,
"image": "https://resizing.flixster.com/-XZAfHZM39UwaGJIFWKAE8fS0ak=/v3/t/assets/p185846_b_v8_ad.jpg",
"scrapedAt": "2026-09-30T09:25:22.307Z"
}
]

Key output fields

FieldTypeDescription
title / typestringTitle name and Movie or TV Series.
url / yearstringCanonical Rotten Tomatoes URL and release year.
genresarrayGenre tags as shown on the title page.
contentRating / durationstring | nullContent rating and runtime, when Rotten Tomatoes shows them (TV series often omit runtime).
tomatoMeterScore / tomatoMeterSentiment / tomatoMeterCertifiedstring / string / booleanCritic Tomatometer score, its sentiment label, and whether it's Certified Fresh.
criticsAvgRating / criticsReviewCountstring / numberAverage critic rating and number of critic reviews counted.
audienceScore / audienceSentiment / audienceAvgRating / audienceReviewCountstring / string / string / numberPopcornmeter audience score, sentiment, average rating and review count.
cast / director / producersarray / string / arrayCredited cast, director(s) and producers.
numberOfSeasonsnumber | nullSet for TV series, null for movies.
imagestringPoster image URL.
searchTermstring | nullThe keyword that found this title, null when it came from a direct URL.
scrapedAtstringScrape timestamp.

Pricing

Pay-per-event, one charge type:

EventPrice
Item scraped$0.005

That is $5.00 per 1,000 titles scraped, for either search or direct-URL mode.

What makes this richer than the competition

Two other actors on the Apify Store cover the same general Rotten Tomatoes metadata (search or direct URL, Tomatometer, audience score, cast):

Being honest about the numbers: this actor beats lulzasaur's price, but omkar-cloud's actor is cheaper still and offers a monthly free allotment this actor does not have. If price per title is your only criterion, compare omkar-cloud's actor first. This actor's case is a simpler input shape (two array fields, no box-office-list mode to configure) and a straightforward one-record-per-title output that maps directly to the sample above.

Notes & limitations

  • Keyword search is Rotten Tomatoes' own search, not exact-title matching. A search term like "inception" can surface titles Rotten Tomatoes' search engine considers related, not necessarily the exact title you meant. When you need a guaranteed exact match, use the urls field with the title's direct Rotten Tomatoes URL instead.
  • Some fields are null when Rotten Tomatoes doesn't show them. For example, tomatoMeterScore and criticsAvgRating are null for titles with too few critic reviews to be scored, and duration is often null for TV series.
  • No individual review text. This actor returns scores and counts, not the text of individual critic or audience reviews.
  • Public data only. The actor reads publicly visible title pages; it does not access any authenticated Rotten Tomatoes account area.
  • First production runs, no prior track record. This actor had no completed production runs before this README was written; the sample output above comes from two smoke tests run for this README (one search mode, one direct-URL mode), not from months of production traffic like an established actor would have.

FAQ

Do I need a Rotten Tomatoes account to use this? No. The actor reads public title pages; no login or credentials are required.

Should I use searchTerms or urls? Use urls when you know exactly which title you want, it guarantees the right match. Use searchTerms for discovery, when you don't have a specific URL yet, keeping in mind the result is whatever Rotten Tomatoes' own search engine returns for that term.

Can I scrape TV shows and movies in the same run? Yes, both searchTerms and urls accept a mix of movie and TV-show targets in the same run.

Why are some score fields null? Rotten Tomatoes doesn't publish a Tomatometer or critic average when a title has too few qualifying reviews. The actor returns null rather than a fabricated score.

Does this include individual reviews? No, this actor returns aggregate scores and counts. It does not extract individual review text.

How much does a 100-title run cost? $0.50 at $0.005 per title scraped.

Can I schedule this to run automatically? Yes, use Apify's built-in schedules to re-check scores on a recurring basis.

For AI Agents & LLM Apps

This actor is callable from any MCP-compatible AI assistant through the Apify MCP server, and directly from code through the Apify API.

Via MCP (mcp.apify.com): add the Apify MCP server to your AI assistant and call the gio21/rotten-tomatoes-scraper actor by name with searchTerms or urls.

Via API (run-sync-get-dataset-items):

curl "https://api.apify.com/v2/acts/gio21~rotten-tomatoes-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"urls": ["https://www.rottentomatoes.com/m/inception"], "maxItems": 1}'

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Rotten Tomatoes or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

SEO Keywords

rotten tomatoes scraper, rotten tomatoes api, tomatometer scraper, movie ratings scraper, scrape rotten tomatoes scores, tv show ratings data extraction