# 🚀 Rotten Tomatoes Scraper · 5,000 Free Titles/Month (`omkar-cloud/rotten-tomatoes-scraper`) Actor

Rotten Tomatoes Scraper gets you movies & TV shows ⚡ fast, 🎯 100% accurate and 🔍 ridiculously detailed — search, browse & box office lists with Tomatometer, Popcornmeter, cast & posters, full pages on demand. 💰 $1 per 1,000 titles, no start fee. Scrape your first 5,000 titles free every month 🚀

- **URL**: https://apify.com/omkar-cloud/rotten-tomatoes-scraper.md
- **Developed by:** [Chetan Jain](https://apify.com/omkar-cloud) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 title scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Rotten Tomatoes Scraper

Rotten Tomatoes Scraper by Omkar Cloud gets you 🎯 accurate, 🔍 detailed Rotten Tomatoes movie and TV data.

Rotten Tomatoes uses Akamai bot protection to stop you from getting its data.

Rotten Tomatoes Scraper beats it, so you get the data, and can successfully complete your project.

**$1 per 1,000 titles.** And with Apify's free plan you get $5 of credit every month, so your first **~5,000 titles each month are free**.

This is an excellent Actor made by Omkar Cloud, which is Rated Excellent — [4.7 based on 30 reviews on Trustpilot](https://www.trustpilot.com/review/omkar.cloud).

👉 [**Try Rotten Tomatoes Scraper free**](https://apify.com/omkar-cloud/rotten-tomatoes-scraper) — your first ~5,000 titles are Free.

### What can I get

- 🔎 **Search movies & TV shows** — 20 titles a page with Tomatometer, Popcornmeter, Certified Fresh / Verified Hot flags, year, content rating, genres, runtime, poster, top cast, crew, trailer & the rottentomatoes.com link; filter by type and release-year window
- 🗂️ **Browse every list on the site** — streaming at home, in theaters, coming soon and TV series grids with 38 genres, Tomatometer / Popcornmeter and 13 streaming-service filters, 7 sort orders, thousands deep; the Top Box Office ranking with `rank`
- 🍅 **Full title pages on demand** — the complete scores breakdown (all critics, top critics, all & verified audience), Critics Consensus, credits, production & box office, release dates, trailer, cast with roles, where to watch, the latest critic & audience reviews, videos, photos, similar titles and every season of a show
- 📈 **Front page, editorial lists & more** — every homepage carousel, ranked editorial guides ("Best New Movies of 2026"), Rotten Tomatoes news by keyword, people search and what the search box suggests while typing
- 🔗 **Any rottentomatoes.com URL** — paste movie, TV, season, episode, browse or guide links and get the right data back

### Why Rotten Tomatoes Scraper

Most other Rotten Tomatoes scrapers fail you in one of four ways:

- 🗄️ **Inaccurate, cached, stale data**
- 🧩 **Low-detail data** — a title and a score, never the consensus, cast, reviews or where to watch
- 💸 **Pay more to get the same data** — start fees, tiers and paid "enrichment" events
- 🪦 **Works today, breaks next month** — nobody maintains it

Rotten Tomatoes Scraper is scraped live on every run, priced honestly, and actively maintained.

### Example: A Full Rotten Tomatoes Movie

```json
{
  "source": "search",
  "search_query": "avengers",
  "ems_id": "7b2bcd9a-359f-3ffd-bbbd-abe9e5ce3f9e",
  "type": "movie",
  "title": "Avengers: Endgame",
  "slug": "avengers_endgame",
  "link": "https://www.rottentomatoes.com/m/avengers_endgame",
  "year": 2019,
  "content_rating": "PG-13",
  "runtime_minutes": 181,
  "genres": ["Action", "Adventure", "Fantasy"],
  "synopsis": "Adrift in space with no food or water, Tony Stark sends a message to Pepper Potts as his oxygen supply starts to dwindle...",
  "critics_consensus": "Exciting, entertaining, and emotionally impactful, Avengers: Endgame does whatever it takes to deliver a satisfying finale to Marvel's epic Infinity Saga.",
  "tomatometer": 94,
  "popcornmeter": 90,
  "is_certified_fresh": true,
  "critics_score": { "score": 94, "sentiment": "positive", "is_certified_fresh": true },
  "audience_score": { "score": 90, "sentiment": "positive", "is_verified_hot": false, "want_to_see_count": 34943 },
  "scores": {
    "critics": {
      "all": { "score": 94, "average_rating": 8.2, "review_count": 551, "liked_count": 518, "not_liked_count": 33 },
      "top_critics": { "score": 93, "review_count": 91, "liked_count": 85, "not_liked_count": 6 }
    },
    "audience": {
      "all": { "score": 90, "average_rating": 4.5, "review_count": 20472, "banded_rating_count": "50,000+ Ratings" }
    }
  },
  "release": { "release_date_theaters": "2019-04-26", "release_type_theaters": "wide", "release_date_streaming": "2019-07-30" },
  "credits": {
    "directors": [
      { "name": "Anthony Russo", "slug": "anthony_russo", "link": "https://www.rottentomatoes.com/celebrity/anthony_russo" },
      { "name": "Joe Russo", "slug": "joseph_russo", "link": "https://www.rottentomatoes.com/celebrity/joseph_russo" }
    ],
    "producers": [{ "name": "Kevin Feige", "slug": "kevin_feige" }]
  },
  "production": {
    "distributors": ["Walt Disney Pictures"],
    "production_companies": ["Walt Disney Pictures", "Marvel Studios"],
    "box_office_gross_usa": { "amount": 858400000, "currency": "USD", "text": "$858.4M" }
  },
  "poster_link": "https://resizing.flixster.com/zcGZJicE-5MRF19K_ZaNsE1a_48=/164x246/v2/https://resizing.flixster.com/hu13NxX2cqnYsnL7vDtkOoq7Z-A=/ems.cHJkLWVtcy1hc3NldHMvbW92aWVzLzQwYTA0ZmQyLTEzZmMtNGIwMS1hNDdjLTE3NWIwOTY2MzNkYi5qcGc=",
  "trailer": { "title": "Avengers: Endgame: Encore Trailer", "duration": "1:36", "thumbnail_link": "https://statcdn.fandango.com/MPX/image/NBCU_Fandango/588/215/thumb_B6F8D71D-0BA0-4F86-8826-1DDA78C3209C.jpg" },
  "cast": [
    { "name": "Robert Downey Jr.", "slug": "robert_downey_jr", "role": "Tony Stark", "link": "https://www.rottentomatoes.com/celebrity/robert_downey_jr" }
  ],
  "critic_reviews": [
    {
      "critic": { "name": "Amy Nicholson", "slug": "amy-nicholson", "is_top_critic": true },
      "publication": { "name": "FilmWeek (LAist)" },
      "date": "2019-09-27",
      "sentiment": "positive",
      "quote": "This is a feat of engineering... I felt a sense of catharsis finishing it."
    }
  ],
  "where_to_watch": { "primary_cta": { "label": "Buy Tickets", "affiliate": "fandango", "link": "https://www.fandango.com/avengers-endgame-encore-2026-246870/movie-overview" } }
}
```

*Trimmed for readability. Rows without "Scrape Full Title Pages" carry the title card — everything down to `critics_score`, `audience_score`, `cast`, `crew` and `trailer`.*

### Get Started with 5,000 Free Titles

1. [Hit **Try for Free Button**](https://apify.com/omkar-cloud/rotten-tomatoes-scraper) — the input is pre-filled with an "avengers" search and the Avengers: Endgame page.
2. Enjoy your data 😎.

### Pricing

High value, Low price.

| What | Price | What you get |
|---|---|---|
| **Standard titles** | **$1 per 1,000** | EMS id, type, title, slug, year, content rating, genres, runtime, poster, Tomatometer & Popcornmeter with flags, top cast, crew, trailer + the Rotten Tomatoes link and the search or list it came from |
| **Detailed titles** | $2 per 1,000 | Everything above + the full scores breakdown, Critics Consensus, credits, production & box office, release dates, backdrop, cast with roles, where to watch, latest critic & audience reviews, videos, photos, similar titles and every season of a show |
| **People, autocomplete, article & homepage rows** | $1 per 1,000 | One row per person, suggestion, article or homepage title |

No start fee — you pay only for the rows you get. Control your spend with **Max Results per Query**: 1,000 titles ≈ $1.

💡 Apify's free plan includes $5 of credit every month — about **5,000 free titles, every month**.

👉 [**Scrape your first 5,000 titles free**](https://apify.com/omkar-cloud/rotten-tomatoes-scraper)

### Run It from Code

Grab your API token from [Integrations Settings here](https://console.apify.com/settings/integrations) and replace `<YOUR_API_TOKEN>` below.

**Python** (`pip install apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("omkar-cloud/rotten-tomatoes-scraper").call(run_input={
    "queries": ["avengers"],
    "searchType": "movie",
    "scrapeDetails": True,
    "maxResultsPerQuery": 10,
})
for title in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(title["title"], title["year"], title["tomatometer"], title["popcornmeter"])
```

**Node.js** (`npm install apify-client`)

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('omkar-cloud/rotten-tomatoes-scraper').call({
    browse: ['in_theaters', 'box_office'],
    genres: ['action', 'sci_fi'],
    sort: 'critic_highest',
    maxResultsPerQuery: 60,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### FAQ

#### How many titles do I get per search or list?

A search serves 20 titles a page for up to 50 pages, so one phrase yields at most **1,000 titles**; browse grids serve 30 a page and go thousands deep. The Actor keeps paging until it has **Max Results per Query** titles or the site runs out. Titles found twice in a run — the same movie under two searches, or in a search and a browse list — are scraped and billed only once.

#### What does "Scrape Full Title Pages" add?

The whole title page on top of the card: `scores` with all-critics, top-critics, all-audience and verified-audience blocks (score, average rating, review and like counts), `critics_consensus`, `content_rating_reasons`, `synopsis`, `credits`, `production` with box office, `release` dates, `backdrop`, the primary `trailer`, `cast` with roles, `where_to_watch` with affiliate deep links, the 6 latest `critic_reviews` and `audience_reviews`, `videos`, `photos`, `more_like_this` — and for TV shows `seasons` with each season's score. Pasted title URLs are always scraped in full; a season URL (`/tv/stranger_things/s01`) adds the episode list, an episode URL its own scores.

#### Which lists can I browse?

The same grids the site shows: movies streaming at home, in theaters, coming soon, TV series, and the Top Box Office ranking (rows carry `rank`). Filter by genre, Tomatometer (Certified Fresh / Fresh / Rotten), Popcornmeter (Verified Hot / Upright / Spilled) and streaming service (Netflix, Prime Video, Apple TV+, Max, Hulu, Disney+, Paramount+, Peacock…), sort 7 ways. You can also paste a browse URL straight from the site — its list and filters are read from the link.

#### What are the People, Autocomplete, Articles and Homepage modes?

**People** searches actors, directors and other film people by name — one row each with slug, headshot, filmography size and latest title year. **Autocomplete** returns what the search box shows while typing a query: top titles with scores, top people and query completions. **Articles** returns Rotten Tomatoes editorial news matching each query (or the newest news with no query). **Homepage** scrapes every carousel of the front page — Movies in Theaters, Coming Soon, New to Rent/Buy, Latest Certified Fresh, RT Recommends… — one row per title with its `home_section`, no queries needed.

#### Can I get reviews?

Every detailed row carries the 6 latest critic reviews (critic, publication, Top Critic flag, Fresh/Rotten sentiment, original score, quote, link) and 6 latest audience reviews, plus the total counts. Rotten Tomatoes walls deeper review pagination behind bot protection, so those 6 + 6 are what a page ships.

#### Is the data live?

Yes. Every run fetches Rotten Tomatoes live — scores, review counts, box office and where-to-watch are as fresh as the site itself.

#### What does it cost?

$0.001 per title — $1 per 1,000, flat on every plan, with no start fee. Full title pages add $0.001 per title ($2 per 1,000 all in), charged only when the page comes back — if it can't be fetched you keep the card at the standard rate. People, autocomplete, article and homepage rows cost the standard rate. Apify's free plan gives you $5 of credit every month, which is 5,000 titles or 2,500 fully-detailed titles free every month.

#### Is it legal to scrape Rotten Tomatoes?

The Actor collects publicly available title data — scores, consensus, credits, reviews and posters — without personal information beyond the public names of cast, crew and critics. Please review Rotten Tomatoes' terms of use and make sure your use complies with the law of your jurisdiction.

#### Can I get celebrity profiles or critics?

Not with this Actor — it is built for titles. Message us below if you need celebrity filmographies, critic profiles or the critics directory and we will sort you out.

### 💬 Have Questions? We Have Answers.

You're a business owner — we know how hard completing a project can be. So we offer full support: just message us and we'll reply ✅ with a solution within 1 working day.

[![Message Us on WhatsApp](https://raw.githubusercontent.com/omkarcloud/assets/master/images/whatsapp-us.png)](https://api.whatsapp.com/send?phone=918178804274\&text=I%20need%20help%20with%20using%20the%20Rotten%20Tomatoes%20Scraper%20Actor.)

[![Ask Us on Email](https://raw.githubusercontent.com/omkarcloud/assets/master/images/ask-on-email.png)](mailto:happy.to.help@omkar.cloud?subject=Help%20with%20Rotten%20Tomatoes%20Scraper%20Actor\&body=I%20need%20help%20with%20using%20the%20Rotten%20Tomatoes%20Scraper%20Actor.)

You are important to us — just message us and we will solve your problem ✅ within 1 working day. 🩷 Pinky Promise 🤙!

### Related Actors

- 🍅 [**Rotten Tomatoes Movie Scraper**](https://apify.com/omkar-cloud/rotten-tomatoes-movie-scraper) — full movie, TV, season and episode pages from a list of titles, slugs or URLs, with full cast, videos and photos, $2 per 1,000 titles.

### Popular Actors by Omkar Cloud

- [**IMDb Scraper**](https://apify.com/omkar-cloud/imdb-scraper) — IMDb titles, charts, cast, ratings & box office
- [**Shein Scraper**](https://apify.com/omkar-cloud/shein-scraper) — Shein products by keyword or category with prices, sizes & stock, $0.50 per 1,000 products
- [**AliExpress Product Scraper**](https://apify.com/omkar-cloud/aliexpress-product-scraper) — live product details, SKU variants, stock & shipping
- [**Etsy Scraper**](https://apify.com/omkar-cloud/etsy-scraper) — Etsy products: prices, discounts, shops & variations
- [**Booking Scraper**](https://apify.com/omkar-cloud/booking-scraper) — Booking.com hotels: prices, ratings, rooms & amenities
- [**Skyscanner Scraper**](https://apify.com/omkar-cloud/skyscanner-scraper) — Skyscanner flights with every agent's price & booking link, $1 per 1,000 itineraries
- [**Rightmove Scraper**](https://apify.com/omkar-cloud/rightmove-scraper) — UK homes for sale, to rent & new homes with agent phones, $1 per 1,000 listings
- [**G2 Product Scraper**](https://apify.com/omkar-cloud/g2-product-scraper) — G2 product details, ratings & AI-found contacts
- [**Website Email Contact Scraper**](https://apify.com/omkar-cloud/website-email-contact-scraper) — emails, phones & socials from any website

👉 [**Scrape your first 5,000 titles free now**](https://apify.com/omkar-cloud/rotten-tomatoes-scraper)

# Actor input Schema

## `queries` (type: `array`):

Search phrases exactly as you would type them into the site's search box (`avengers`, `stranger things`), or pasted rottentomatoes.com URLs: a movie, TV show, season or episode page is scraped in full, a browse grid (`/browse/movies_in_theaters/…`) is paged like the Browse lists below, an editorial guide (`editorial.rottentomatoes.com/guide/best-new-movies/`) gives its ranked titles. Rows carry a `search_query` field so you can tell searches apart.

## `searchType` (type: `string`):

Restrict searches to movies or TV shows.

## `yearFrom` (type: `integer`):

Only titles released in or after this year (searches only).

## `yearTo` (type: `integer`):

Only titles released in or before this year (searches only).

## `browse` (type: `array`):

Which grids to scrape. Each is paged separately; rows carry `browse_list`, `browse_title` and `browse_link`. Top Box Office rows also carry `rank`.

## `genres` (type: `array`):

Only titles in these genres (browse lists only).

## `critics` (type: `string`):

Only titles with this critics rating (browse lists only).

## `audience` (type: `string`):

Only titles with this audience rating (browse lists only).

## `affiliates` (type: `array`):

Only titles available on these services (browse lists only).

## `sort` (type: `string`):

Order of the browse grids. Top Box Office order applies to the in-theaters list only.

## `maxResultsPerQuery` (type: `integer`):

Maximum number of titles to scrape per search query, browse list, editorial guide or homepage carousel. Use this to control your cost (1,000 titles ≈ $1). Searches serve at most 1,000 titles (50 pages of 20); browse grids go thousands deep. Ignored for pasted title URLs.

## `scrapeDetails` (type: `boolean`):

When enabled, every movie and TV show found is also scraped in full — the complete `scores` breakdown (all critics, top critics, all audience, verified audience with average rating and review counts), Critics Consensus, content-rating reasons, synopsis, credits, production details with box office, theatrical and streaming release dates, poster and backdrop, primary trailer, top cast with roles, where to watch, the 6 latest critic and audience reviews, video and photo carousels, similar titles — and for TV shows every season with its score. Still one dataset row per title, billed once at the detailed-title rate instead of the standard rate (1,000 detailed titles ≈ $2 vs $1 standard). Pasted title URLs are always scraped in full.

## `mode` (type: `string`):

Titles (default) scrapes title cards for the queries, browse lists and URLs above. People searches actors, directors and other film people by name — one row per person with slug, headshot and filmography size. Autocomplete returns, for every query, what the site's search box shows while typing — top titles with scores, top people and query completions, one row each. Articles returns Rotten Tomatoes editorial news matching each query (or the newest news with no query) — one row per article. Homepage scrapes every carousel of the rottentomatoes.com front page (Movies in Theaters, Coming Soon, New to Rent, Latest Certified Fresh, RT Recommends…) — one row per title with its `home_section`, no queries needed.

## Actor input object example

```json
{
  "queries": [
    "avengers",
    "https://www.rottentomatoes.com/m/avengers_endgame"
  ],
  "searchType": "all",
  "browse": [
    "in_theaters",
    "box_office"
  ],
  "critics": "",
  "audience": "",
  "sort": "popular",
  "maxResultsPerQuery": 30,
  "scrapeDetails": false,
  "mode": "titles"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "avengers",
        "https://www.rottentomatoes.com/m/avengers_endgame"
    ],
    "maxResultsPerQuery": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("omkar-cloud/rotten-tomatoes-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": [
        "avengers",
        "https://www.rottentomatoes.com/m/avengers_endgame",
    ],
    "maxResultsPerQuery": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("omkar-cloud/rotten-tomatoes-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "avengers",
    "https://www.rottentomatoes.com/m/avengers_endgame"
  ],
  "maxResultsPerQuery": 30
}' |
apify call omkar-cloud/rotten-tomatoes-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,omkar-cloud/rotten-tomatoes-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Qe0LxvfvrSoEFBURi/builds/JEO90hbg7UvePOEtN/openapi.json
