Tomatometer and audience score collection
Use Rotten Tomatoes endpoints to turn tomatometer and audience score collection into repeatable API requests with documented inputs and JSON responses.
Join Rotten Tomatoes movie batches, title scorecards, and publication review samples to the editorial layer while preserving the returned path, encrypted publication ID, and page cursor.
Rotten Tomatoes movie batches, scores, reviews, critic/publication directories, editorial collections, browse filters, and eligible sitemap URLs as JSON.
Endpoint families
6
Documented params
108
Examples
24
Live catalog snapshot
Active endpoints
24
Methods
GET
Required params
33
Schema refs
24
{
"platform": "Rotten Tomatoes",
"endpoint": "rottentomatoes-search",
"method": "GET",
"path": "/rottentomatoes/search",
"auth": "apiKey"
}Related use cases
Use cases
Rotten Tomatoes movie batches, scores, reviews, critic/publication directories, editorial collections, browse filters, and eligible sitemap URLs as JSON.
Use Rotten Tomatoes endpoints to turn tomatometer and audience score collection into repeatable API requests with documented inputs and JSON responses.
Use Rotten Tomatoes endpoints to turn critic and audience review monitoring into repeatable API requests with documented inputs and JSON responses.
Use Rotten Tomatoes endpoints to turn movie and tv catalog enrichment into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Rotten Tomatoes endpoint catalog — 24 endpoints, 108 documented request parameters, and 24 published response schemas — the same catalog Docs and Playground run against.
24 documented Rotten Tomatoes endpoints, grouped into 14 request families — Editorial, Browse and Movie, plus 11 more.
108 request parameters are documented across those Rotten Tomatoes endpoints, 33 of them required — the full input contract is public before you write any integration code.
24 of the 24 Rotten Tomatoes endpoints ship a recorded example response, and 24 carry a documented response schema — you can code against the real JSON before the first request.
Rotten Tomatoes endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
24 hosted MCP tools back the Rotten Tomatoes endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
/rottentomatoes/editorial/content
/rottentomatoes/browse/movies
/rottentomatoes/movie
/rottentomatoes/publication
/rottentomatoes/critic/publications
/rottentomatoes/critics/authors
Featured endpoints
/rottentomatoes/searchSearches Rotten Tomatoes movies by the required `query`, returning up to `limit` rows (default 10, max 20). Each row has the title, URL, release year or start and end year, `tomatometer_score` and sentiment, `certified_fresh`, cast and image. No matches returns an empty `results` array.
Response notes
- Returns movie rows from Rotten Tomatoes search. - A true no-results page returns an empty `results` array. Challenge pages or parser drift return an upstream error.
Sampled 14 Oct 2026: 10 items, 7 fields filled in every item, 2 not. tomatometer_sentiment: NEGATIVE (4), POSITIVE (2); release_year: 1,999 to 2,019, median 2,010.
MCP tool rottentomatoes_search
/rottentomatoes/moviesReturns the details of up to 20 Rotten Tomatoes movies in one call, in the order requested. Each entry carries the title, synopsis, path and URL, `ems_id`, runtime, release date/year, production companies, the release runs with distributors, the Tomatometer and Popcornmeter scores, the score variants for all critics, top critics, all audience and verified audience, the critics and audience consensus, and `where_to_watch`: the public streaming, rental and purchase offers with provider name, link, licence, quality, price and availability date. Those are public provider pages, not playable media URLs. Identifiers that resolve to nothing are listed in `data.not_found` instead of failing the call. Pass exactly one of `ids` (Rotten Tomatoes `ems_id` values) or `paths` (Rotten Tomatoes movie paths or URLs); the `paths` form resolves each path first, so it costs one extra upstream read per path. The headline Tomatometer and Popcornmeter carry no counts; review and rating counts are in the score variants (for the number of critic reviews read `scores.critics_all.review_count`). Review samples are not returned here: use `/rottentomatoes/movie/reviews` for reviews. `data.fetched_at` is the UTC fetch time.
Response notes
- The titles are read in one upstream request. An id or path that resolves to no movie is left out of `data.movies` and listed in `data.not_found`, in request order; the rest of the batch is still returned. If nothing resolves the call returns `404`. - Each entry has `ems_id`, `path`, `url`, `title`, `description`, `media_type` (always `Movie`), `release_date`, `release_year`, `runtime_minutes`, `rotten_tomatoes_id`, `fandango_id`, `poster_url`, `image_url`, `production_companies` and `releases` (date, type, country and distributors per run). - `critics_score` and `audience_score` are the headline Tomatometer and Popcornmeter as the title page shows them (score, sentiment, certified, average rating). The upstream attaches no counts to them. - `scores` holds the four variants that do carry counts: `critics_all`, `critics_top`, `audience_all` and `audience_verified`. Each has `review_count`, `rating_count`, `liked_count` and `not_liked_count` where the upstream reports them; a reported `0` is returned as `0`, and a count the upstream omits is absent. To follow how many critic reviews a title has, read `scores.critics_all.review_count`. - `critics_consensus` and `audience_consensus` are the consensus sentences when the title has them. `has_critics_all`, `has_critics_top`, `has_audience_all` and `has_audience_verified` say whether those review lists exist. - `lifecycle` is the title's current release stage (for example `IN_THEATERS`) and `call_to_action` the primary button the title page shows. - `where_to_watch[]` lists the public places the title can be watched or bought: `name`, `provider_id`, `title`, `url`, `license`, `quality`, `price`, `availability_date` and `preorder`, each present when the provider reports it. `license` is one of `stream`, `rent`, `purchase`, `buy tickets` or `preorder`. The `url` is the provider's public page, not a playable media URL, and `price` is as the provider lists it, without a currency symbol. - Review samples are not included; use `/api/v1/rottentomatoes/movie/reviews` for a title's reviews.
MCP tool rottentomatoes_movies
/rottentomatoes/movieReturns Rotten Tomatoes movie metadata, scorecard data, and representative audience reviews. Pass exactly one of `path` or `url`.
Response notes
- `data.public_page_derived` is `true`. - `critics_score` and `audience_score` are included only when the public page exposes scorecard data. - `critics_score` (the Tomatometer) carries `score`, `sentiment`, `certified`, `average_rating`, `liked_count` (fresh reviews), `not_liked_count` (rotten reviews) and `review_count`, the number of critic reviews the score is built from. `rating_count` repeats it. The count grows as critics publish, so it is the cheap way to see whether new critic reviews have appeared. `reviews_page_url` is the page that lists them. - `audience_score` (the Popcornmeter) uses the same field names but its counts are not one population: for a new release `review_count` can be far below `liked_count` plus `not_liked_count`, which count ratings. Use `banded_rating_count` (for example `2,500+ Verified Ratings`) as the headline size and `score_type` (`VERIFIED` or `ALL`) to see which audience it covers. - `ems_id` is Rotten Tomatoes' stable id for the title; it stays the same when the page path changes and is the id the critic-review feed is keyed on. - `fetched_at` is the UTC time the page was read. Responses are cached for about ten minutes, so polling more often than that returns the same reading. - Upstream challenge pages, malformed page data, or parser drift are returned as typed upstream errors.
Sampled 14 Oct 2026: 6 items, 8 fields filled in every item. display_date: “Mar 19, 2026” and 3 other values; verified: true in 6 of 6.
MCP tool rottentomatoes_movie
/rottentomatoes/seriesReturns Rotten Tomatoes TV series metadata and scorecard data. Pass exactly one of `path` or `url`.
Response notes
- `data.public_page_derived` is `true`. - `critics_score` and `audience_score` are included only when the public page exposes scorecard data. - `seasons` comes from public `TVSeries` JSON-LD `containsSeason` entries. - Upstream challenge pages, malformed page data, or parser drift are returned as typed upstream errors.
Sampled 14 Oct 2026: 5 items, 3 fields filled in every item. name: “Bryan Cranston” and 4 other values; url: rottentomatoes.com.
MCP tool rottentomatoes_series
/rottentomatoes/seasonReturns Rotten Tomatoes TV season metadata, scorecard data, parent series metadata, and episode rows. Pass exactly one of `path` or `url`.
Response notes
- `data.public_page_derived` is `true`. - `episodes` comes from public `TVSeason` JSON-LD `episode` entries. - `critics_score` and `audience_score` are included only when the public page exposes scorecard data. - Upstream challenge pages, malformed page data, or parser drift are returned as typed upstream errors.
Sampled 14 Oct 2026: 7 items, 6 fields filled in every item. air_date: 2008-01-20 to 2008-03-09; episode_number: 1 to 7, median 4.
MCP tool rottentomatoes_season
/rottentomatoes/episodeReturns Rotten Tomatoes TV episode metadata, scorecard data, parent series/season metadata, and public video metadata. Pass exactly one of `path` or `url`.
Response notes
- `data.public_page_derived` is `true`. - `parent_series` and `parent_season` come from public JSON-LD and vanity metadata when exposed by the page. - `video` is included only when the public `TVEpisode` JSON-LD exposes video metadata. - `critics_score` and `audience_score` are included only when the public page exposes scorecard data. Some episode pages expose review/rating counts without score percentages. - Upstream challenge pages, malformed page data, or parser drift are returned as typed upstream errors.
Sampled 14 Oct 2026: 6 items, 3 fields filled in every item. name: “Bryan Cranston” and 5 other values; url: rottentomatoes.com.
MCP tool rottentomatoes_episode
Related APIs
Media & Streaming
Follow German football from the Bundesliga down to the lowest Kreisklasse. Discover competitions in all 22 federations, then read matchdays, standings, scorers, clubs, teams, and players from the DFB's own amateur-football portal.
Media & Streaming
Browse Sportskeeda's sports and entertainment coverage, community wikis, quizzes, and fan games with the catalog's current slugs and filter limits.
Media & Streaming
Research streaming catalogs, title availability, providers, offers, seasons, episodes, and release changes from JustWatch with normalized JSON.
How to scrape Rotten Tomatoes
Rotten Tomatoes ended its open developer API and licenses data through Fandango. The 24 production-published routes read public title and editorial pages: movie review cohorts sit beside browse filters, critic directories, WordPress editorial collections, critic publication directories, publication profiles and review feeds, and the public sitemap index. The newly live movie-batch route accepts 1–20 paths or IDs; publication reviews are newest-first and carry excerpts and links, not full article bodies. TV season/episode review feeds and critic-specific review feeds remain held from public docs until representative production responses are verified. The sitemap URL endpoint excludes paths disallowed by Rotten Tomatoes' robots rules.
The search endpoint takes a query and returns movie rows from Rotten Tomatoes' server-rendered search, each carrying the path you need next.
Movie, series, season, and episode endpoints each take a path or a full url — whichever you already have.
The production-published `/rottentomatoes/movie/reviews` route takes critics, top-critics, audience, or verified-audience with `limit` and the returned `after` cursor. Season, episode, and critic-specific review feeds remain held until their matching routes pass representative production probes.
Movie browse covers movies_in_theaters, movies_at_home, and movies_coming_soon sorted by popular, newest, or top_box_office; TV browse covers the series listing.
Call /rottentomatoes/browse/filters with one of the four lists to read its current sort, genre, rating, audience, critic, and selected affiliate values before sending browse requests; filter values are scoped to that list.
Use /rottentomatoes/editorial/types to discover the accepted collection types, then page /rottentomatoes/editorial/content. Editorial search is separate and can return third-party source URLs without fetching those sites.
Page the critic directory by letter or name search, then use `/rottentomatoes/critic/publications` with a returned critic path to discover publication names and encrypted IDs. Those IDs open publication profiles and newest-first review samples. For coverage discovery, list current child sitemaps, then page one named sitemap; URL results omit paths excluded by robots rules.
Use `/rottentomatoes/movies` with 1–20 paths from search or 1–20 `ems_id` values returned by Rotten Tomatoes endpoints. Pass exactly one of `paths` or `ids`; the response preserves request order and includes title, release, score, consensus, and watch-offer fields, but review rows remain on the dedicated review routes.
Take `encrypted_publication_id` from `/rottentomatoes/critic/publications` or a returned review row and pass it to `/rottentomatoes/publication` or `/rottentomatoes/publication/reviews`. Publication reviews are newest-first, accept a maximum `limit` of 20, and resume from `data.page_info.end_cursor` with the same limit; numeric publication IDs are not accepted by the review feed. Responses include review excerpts and source links, not article bodies.
On 2026-10-30 /rottentomatoes/browse/movies for movies_in_theaters returned 10 items with page_info cursors and a list title of Best Movies in Theaters with an HTML span for the year, and browse/tv returned 10 items under Best TV Shows (October 2026). Clean list titles before display; browse/filters for movies_at_home returned 6 filters.
Agent skills
Install a Crawlora agent skill and your agent can pull Rotten Tomatoes data as JSON through the documented API, without writing a scraper. These skills cover Rotten Tomatoes:
Researches movies and TV titles across IMDb, TMDB, JustWatch, Rotten Tomatoes, and Metacritic using the Crawlora API. Use for title discovery, cast…
npx skills add github.com/Crawlora-org/crawlora-skills --skill entertainment-discovery-researchResearches movies and TV shows — metadata, cast/crew, ratings, reviews, streaming availability, and box-office performance — via the Crawlora API…
npx skills add github.com/Crawlora-org/crawlora-skills --skill movie-tv-researchFAQ
Not an open one. Rotten Tomatoes discontinued public developer access and now licenses data through Fandango partnerships. Crawlora is not affiliated with Rotten Tomatoes; its endpoints read the credential-free public pages and return the scores and reviews as JSON.
Yes. Title detail returns the critic Tomatometer and the audience score together, along with cast and crew, for movies, series, seasons, and episodes.
The published movie-review route's `type` parameter takes critics, top-critics, audience, or verified-audience, so each cohort is a separate request. TV season/episode and critic-specific review routes remain held until they appear in production Swagger and pass live probes.
A Rotten Tomatoes path or the full url. Search returns the path, so the normal flow is search first, then pass the path to the detail or reviews endpoint. For batch movie details, use one to 20 returned paths or ems_id values.
Read /rottentomatoes/browse/filters for the selected list first. The accepted values vary by list and change over time, so the response is the current source for sort, genre, rating, audience, critic, and affiliate filters.
The sitemap index lists public child inventories. The URL endpoint returns eligible paths from one child sitemap and excludes gallery, search, account, and other URLs disallowed by Rotten Tomatoes' robots rules.
Call /rottentomatoes/editorial/types, then pass one returned value to /rottentomatoes/editorial/content. The live-checked set includes article, guide, gallery, hub-subpage, rt-hub, how-to, and several other public collection types.
Resolve its encrypted_publication_id from `/rottentomatoes/critic/publications` or a review row, then pass it to `/rottentomatoes/publication/reviews`. The feed is newest-first, returns up to 20 review excerpts, and uses its returned cursor for the next page; it does not provide the linked article body.