Rotten Tomatoes API endpoint
Returns one Rotten Tomatoes publication: its name, encrypted id, editorial page, image, whether it is a top publication and Tomatometer approved, its follower and review counts, and the critics who write for it with their names, encrypted ids, profile URLs and top-critic flags. Take the `id` from `encrypted_publication_id` (or `publication_id`) on any review row returned by the review endpoints. `data.fetched_at` is the UTC fetch time.
/rottentomatoes/publicationReturns one Rotten Tomatoes publication (an outlet that publishes critic reviews) and the critics who write for it.
id (required): the publication's encrypted_publication_id, which every review row carries, or its numeric publication_id. An id the upstream does not recognise returns an invalid-parameter error, and an unknown publication returns 404.data.publication carries encrypted_id, name, editorial_url (the outlet's own site), image_url, is_top_publication, tomatometer_approved, followers_count, review_count and critic_count.critics[] is the roster returned with the profile, and critic_count is its length. Each critic has encrypted_critic_id, display_name, initials, rotten_tomatoes_url, is_top_critic, tomatometer_approved, vanity (the critic's page handle, usable with the critic routes as /critic/{vanity}) and image_url.followers_count and review_count are absent when the upstream does not report them./api/v1/rottentomatoes/publication/reviews with the encrypted id.data.fetched_at is the UTC time, to the second, when the data was read. A reused response keeps its original time.X-Cache is miss for a live read and hit for a reused response; X-Availability-Last-Success-At and X-Availability-Last-Success-Age-Seconds give the same instant and its age.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Publication id: encrypted_publication_id or publication_id | ld6ANN0Z | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/rottentomatoes/publication?id=ld6ANN0Z" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"publication": {
"encrypted_id": "ld6ANN0Z",
"name": "Kermode and Mayo's Take (YouTube)",
"is_top_publication": false,
"tomatometer_approved": false,
"followers_count": 5,
"critic_count": 2,
"review_count": 492,
"critics": [
{
"encrypted_critic_id": "5rPoepZe",
"display_name": "Mark Kermode",
"initials": "MK",
"rotten_tomatoes_url": "https://www.rottentomatoes.com/critic/mark-kermode",
"is_top_critic": true,
"tomatometer_approved": true,
"vanity": "mark-kermode"
},
{
"encrypted_critic_id": "xlbeQnrE",
"display_name": "Robbie Collin",
"initials": "RC",
"rotten_tomatoes_url": "https://www.rottentomatoes.com/critic/robbie-collin",
"is_top_critic": true,
"tomatometer_approved": true,
"vanity": "robbie-collin",
"image_url": "https://resizing.flixster.com/dDPOegMp5qXc6gK-p5diSg8TaOE=/128x128/v1.YzsyNjY2O2c7MjA3OTA7MjA0ODsxNTA7MTUw"
}
]
},
"fetched_at": "2026-10-30T02:15:04Z"
},
"msg": "OK"
}Request schema
No body schema
Response schema
#/definitions/rottentomatoes.publicationResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | rottentomatoes.PublicationResponse | No | ||||
| data.fetched_at | string | No | 2026-10-30T00:12:00Z | UTC time, to the second, when the data was fetched. | ||
| data.publication | object | No | The publication and the critics who write for it. | |||
| data.publication.critic_count | integer | No | Number of critics who write for the publication. | |||
| data.publication.critics | array | No | Critics who write for the publication, when known. | |||
| data.publication.critics[].display_name | string | No | Display name of the critic. | |||
| data.publication.critics[].encrypted_critic_id | string | No | Encrypted critic identifier, the one the critic endpoints accept. | |||
| data.publication.critics[].image_url | string | No | URL of the critic's image. | |||
| data.publication.critics[].initials | string | No | Initials of the critic, as the app shows them. | |||
| data.publication.critics[].is_top_critic | boolean | No | true | Whether Rotten Tomatoes ranks this critic as a top critic. | ||
| data.publication.critics[].rotten_tomatoes_url | string | No | Rotten Tomatoes critic page URL. | |||
| data.publication.critics[].tomatometer_approved | boolean | No | true | Whether the critic is Tomatometer approved. | ||
| data.publication.critics[].vanity | string | No | Vanity slug of the critic's page. | |||
| data.publication.editorial_url | string | No | Editorial page of the publication, when it has one. | |||
| data.publication.encrypted_id | string | No | Encrypted publication identifier, the one the review endpoints return. | |||
| data.publication.followers_count | integer | No | Number of followers the publication has. | |||
| data.publication.image_url | string | No | URL of the publication's image. | |||
| data.publication.is_top_publication | boolean | No | true | Whether Rotten Tomatoes ranks this as a top publication. | ||
| data.publication.name | string | No | Empire Magazine | Display name of the publication. | ||
| data.publication.review_count | integer | No | Number of reviews the publication has contributed. | |||
| data.publication.tomatometer_approved | boolean | No | true | Whether the publication is Tomatometer approved. | ||
| 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/publication?id=ld6ANN0Z" \
-H "x-api-key: $CRAWLORA_API_KEY"