Metacritic Scores Scraper avatar

Metacritic Scores Scraper

Pricing

from $2.97 / 1,000 results

Go to Apify Store
Metacritic Scores Scraper

Metacritic Scores Scraper

Scrape Metacritic games, movies and TV shows and return one record per title with critic and user scores, review counts, release dates and genres. Enable details for score breakdowns, platforms, developers, publishers, directors and cast; no login or API key is required.

Pricing

from $2.97 / 1,000 results

Rating

0.0

(0)

Developer

Axiom Works

Axiom Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Returns: one row per game, movie or TV show with title, type, metascore, criticReviewCount, userScore, releaseDate and sourceUrl. Input: {"searchTerms": ["zelda"], "searchType": "game", "maxItems": 30} Best for: tracking critic and user scores over time, building ranked lists of top-rated games, movies and shows, and enriching catalogs with Metacritic scores.

{
"id": "1300494289",
"sourceUrl": "https://www.metacritic.com/game/hades/",
"type": "game",
"title": "Hades",
"metascore": 93,
"criticReviewCount": 58,
"userScore": 8.5
}

What does Metacritic Scores Scraper do?

Metacritic Scores Scraper is a Metacritic scraper and unofficial Metacritic API for scores. It collects the Metascore (critic score), the user score, the number of critic reviews and user ratings, the positive, mixed and negative review split, genres, release dates, ratings, platforms, developers, publishers, directors and cast for games, movies and TV shows. It needs no login and reads only public pages and public data endpoints.

You choose titles in one of four ways. Give search terms such as "zelda" or "severance", paste Metacritic URLs (a title page, a browse page with your filters, or a search page), supply known title slugs, or leave URLs, slugs and search terms empty and use the browse filters: category, game platform, genres, release years and sort order. The Actor returns one record per title, with a stable id and the sourceUrl of the title page.

Use the dataset to compare critic and audience scores, build ranked watchlists, or add Metacritic metadata to an existing catalog.

What data can you get from Metacritic?

Each record has the fields below. Fields that do not apply to a title type, or that Metacritic does not show for that title, are null. For example developers is only filled for games, directors and topCast only for movies and TV, and userScore is null for a new title that has no user ratings yet.

FieldDescriptionExample
idStable Metacritic ID of the title as a string (same as metacriticId). Unique within a run."1300501979"
sourceUrlMetacritic page of the title, e.g. https://www.metacritic.com/game/elden-ring/."https://www.metacritic.com/game/elden-ring/"
typeKind of title: game, movie or tv."game"
titleTitle as shown on Metacritic."Elden Ring"
slugURL slug of the title on Metacritic."elden-ring"
metascoreCritic Metascore 0-100; null when the title has no score yet. For multi-platform games it is the default platform's score.96
metascoreSentimentCritic verdict, e.g. 'Universal acclaim'."Universal acclaim"
criticReviewCountNumber of critic reviews behind the Metascore.86
criticPositiveCountCritic reviews rated positive.86
criticMixedCountCritic reviews rated mixed.0
criticNegativeCountCritic reviews rated negative.0
userScoreUser score on a 0-10 scale; null when there are no user ratings yet.8.4
userScoreSentimentUser verdict, e.g. 'Generally favorable'."Generally favorable"
userRatingCountNumber of user ratings (detail data only).24733
userPositiveCountUser ratings that are positive (detail data only).20286
userMixedCountUser ratings that are mixed (detail data only).1589
userNegativeCountUser ratings that are negative (detail data only).2858
releaseDateRelease date, YYYY-MM-DD."2022-02-25"
releaseYearRelease year.2022
platformGames only: the platform the scores refer to."PlayStation 5"
platformsGames: platforms with their own Metascore and critic review count (detail data); listing data gives names only. Empty for movies and TV.[{"name": "PC", "metascore": 94, "criticReviewCount": 63}]
whereToWatchMovies and TV: streaming, rental or purchase services listed on Metacritic. Detail data includes available providers, deduplicated across offer types; without details, services come from the listing.["Netflix"]
genresGenre names.["Action RPG"]
ratingAge rating such as ESRB M, MPAA R or TV-MA."M"
mustPlayTrue when Metacritic marks the title Must-Play or Must-See.true
developersGames, detail data: developer companies.["From Software"]
publishersGames, detail data: publisher companies.["Bandai Namco Games"]
directorsMovies and TV, detail data: directors.["Francis Ford Coppola"]
topCastMovies and TV, detail data: first 10 cast members.["Marlon Brando"]
networkTV: network or streaming service."HULU"
numberOfSeasonsTV: number of seasons.6
durationMinutesMovies: running time in minutes.175
descriptionSynopsis from Metacritic."A New World Created By Hidetaka Miyazaki And George R. R. Martin"
imageUrlPoster or cover image URL."https://www.metacritic.com/a/img/catalog/provider/6/3/6-1-824862-13.jpg"
metacriticIdNumeric Metacritic ID of the title.1300501979
scrapedAtISO timestamp of when the record was scraped."2026-10-03T12:00:00.000Z"

Scores for multi-platform games are per platform. The metascore, criticReviewCount and user fields describe the platform in platform (Metacritic's default platform for the game), and platforms lists the other platforms with their own Metascore and critic review count when details are on.

Detail requests run with modest concurrency and stop at the remaining item budget, so a final batch does not fetch unused title details. If a detail request fails, the Actor keeps the listing data and logs a warning. A target that stays blocked or has no usable results is skipped; an empty run finishes successfully with a message explaining what to check or retry. Block detection uses visible page text and the page title, so embedded anti-bot scripts alone do not trigger retries.

How to use Metacritic Scores Scraper

  1. Open the Actor on Apify and go to the Input tab.
  2. Pick what to scrape: add search terms, paste Metacritic URLs, supply slugs, or set the browse filters (category, platform, genres, years, sort order).
  3. Set Maximum results to the number of titles you need, and decide whether to include details.
  4. Click Start. Results appear in the Output tab while the run progresses.
  5. Export the dataset as JSON, CSV, Excel, XML or HTML, or fetch it through the API.

Details on adds user counts, review splits and production metadata to listing results; details off returns listing fields only. Direct URLs and slugs always fetch details. All targets share one result budget, with duplicate IDs removed. Requests stay near two per second. Several genres run separate browse queries and merge their results; sort order restarts for each genre.

Input

FieldTypeRequiredDescription
searchTermsarray of stringsNoTitles to search, e.g. zelda. Each term returns matching games, movies and shows.
searchTypestringNoall (default), game, movie or tv. Applies to search terms.
startUrlsarrayNoMetacritic title, browse or search URLs. Processed first.
slugsarray of stringsNoKnown title slugs, default empty. Bare slugs use category; prefixes game/, movie/ or tv/ select the type. Processed after URLs and before search terms.
categorystringNogames (default), movies or tv. Used for bare slugs, and browsing when all target lists are empty.
platformstringNoGames only, e.g. ps5, pc, nintendo-switch. Default all.
genresarray of stringsNoGenre names as on Metacritic, e.g. Horror, Action RPG.
releaseYearFromintegerNoEarliest release year when browsing.
releaseYearTointegerNoLatest release year when browsing.
sortBystringNometascore (default), userscore or newest.
maxItemsintegerNoMaximum results, 1-5000, default 50.
includeDetailsbooleanNoDefault true. Adds one request per title for the detail fields.
proxyConfigurationobjectNoOptional Apify Proxy. Off by default; the site normally needs none.

Search for a game:

{
"searchTerms": ["zelda"],
"searchType": "game",
"maxItems": 30,
"includeDetails": true
}

Browse top horror movies from 2020 to 2025:

{
"category": "movies",
"genres": ["Horror"],
"releaseYearFrom": 2020,
"releaseYearTo": 2025,
"sortBy": "metascore",
"maxItems": 20
}

Scrape specific titles by URL:

{
"startUrls": [
{"url": "https://www.metacritic.com/game/elden-ring/"},
{"url": "https://www.metacritic.com/movie/the-godfather/"},
{"url": "https://www.metacritic.com/tv/the-bear/"}
]
}

Supported URLs are title pages (/game/<slug>/, /movie/<slug>/, /tv/<slug>/, with or without a sub-path such as /critic-reviews/), browse pages (/browse/game/..., /browse/movie/..., /browse/tv/... with any filters in the URL) and search pages (/search/<term>/). Other URLs are logged and skipped. A browse URL with a platform that Metacritic does not recognise is skipped with a warning, because the site would otherwise show unrelated games.

Known slugs fetch catalog titles without a search request or full URL. For example, {"slugs":["game/elden-ring","movie/parasite","tv/severance"],"maxItems":3} selects three different media types in one run. To use bare slugs, set category explicitly: {"category":"movies","slugs":["parasite"],"maxItems":1}. A qualified slug overrides category for that title. Slugs use the same detail endpoint and output as title URLs, even with includeDetails false.

URLs run first, then slugs, then search terms. All share one maxItems budget and duplicate IDs are saved once. Browse filters do not run when any of these target lists is populated. A missing slug is skipped, allowing later targets to continue; if every target is missing or blocked, the run succeeds with an empty dataset and a status message explaining what to check. Use the exact slug returned by a previous run rather than guessing from a title: punctuation and translated names can differ from their URL spelling.

Output

Each run writes one dataset item per title. Real examples from test runs:

[
{
"id": "1300501979",
"sourceUrl": "https://www.metacritic.com/game/elden-ring/",
"type": "game",
"title": "Elden Ring",
"slug": "elden-ring",
"metascore": 96,
"metascoreSentiment": "Universal acclaim",
"criticReviewCount": 86,
"userScore": 8.4,
"userRatingCount": 24733,
"releaseDate": "2022-02-25",
"platform": "PlayStation 5",
"genres": [
"Action RPG"
],
"rating": "M",
"mustPlay": true,
"developers": [
"From Software"
],
"publishers": [
"Bandai Namco Games",
"From Software"
]
},
{
"id": "1000366416",
"sourceUrl": "https://www.metacritic.com/tv/the-bear/",
"type": "tv",
"title": "The Bear",
"metascore": 83,
"metascoreSentiment": "Universal acclaim",
"criticReviewCount": 181,
"userScore": 7.7,
"userRatingCount": 946,
"releaseDate": "2022-06-23",
"genres": [
"Comedy",
"Drama"
],
"rating": "TV-MA",
"network": "HULU",
"numberOfSeasons": 6,
"directors": [
"Christopher Storer"
],
"topCast": [
"Jeremy Allen White",
"Ebon Moss-Bachrach",
"Ayo Edebiri"
]
}
]

Download the dataset as JSON, CSV, Excel, XML or HTML. The Output tab shows an overview table with title, type, Metascore, critic review count, user score, user rating count, release date, platform, genres and URL.

How much does it cost to scrape Metacritic?

Metacritic Scores Scraper is charged per result: you pay for each title record saved to the dataset, nothing for titles that were not returned. Set Maximum results to cap the number of results, and so the charge, for a run. See the Pricing tab of the Actor for the current price.

Use with AI agents (MCP)

Connect Metacritic Scores Scraper to Claude, Cursor or any MCP client through the Apify MCP server:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=axiomworks/metacritic-scores-scraper"
}
}
}

Example prompts:

  1. "Get the Metascore and user score for Elden Ring, Baldur's Gate 3 and Astro Bot from Metacritic and tell me which has the biggest gap between critics and players."
  2. "List the 20 best-reviewed horror movies from 2020 to 2025 on Metacritic with their Metascores and critic review counts."
  3. "Search Metacritic for the TV show Severance and return its Metascore, user score, network and number of seasons."

Integrations and API

Run Metacritic Scores Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("axiomworks/metacritic-scores-scraper").call(run_input={"searchTerms": ["zelda"], "searchType": "game", "maxItems": 30})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["metascore"], item["userScore"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('axiomworks/metacritic-scores-scraper').call({ searchTerms: ['zelda'], searchType: 'game', maxItems: 30 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

cURL

curl -X POST "https://api.apify.com/v2/acts/axiomworks~metacritic-scores-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["zelda"], "searchType": "game", "maxItems": 30}'

You can also connect the Actor to Make, Zapier, n8n, Google Sheets and webhooks from the Integrations tab, and schedule runs from the Schedules tab to track how scores change.

FAQ

Why are some scores null? Metacritic shows "tbd" for titles that have too few critic reviews or no user ratings yet. The Actor returns null for the score instead of a zero, so you can tell "no score yet" from a real low score.

With includeDetails: true, the critic summary controls metascore and metascoreSentiment, including a missing score. A zero in the listing does not replace a detail summary that says the title is still awaiting enough critic reviews. Review counts and their positive, mixed and negative splits remain available when the summary provides them.

Which platform does a game's Metascore belong to? Metacritic scores each platform separately. The top-level metascore and user fields describe the platform in platform. With details on, platforms lists the Metascore and critic review count for every platform of the game.

Why is userRatingCount empty? User rating counts and the positive, mixed and negative splits come from the detail data. Run with includeDetails on to get them.

How fresh is the data? Every run reads the current values from Metacritic, and scrapedAt records when each row was read. Schedule the Actor to build a history of scores.

Why did my run return 0 results? The search term, URL or filter matched nothing on Metacritic. The run still ends successfully with a message that names the cause, and a RUN_SUMMARY record in the key-value store lists the warnings. Check spelling, try a shorter term, or open the same search on the site.

Can I get movie genres or games for one platform only? Yes. Set category to movies with genres, or category to games with platform, for example ps5. These filters apply when URLs, slugs and search terms are empty.

Do I need a proxy? Normally not. If requests are blocked, enable the proxy input; blocked requests are retried on a new IP.

How many titles can one run return? Up to 5000 per run, set with Maximum results.

This Actor collects publicly available information that anyone can see on Metacritic without logging in. It does not access accounts or private data, and it does not bypass any login or CAPTCHA. Review scores, titles and release data are facts, but descriptions and images may be protected by copyright, and the site's terms of use may restrict automated access, so check them for your use case. You are responsible for how you use the data, including compliance with copyright and data protection law such as GDPR. This is not legal advice. The Actor is an independent tool and is not affiliated with or endorsed by Metacritic.

Feedback

Found a bug or need a field that isn't here? Open an issue on the Issues tab and we'll look at it.