Rotten Tomatoes API endpoint
Returns Rotten Tomatoes TV series metadata and scorecard data. Pass exactly one of `path` or `url`.
/rottentomatoes/seriesQuery parameters:
path: Rotten Tomatoes series path, for example /tv/breaking_bad.url: absolute https://www.rottentomatoes.com series URL.Notable response behavior:
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.| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| name | 5 | “Bryan Cranston” and 4 other values |
| url | 5 | rottentomatoes.com |
| image_url | 5 | resizing.flixster.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| path | string | No | Rotten Tomatoes series path | /tv/breaking_bad | |
| url | string | No | Absolute https://www.rottentomatoes.com series URL | https://www.rottentomatoes.com/tv/breaking_bad | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/rottentomatoes/series" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"title": "Breaking Bad",
"path": "/tv/breaking_bad",
"url": "https://www.rottentomatoes.com/tv/breaking_bad",
"media_type": "TvSeries",
"number_of_seasons": 5,
"critics_score": {
"score_percent": "96%"
},
"audience_score": {
"score_percent": "97%"
},
"public_page_derived": true
}
}Request schema
No body schema
Response schema
#/definitions/rottentomatoes.seriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | rottentomatoes.SeriesResponse | No | ||||
| data.audience_score | object | No | Popcornmeter audience score of the series. | |||
| data.audience_score.average_rating | string | No | 8.40 | Average rating as shown on the scorecard, such as `8.40`. | ||
| data.audience_score.banded_rating_count | string | No | 250,000+ Ratings | Approximate number of ratings as shown on the page, such as `250,000+ Ratings`. | ||
| data.audience_score.certified | boolean | No | true | Whether Rotten Tomatoes marks the score as certified. | ||
| data.audience_score.liked_count | integer | No | 314 | Number of ratings that liked the title. | ||
| data.audience_score.not_liked_count | integer | No | 49 | Number of ratings that did not like the title. | ||
| data.audience_score.rating_count | integer | No | 363 | Number of ratings behind the score. | ||
| data.audience_score.review_count | integer | No | 363 | Number of reviews behind the score. | ||
| data.audience_score.reviews_page_url | string | No | https://www.rottentomatoes.com/m/inception/reviews | URL of the Rotten Tomatoes page that lists the reviews behind this score. | ||
| data.audience_score.score | integer | No | 87 | Score as a whole-number percentage. | ||
| data.audience_score.score_percent | string | No | 87% | Score as text with a percent sign, such as `87%`. | ||
| data.audience_score.score_type | string | No | ALL | Audience group the score covers, such as `ALL` or `VERIFIED`. | ||
| data.audience_score.sentiment | string | No | POSITIVE | Overall sentiment of the score, such as `POSITIVE`. | ||
| data.audience_score.title | string | No | Tomatometer | Name of the score, such as `Tomatometer` or `Popcornmeter`. | ||
| data.cast | array | No | People in the cast of the series. | |||
| data.cast[].image_url | string | No | URL of the person's photo. | |||
| data.cast[].name | string | No | Christopher Nolan | Name of the person. | ||
| data.cast[].url | string | No | https://www.rottentomatoes.com/celebrity/christopher_nolan | Rotten Tomatoes page URL of the person. | ||
| data.content_rating | string | No | TV-14 | Content rating of the series, such as `TV-14`. | ||
| data.critics_score | object | No | Tomatometer critics score of the series. | |||
| data.critics_score.average_rating | string | No | 8.40 | Average rating as shown on the scorecard, such as `8.40`. | ||
| data.critics_score.banded_rating_count | string | No | 250,000+ Ratings | Approximate number of ratings as shown on the page, such as `250,000+ Ratings`. | ||
| data.critics_score.certified | boolean | No | true | Whether Rotten Tomatoes marks the score as certified. | ||
| data.critics_score.liked_count | integer | No | 314 | Number of ratings that liked the title. | ||
| data.critics_score.not_liked_count | integer | No | 49 | Number of ratings that did not like the title. | ||
| data.critics_score.rating_count | integer | No | 363 | Number of ratings behind the score. | ||
| data.critics_score.review_count | integer | No | 363 | Number of reviews behind the score. | ||
| data.critics_score.reviews_page_url | string | No | https://www.rottentomatoes.com/m/inception/reviews | URL of the Rotten Tomatoes page that lists the reviews behind this score. | ||
| data.critics_score.score | integer | No | 87 | Score as a whole-number percentage. | ||
| data.critics_score.score_percent | string | No | 87% | Score as text with a percent sign, such as `87%`. | ||
| data.critics_score.score_type | string | No | ALL | Audience group the score covers, such as `ALL` or `VERIFIED`. | ||
| data.critics_score.sentiment | string | No | POSITIVE | Overall sentiment of the score, such as `POSITIVE`. | ||
| data.critics_score.title | string | No | Tomatometer | Name of the score, such as `Tomatometer` or `Popcornmeter`. | ||
| data.description | string | No | Short synopsis of the series. | |||
| data.directors | array | No | Directors of the series. | |||
| data.directors[].image_url | string | No | URL of the person's photo. | |||
| data.directors[].name | string | No | Christopher Nolan | Name of the person. | ||
| data.directors[].url | string | No | https://www.rottentomatoes.com/celebrity/christopher_nolan | Rotten Tomatoes page URL of the person. | ||
| data.ems_id | string | No | 6a74def4-dc62-319e-ae3d-360dcf360244 | Rotten Tomatoes' own unique id of the series. | ||
| data.end_date | string | No | 2013-09-29 | Date the series ended, such as `2013-09-29`. | ||
| data.fetched_at | string | No | 2026-06-07T14:46:16Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.genres | array | No | Crime | Genres of the series. | ||
| data.image_url | string | No | URL of the series image. | |||
| data.lifecycle | string | No | NOT_AIRING | Airing status of the series, such as `NOT_AIRING`. | ||
| data.media_type | string | No | TvSeries | Kind of title, such as `TvSeries`. | ||
| data.number_of_seasons | integer | No | 5 | Number of seasons of the series. | ||
| data.path | string | No | /tv/breaking_bad | Rotten Tomatoes path of the series page, such as `/tv/breaking_bad`. | ||
| data.producers | array | No | Producers of the series. | |||
| data.producers[].image_url | string | No | URL of the person's photo. | |||
| data.producers[].name | string | No | Christopher Nolan | Name of the person. | ||
| data.producers[].url | string | No | https://www.rottentomatoes.com/celebrity/christopher_nolan | Rotten Tomatoes page URL of the person. | ||
| data.public_page_derived | boolean | No | true | Always `true`: the data comes from publicly visible Rotten Tomatoes pages. | ||
| data.seasons | array | No | Seasons of the series, each with a link to its page. | |||
| data.seasons[].name | string | No | Season 1 | Season name, such as `Season 1`. | ||
| data.seasons[].path | string | No | /tv/breaking_bad/s01 | Rotten Tomatoes path of the season page, such as `/tv/breaking_bad/s01`. | ||
| data.seasons[].url | string | No | https://www.rottentomatoes.com/tv/breaking_bad/s01 | Rotten Tomatoes page URL of the season. | ||
| data.source_url | string | No | https://www.rottentomatoes.com/tv/breaking_bad | URL the data was read from. | ||
| data.start_date | string | No | 2008-01-20 | Date the series first aired, such as `2008-01-20`. | ||
| data.title | string | No | Breaking Bad | Title of the series, as Rotten Tomatoes shows it. | ||
| data.url | string | No | https://www.rottentomatoes.com/tv/breaking_bad | Rotten Tomatoes page URL of the series. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/rottentomatoes/series" \
-H "x-api-key: $CRAWLORA_API_KEY"