How to scrape media and entertainment data from Metacritic using the Minexa API
- Minexa.ai

- Jul 9
- 3 min read
Metacritic's game browse page is one of the most complete public sources of critic-scored game data on the web. Every listing carries a Metascore, an ESRB rating, a release date, a full description, and a direct link to the game's detail page. If you are building a game analytics pipeline, a content recommendation engine, or a media intelligence feed, this is a dataset worth having in structured form.
This guide walks through how to extract that data at scale using the Minexa API. The workflow has two phases: train a scraper once using the Minexa Chrome extension, then call the API programmatically to pull game listings whenever your pipeline needs fresh data.
Watch the full walkthrough first
Before going through the steps below, the video tutorial covers the complete extraction flow from start to finish.
Phase 1: training the scraper in the extension
Open the Minexa Chrome extension and navigate to metacritic.com/browse/game/. The extension loads and presents the starting screen.
Click 'I'm on the right page' to confirm the URL. The extension then scans the page structure and detects pagination automatically.
Review the detected pagination and click Continue. You will then choose whether to scrape the list only, or the list plus each game's linked detail page.
Select your scraping mode. For most game data pipelines, the list extraction alone covers the core fields. Choose simple mode unless your workflow requires custom interaction steps.
The extension highlights the full game listing container automatically. Confirm it and click 'Create scraper'.
All extracted data points become visible. Use the next/prev navigation to review every column the scraper found.
Phase 2: calling the Minexa API
Once the scraper is trained, the extension generates a ready-to-run Python snippet and a JSON request body. Copy your scraper ID from this screen.
Use the endpoint below to extract game listings programmatically. Pagination must be handled by passing a JS code scenario that defines the next-page click logic.
import requests
url = "https://api.minexa.ai/data"
headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
payload = {
"scraper_id": 7381,
"urls": ["https://www.metacritic.com/browse/game/"],
"columns": "top_40"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())Read the full Minexa API docs for authentication details and all supported parameters.
What the extracted data looks like
Each game card returns a structured object. Here is a sample from the top of the Metacritic rankings:
[
{
"game_title": "The Legend of Zelda: Ocarina of Time (1998)",
"release_date": "Nov 23, 1998",
"esrb_rating": "E",
"metascore": "99",
"metascore_description": "Metascore 99 out of 100",
"game_link_href": "/game/the-legend-of-zelda-ocarina-of-time-1998/",
"image_src": "https://www.metacritic.com/a/img/resize/...jpg"
},
{
"game_title": "SoulCalibur",
"release_date": "Sep 8, 1999",
"esrb_rating": "T",
"metascore": "98",
"metascore_description": "Metascore 98 out of 100",
"game_link_href": "/game/soulcalibur/",
"image_src": "https://www.metacritic.com/a/img/resize/...jpg"
}
]The game_details field deserves attention. It returns a typed span array per card that encodes the ranking position integer, game title string, release date, ESRB label and value, full description paragraph, numeric Metascore, and score label all in one traversable structure. This means a single field parse gives you the complete card summary without joining multiple columns.
The image_srcset field captures two CDN URLs in one string value: a 1x thumbnail at 96px width and a 2x version at 192px width, both WebP-optimised. This is useful when building display interfaces that need responsive image handling without a separate image fetch step.
The additional_info field surfaces the full Tailwind CSS class string per card, including hover shadow transition classes. This can be used to classify card layout variants or detect promotional card treatments that differ visually from standard listings.
Running the job and exporting results
Once the job completes, results are available as a structured table. Export to Excel or JSON depending on your pipeline format.
For recurring extraction, set up your own cron job and call the API on your preferred schedule, passing the target URLs each time. This keeps your game dataset current without any manual intervention.
If you are building a similar pipeline for another media or entertainment data source, the post on scraping data from IDX using the Minexa API covers the same two-phase developer workflow in a different domain and is worth reading alongside this one.
The Minexa API documentation at minexa.stoplight.io/docs/minexa has the full reference for request parameters, authentication, and response structure.

Comments