Metacritic API endpoint
Returns a Metacritic movie: Metascore (critic) and user score with sentiment and review counts, genres, cast/crew, rating, runtime, release date, IMDb id, and trailer.
/metacritic/movie/{slug}Path parameters:
slug (required) — Metacritic movie slug, e.g. oppenheimer (the last path segment of the metacritic.com/movie/… URL).Response includes id, type, title, slug, url, description, premiere_year, release_date, rating, metascore (score, max, review_count, positive_count, neutral_count, negative_count, sentiment, url), user_score (same shape, 0–10 scale; omitted when a title has no user reviews), genres[], and production. Games also carry platforms[] (with per-platform metascore) and countries[]; movies/TV carry networks[], imdb_id; TV carries season_count. A metascore/user_score is omitted entirely when a title is not yet scored.
| Field | Filled in, of 17 checked | Values in the sample |
|---|---|---|
| name | 17 | “Christopher Nolan” and 14 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug (path) | string | Yes | Metacritic movie slug | oppenheimer | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/metacritic/movie/oppenheimer" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": 456,
"type": "movie",
"title": "Oppenheimer",
"slug": "oppenheimer",
"url": "https://www.metacritic.com/movie/oppenheimer/",
"tagline": "The World Forever Changes",
"premiere_year": 2023,
"release_date": "2023-07-21",
"rating": "R",
"metascore": {
"score": 90,
"max": 100,
"review_count": 69,
"sentiment": "Universal acclaim"
},
"user_score": {
"score": 8.4,
"max": 10,
"review_count": 2191,
"sentiment": "Universal acclaim"
},
"genres": [
{
"name": "Biography"
},
{
"name": "Drama"
}
],
"production": {
"companies": [
"Universal Pictures",
"Syncopy"
]
},
"imdb_id": "tt15398776"
}
}Request schema
No body schema
Response schema
#/definitions/metacritic.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | metacritic.Product | No | ||||
| data.countries | array | No | Countries Metacritic lists for the title. | |||
| data.description | string | No | Plot or game summary as shown on Metacritic. | |||
| data.duration | integer | No | Running time of the title as Metacritic lists it. | |||
| data.genres | array | No | Genres Metacritic assigns to the title. | |||
| data.genres[].id | integer | No | Metacritic genre id. | |||
| data.genres[].name | string | No | Genre name, for example `Action RPG`. | |||
| data.id | integer | No | Metacritic's numeric id for the title. | |||
| data.image | string | No | Main image of the title as Metacritic lists it. | |||
| data.imdb_id | string | No | IMDb id of the title, for example `tt0903747`. | |||
| data.imdb_url | string | No | URL of the title's IMDb page. | |||
| data.in_theaters | boolean | No | Whether the movie is currently in theaters. Omitted when false. | |||
| data.metascore | object | No | Critic score summary for the title. | |||
| data.metascore.max | integer | No | 100 | Highest possible value of `score`, for example `100`. | ||
| data.metascore.negative_count | integer | No | Number of negative reviews counted in the score. | |||
| data.metascore.neutral_count | integer | No | Number of neutral (mixed) reviews counted in the score. | |||
| data.metascore.positive_count | integer | No | Number of positive reviews counted in the score. | |||
| data.metascore.review_count | integer | No | Number of reviews the score is based on. | |||
| data.metascore.score | number | No | Score value on the scale given by `max`. Metascores are out of 100 and user scores out of 10. | |||
| data.metascore.sentiment | string | No | Universal acclaim | Metacritic's verdict for the score, for example `Universal acclaim`. | ||
| data.metascore.url | string | No | Metacritic page listing the reviews behind the score. | |||
| data.networks | array | No | TV networks that air the show. | |||
| data.platforms | array | No | Platforms the game is released on, each with its own Metascore. | |||
| data.platforms[].id | integer | No | Metacritic platform id. | |||
| data.platforms[].is_lead | boolean | No | Whether this is the game's lead platform. | |||
| data.platforms[].metascore | object | No | Critic score summary for the game on this platform. | |||
| data.platforms[].metascore.max | integer | No | 100 | Highest possible value of `score`, for example `100`. | ||
| data.platforms[].metascore.negative_count | integer | No | Number of negative reviews counted in the score. | |||
| data.platforms[].metascore.neutral_count | integer | No | Number of neutral (mixed) reviews counted in the score. | |||
| data.platforms[].metascore.positive_count | integer | No | Number of positive reviews counted in the score. | |||
| data.platforms[].metascore.review_count | integer | No | Number of reviews the score is based on. | |||
| data.platforms[].metascore.score | number | No | Score value on the scale given by `max`. Metascores are out of 100 and user scores out of 10. | |||
| data.platforms[].metascore.sentiment | string | No | Universal acclaim | Metacritic's verdict for the score, for example `Universal acclaim`. | ||
| data.platforms[].metascore.url | string | No | Metacritic page listing the reviews behind the score. | |||
| data.platforms[].name | string | No | PlayStation 5 | Platform name, for example `PlayStation 5`. | ||
| data.platforms[].release_date | string | No | Release date of the game on this platform. | |||
| data.premiere_year | integer | No | Year the title premiered or was first released. | |||
| data.production | object | No | Companies, crew and official site for the title. | |||
| data.production.companies | array | No | Companies involved in making or publishing the title, without duplicates (up to 12). | |||
| data.production.crew | array | No | Crew credits for the title. | |||
| data.production.crew[].name | string | No | Name of the person credited. | |||
| data.production.crew[].role | string | No | Director | Role of the person on the title, for example `Director`. | ||
| data.production.official_site | string | No | URL of the title's official website. | |||
| data.rating | string | No | M | Content rating of the title, for example `M` or `TV-MA`. | ||
| data.release_date | string | No | 2022-02-25 | Release date of the title, in YYYY-MM-DD. | ||
| data.season_count | integer | No | Number of seasons of the show. | |||
| data.slug | string | No | Metacritic URL slug of the title. Use it with the review endpoints. | |||
| data.tagline | string | No | Marketing tagline of the title. | |||
| data.title | string | No | Title name as shown on Metacritic. | |||
| data.type | string | No | game | Content type of the title: `game`, `movie` or `tv`. | ||
| data.url | string | No | Metacritic page URL of the title. | |||
| data.user_score | object | No | User score summary for the title. Omitted when it has no user score yet. | |||
| data.user_score.max | integer | No | 100 | Highest possible value of `score`, for example `100`. | ||
| data.user_score.negative_count | integer | No | Number of negative reviews counted in the score. | |||
| data.user_score.neutral_count | integer | No | Number of neutral (mixed) reviews counted in the score. | |||
| data.user_score.positive_count | integer | No | Number of positive reviews counted in the score. | |||
| data.user_score.review_count | integer | No | Number of reviews the score is based on. | |||
| data.user_score.score | number | No | Score value on the scale given by `max`. Metascores are out of 100 and user scores out of 10. | |||
| data.user_score.sentiment | string | No | Universal acclaim | Metacritic's verdict for the score, for example `Universal acclaim`. | ||
| data.user_score.url | string | No | Metacritic page listing the reviews behind the score. | |||
| data.video | object | No | Trailer or clip Metacritic links for the title. | |||
| data.video.duration | integer | No | Length of the video as Metacritic lists it. | |||
| data.video.embed_url | string | No | URL for embedding the video player. | |||
| data.video.title | string | No | Title of the video. | |||
| data.video.url | string | No | URL of the video. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/metacritic/movie/oppenheimer" \
-H "x-api-key: $CRAWLORA_API_KEY"