OpenCritic APIopencritic.com ↗
Access OpenCritic game reviews, critic scores, and metadata via API. Search titles, list games, retrieve reviews by page, and browse platforms and tags.
What is the OpenCritic API?
The OpenCritic API provides 7 endpoints covering game search, paginated listings, detailed critic reviews, and platform/tag metadata sourced from OpenCritic's aggregated review database. Use get_game_reviews to pull individual critic write-ups with outlet names, scores, and publication dates, or get_game_details to retrieve a game's full metadata bundle including description, images, trailers, and aggregated tier ratings.
curl -X GET 'https://api.parse.bot/scraper/1c08a174-3f01-43f3-83c0-5219ced6961d/list_games?page=1&sort=score' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace opencritic-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.opencritic_api import OpenCritic, GameSort, GameSummary, Game
client = OpenCritic()
# Search for games by title
for result in client.games.search(query="Zelda"):
print(result.name, result.dist)
# List top-rated games sorted by score
for summary in client.gamesummaries.list(sort=GameSort.SCORE, limit=5):
print(summary.name, summary.top_critic_score, summary.tier)
# Drill into a game's full details from a summary
top_game = next(iter(client.gamesummaries.list(sort=GameSort.SCORE, limit=1)))
game = top_game.details()
print(game.name, game.description, game.num_reviews)
# Browse reviews for that game
for review in game.reviews.list(limit=3):
print(review.outlet, review.score, review.published_date)
# Get all platforms
for platform in client.platforms.list():
print(platform.name, platform.short_name)
# Get latest releases
for recent in client.gamesummaries.latest(limit=5):
print(recent.name, recent.first_release_date)
# Get all tags
for tag in client.tags.list():
print(tag.name, tag.tag_id, tag.initial_popularity)
List games with pagination and optional sorting. Returns 20 games per page. Sort determines the ordering: by critic score, release date, name, review count, or recommendation percentage. Games include summary metadata (score, tier, platforms, genres) but not full details like descriptions or trailers.
| Param | Type | Description |
|---|---|---|
| page | integer | The page number to retrieve. Each page contains 20 games. |
| sort | string | Sort order for the game list. |
{
"type": "object",
"fields": {
"items": "array of game summary objects with id, name, topCriticScore, percentRecommended, tier, numReviews, platforms, genres, firstReleaseDate, and images"
},
"sample": {
"data": {
"items": [
{
"id": 4504,
"name": "Super Mario Odyssey",
"tier": "Mighty",
"genres": [
"Adventure",
"Platformer"
],
"images": {
"box": {
"og": "game/4504/o/1oc8VdkN.jpg",
"sm": "game/4504/DTh6jjTo.jpg"
},
"banner": {
"og": "game/4504/o/oh38qUAE.jpg",
"sm": "game/4504/BZrxOMDi.jpg"
}
},
"platforms": [
"Nintendo Switch"
],
"numReviews": 158,
"topCriticScore": 96.78,
"firstReleaseDate": "2017-10-27T00:00:00.000Z",
"percentRecommended": 98.03
}
]
},
"status": "success"
}
}About the OpenCritic API
Game Data and Scores
The list_games and get_latest_updates endpoints return arrays of game objects sharing a common shape: id, name, topCriticScore, percentRecommended, tier, numReviews, and platforms. list_games accepts a page integer (20 games per page) and a sort parameter accepting values like score, firstReleaseDate, name, num-reviews, percent-recommended, and date. get_latest_updates returns the 20 most recently released games sorted by release date descending — no parameters needed.
Game Details and Reviews
get_game_details accepts a required game_id integer and returns an expanded object adding description, images, trailers, a full Platforms array, and associated company data alongside the core score fields. get_game_reviews accepts the same game_id plus an optional page integer and returns up to 20 critic review objects per page, each containing title, snippet, score, publishedDate, externalUrl, outlet, and authors. This makes it possible to attribute scores directly to specific publications and critics.
Search and Reference Data
search_games takes a query string and returns up to 20 matches ranked by a dist relevance distance score — lower values indicate closer matches. The get_platforms endpoint returns all supported gaming platforms with id, name, shortName, order, and imageSrcV2 fields. get_tags returns all categorization tags including name, tagId, displayOnFilter, isActive, initialPopularity, and an optional description. These reference endpoints are useful for mapping IDs returned in game objects back to human-readable labels.
The OpenCritic API is a managed, monitored endpoint for opencritic.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when opencritic.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official opencritic.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a game discovery dashboard that ranks titles by
topCriticScoreorpercentRecommendedusinglist_games - Aggregate critic review snippets and outlet attribution per game using
get_game_reviewswith pagination - Power a game search autocomplete using
search_gamesand its relevancedistscore - Track newly released games by polling
get_latest_updatesfor recent entries - Enrich a game database with descriptions, trailers, and cover images via
get_game_details - Map platform IDs in game listings to full platform names using
get_platforms - Filter or group games by tag categories by cross-referencing
get_tagswith game metadata
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OpenCritic have an official developer API?+
What does `get_game_reviews` return, and can I filter by outlet or score?+
title, snippet, score, publishedDate, externalUrl, outlet, and authors. Results are paginated at 20 per page via the page parameter. The endpoint does not currently support filtering by outlet name or score range — it returns all reviews for the given game in default order. You can fork this API on Parse and revise it to add filtered review endpoints if that's a requirement.Does the API expose user review scores or community ratings?+
topCriticScore, percentRecommended, tier, and numReviews — reflect aggregated critic data only. User/community ratings are not part of OpenCritic's platform or this API's responses. You can fork the API on Parse and revise it to incorporate community score data from a different source if needed.Can I retrieve reviews or game lists filtered by platform or genre?+
list_games endpoint supports sorting but not filtering by platform or genre. Platform and genre data are present in response objects (e.g. platforms, genres in game listings), but cannot be used as query filters directly. You can fork this API on Parse and revise it to add filter parameters for those fields.How fresh is the review and score data?+
get_latest_updates surfaces the 20 most recently released games by release date. Individual game scores and review counts reflect what OpenCritic has indexed for that title. There is no endpoint exposing a last-updated timestamp per game, so exact data freshness for a specific title is not programmatically queryable through this API.