Metacritic Reviews & Scores Scraper

Scrape Metacritic titles, Metascores, user scores, review counts, release details, rankings, summaries, and review snippets.

Data fields

FieldTypeDescription
namestringValue exported as name.
contentTypestringValue exported as contentType.
urlstringValue exported as url.
releaseDatestring | nullValue exported as releaseDate.
metascoreinteger | nullValue exported as metascore.
userScorenumber | nullValue exported as userScore.
criticReviewCountinteger | nullValue exported as criticReviewCount.
userReviewCountinteger | nullValue exported as userReviewCount.

Input preview

startUrlsStart URLs
querySearch query
categoryCategory
browseSortBrowse sort context
yearYear context
maxItemsMaximum titles

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Extract Metacritic titles, scores, release details, rankings, and optional public review snippets from movies, TV shows, games, and music pages.

What does Metacritic Reviews & Scores Scraper do?

Metacritic Reviews & Scores Scraper turns public Metacritic pages into structured datasets.

It can collect title pages from browse rankings, search results, and direct detail URLs.

Use it to monitor Metascores, user scores, critic review volume, public user review volume, genres, summaries, and release dates.

When enabled, it can also add a small set of public critic and user review snippets to each title row.

Who is it for?

Who is this Metacritic scraper for?

Media research teams use it to compare titles across categories.

Game publishers use it to watch critic reception and review counts.

Film marketers use it to build research lists for new releases and evergreen rankings.

SEO teams use it to enrich review roundups and content briefs.

Data analysts use it to combine Metacritic scores with internal market data.

Why scrape Metacritic with this actor?

Metacritic pages are useful but not convenient for repeat analysis.

This actor gives you consistent rows that can be exported to JSON, CSV, Excel, Google Sheets, or downstream systems.

You can run small searches or larger ranking pages without manually copying data from the website.

What Metacritic data can I extract?

Field Description
url Metacritic title URL
contentType Movie, TV, game, or music
name Title name shown on Metacritic
releaseDate Public release date when available
platformsNetwork Game platforms or TV network signals when available
genres Public genre list
metascore Critic Metascore
userScore Public user score when available
criticReviewCount Number of critic reviews behind the score
userReviewCount Number of public user ratings or reviews detected
summary Metacritic summary or synopsis
rankingContext Browse rank or search context
reviewSnippets Optional critic/user snippets
fetchedAt Timestamp for the scrape

How to scrape Metacritic rankings

  1. Open the actor on Apify.
  2. Add a Metacritic browse URL such as https://www.metacritic.com/browse/movie/.
  3. Set maxItems to the number of titles you want.
  4. Keep includeReviews off for a fast score run.
  5. Start the actor.
  6. Export the dataset from the Storage tab.

How to scrape a Metacritic search query

Enter a search term in query, for example elden ring.

The actor opens the public Metacritic search page, finds matching title pages, and saves structured title records.

Use search mode when you know a title, franchise, publisher, album, or show name.

How to scrape a Metacritic title detail page

Paste a title URL in startUrls.

Examples include:

  • https://www.metacritic.com/movie/dekalog-1988/
  • https://www.metacritic.com/game/elden-ring/
  • https://www.metacritic.com/tv/breaking-bad/

The actor saves one row for each detail URL.

Input settings

Key Type Description
startUrls array Exact Metacritic browse, search, or title pages.
query string Search term when you want the actor to search Metacritic for you.
category string movie, tv, game, or music default browse category.
browseSort string Ranking context for browse runs, such as metascore.
year integer Optional year context for your run setup.
maxItems integer Maximum number of title records to save.
includeReviews boolean Turn on to fetch short public critic/user review excerpts.
maxReviewSnippets integer Maximum critic snippets and user snippets per title.
proxyConfiguration object Apify proxy settings. Try default/datacenter proxy first; use residential only if blocked.

Verified public examples

Ready-to-run Apify Store examples verified in post-publish QA:

Example input

{
  "startUrls": [
    { "url": "https://www.metacritic.com/browse/movie/" }
  ],
  "maxItems": 10,
  "includeReviews": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}

Example output

{
  "url": "https://www.metacritic.com/movie/dekalog-1988/",
  "contentType": "movie",
  "name": "Dekalog (1988)",
  "releaseDate": "1996-03-22",
  "genres": ["Drama"],
  "metascore": 100,
  "userScore": null,
  "criticReviewCount": 13,
  "userReviewCount": 256,
  "summary": "This masterwork by Krzysztof Kieślowski...",
  "rankingContext": "Rank 1 on Metacritic browse page",
  "reviewSnippets": [],
  "fetchedAt": "2026-07-04T00:00:00.000Z"
}

Tips for best results

Start with a small maxItems value.

Confirm the output fields you need.

Then increase the limit for scheduled or bulk runs.

Use detail URLs for exact titles.

Use browse URLs for rankings.

Use query mode for discovery.

Disable review snippets when you only need scores.

Enable review snippets for editorial research.

Metacritic categories

Movies are supported.

TV pages are supported.

Game pages are supported.

Music pages are supported.

Availability of individual fields varies by title type and Metacritic page content.

Integrations

Send results to Google Sheets for editorial tracking.

Export CSV files for research teams.

Connect the dataset to BI dashboards.

Use webhooks to start enrichment after a run succeeds.

Combine title rows with internal campaign, release, or sales data.

Input recipes

These are safe pre-publication example inputs. Public ready-to-run Example links will be added only after the actor is published and Publisher creates verified tasks.

Movie detail enrichment

{
  "startUrls": [{ "url": "https://www.metacritic.com/movie/the-godfather/" }],
  "maxItems": 1,
  "includeReviews": false,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": [] }
}

Game search with review snippets

{
  "query": "elden ring",
  "maxItems": 2,
  "includeReviews": true,
  "maxReviewSnippets": 1,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": [] }
}

Movie ranking sample

{
  "startUrls": [{ "url": "https://www.metacritic.com/browse/movie/" }],
  "category": "movie",
  "browseSort": "metascore",
  "maxItems": 5,
  "includeReviews": false,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": [] }
}

API usage

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/metacritic-reviews-scores-scraper').call({
  query: 'elden ring',
  maxItems: 5,
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient

client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('fetch_cat/metacritic-reviews-scores-scraper').call(run_input={
    'query': 'elden ring',
    'maxItems': 5,
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~metacritic-reviews-scores-scraper/runs?token=MY-APIFY-TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"query":"elden ring","maxItems":5}'

MCP usage

You can run this actor from Claude Code or Claude Desktop through Apify MCP.

Use the MCP URL with the actor tool enabled:

https://mcp.apify.com/?tools=fetch_cat/metacritic-reviews-scores-scraper

Add it in Claude CLI:

claude mcp add apify-metacritic "https://mcp.apify.com/?tools=fetch_cat/metacritic-reviews-scores-scraper"

Claude Desktop JSON config:

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

Example prompt ideas for MCP:

  • "Scrape the top 10 Metacritic movie rankings and summarize the highest scoring titles."
  • "Find Metacritic results for Elden Ring and return the scores and review counts."
  • "Collect review snippets for this Metacritic movie URL and format them as a table."

Data quality notes

Scores and counts are captured from public pages.

Some title types do not show every field.

A missing value means the public page did not expose that value during the run.

The actor avoids saving obvious challenge pages as data.

Troubleshooting

Why did my run return fewer titles than requested?

The page may contain fewer matching titles than your maxItems value, or Metacritic may not expose more results on that URL.

Try a broader browse URL or a different query.

Why are review snippets empty?

Review snippets are only collected when includeReviews is enabled.

Some pages also have limited public review text.

Why is userScore null?

Some pages do not expose a user score in a reliable machine-readable place.

The row still includes the Metascore and review counts when available.

Legality

This actor extracts publicly available information from Metacritic pages.

Use it responsibly and respect applicable laws, platform terms, and privacy rules.

Do not use the actor to overload websites or republish content in a way that violates rights.

Support

If a run fails, contact support with the run ID or run URL, exact input JSON, expected output, actual output, and one reproducible public URL such as a public Metacritic title or browse page.

Mention whether you used start URLs, query mode, or review snippets. Small reproducible inputs are easiest to diagnose.

Common questions

Questions and answers reused from the canonical actor README.

Can I scrape reviews as separate rows?

Not in this version. Review snippets are nested inside each title row and bounded by maxReviewSnippets.

Why did a direct title URL return one row?

Detail URL mode is designed for enrichment of known Metacritic pages, so each valid detail URL maps to one output row.