Discover/ProtonDB API
live

ProtonDB APIprotondb.com

Access ProtonDB game compatibility tiers, user reports, Steam Deck verification status, and global stats for any Steam App ID via a structured API.

Endpoint health
verified 7d ago
get_game_summary
get_steam_app_details
explore_games_list
search_games
get_game_reports
8/8 passing latest checkself-healing
Endpoints
8
Updated
22d ago

What is the ProtonDB API?

This API exposes 8 endpoints covering ProtonDB's full dataset of Linux and Steam Deck game compatibility data. Use get_game_summary to retrieve a game's tier rating (platinum through borked), confidence level, and total report count by Steam App ID, or call get_game_reports to pull individual user-submitted reports with hardware specs and Proton version details. The API also surfaces global statistics, dashboard breakdowns by catalog size, Steam Deck verification criteria, and a searchable game index.

Try it
Search keyword or game title to find matching games.
api.parse.bot/scraper/566b9bab-74d5-4cf8-9980-34c236c0e3b3/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/566b9bab-74d5-4cf8-9980-34c236c0e3b3/search_games?query=Portal+2' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 protondb-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.

"""ProtonDB SDK — check Linux game compatibility, reports, and Steam Deck status."""
from parse_apis.protondb_api import ProtonDB, ExploreSort, Device, GameNotFound

client = ProtonDB()

# Search for a game by title, take the first result.
game = client.games.search(query="Portal 2", limit=3).first()
print(f"Found: {game.name} (app_id={game.app_id})")

# Get the compatibility summary for that game.
summary = game.summary()
print(f"Tier: {summary.tier}, Score: {summary.score}, Confidence: {summary.confidence}")

# Check Steam Deck verification status.
deck = game.deck_status()
print(f"Deck verified category: {deck.results.resolved_category}")
for item in deck.results.resolved_items:
    print(f"  Test: {item.loc_token} (type={item.display_type})")

# List user reports filtered to Steam Deck device.
for report in game.reports.list(device=Device.STEAM_DECK, limit=3):
    print(f"Report {report.id}: verdict={report.responses.get('verdict', 'n/a')}, hw={report.device.hardware_type}")

# Browse the explore page sorted by worst compatibility.
for eg in client.exploregames.list(sort=ExploreSort.MOST_BORKED, limit=3):
    print(f"Borked: {eg.title} ({eg.app_id}) status={eg.whitelist_status}")

# Handle a not-found game gracefully.
try:
    bad_game = client.game(app_id="9999999")
    bad_game.summary()
except GameNotFound as exc:
    print(f"Game not found: {exc.app_id}")

# Global stats.
stats = client.statses.get()
print(f"ProtonDB has {stats.unique_games} games with {stats.reports} total reports")

print("Exercised: games.search / summary / deck_status / reports.list / exploregames.list / statses.get")
All endpoints · 8 totalmissing one? ·

Full-text search over the ProtonDB game index by title. Returns matching games with their Steam App IDs. Each hit carries the game name and its Steam App ID (objectID). Limited to 20 results per call.

Input
ParamTypeDescription
queryrequiredstringSearch keyword or game title to find matching games.
Response
{
  "type": "object",
  "fields": {
    "hits": "array of game objects with name and objectID (Steam App ID)",
    "query": "string, the search query echoed back",
    "nbHits": "integer, total number of matching results"
  },
  "sample": {
    "data": {
      "hits": [
        {
          "name": "Portal 2",
          "objectID": "620"
        }
      ],
      "query": "Portal 2",
      "nbHits": 166
    },
    "status": "success"
  }
}

About the ProtonDB API

Game Compatibility Endpoints

get_game_summary takes a Steam app_id and returns the core compatibility fields: tier (one of platinum, gold, silver, bronze, or borked), a numeric score between 0 and 1, confidence (strong, good, or inadequate), trendingTier, and bestReportedTier. This gives a quick read on how reliably a title runs under Proton. get_game_reports returns paginated individual reports for the same app_id, each containing contributor details, system specs, Proton version, timestamp, and user notes. The optional device parameter lets you filter to pc, steam-deck, or chrome-os reports specifically.

Search and Explore

search_games queries the game index by title string and returns an array of hits, each with a game name and objectID (the Steam App ID you need for other endpoints), plus nbHits indicating total matches. explore_games_list offers a paginated catalog view with sort options including popular, releaseDate, wilsonRating, playerCount, userScore, and mostBorked. Each result includes appId, title, and whitelistStatus.

Steam Deck Verification and Steam Store Details

get_deck_verified_details returns Valve's official Steam Deck compatibility assessment for a given app_id. The resolved_category field uses numeric codes: 3 for Verified, 2 for Playable, 1 for Unsupported, and 0 for Unknown. The resolved_items array breaks down individual test criteria results. get_steam_app_details returns full Steam store metadata for the same app — description, pricing, system requirements, and media — keyed by app_id.

Global Statistics

get_stats_summary returns site-wide counts: total reports, uniqueGames with at least one submission, and a timestamp of the last data update. get_dashboard_stats goes deeper, providing compatibility breakdowns across topTen, topHundred, topThousand, and fullSteamCatalog game sets, each segmented by ProtonDB medal tiers, click-play categories, and Steam Deck verification ratings.

Reliability & maintenanceVerified

The ProtonDB API is a managed, monitored endpoint for protondb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when protondb.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 protondb.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.

Last verified
7d ago
Latest check
8/8 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a Linux gaming compatibility checker that looks up any Steam App ID and displays its ProtonDB tier and confidence level.
  • Filter Steam libraries by Proton compatibility tier to surface only gold or platinum-rated titles for a given user's game list.
  • Compare official Steam Deck Verified status (from get_deck_verified_details) against community ProtonDB tiers to flag disagreements.
  • Aggregate get_dashboard_stats breakdowns over time to track how the proportion of Verified Steam Deck titles in the full catalog changes.
  • Surface recent user reports filtered to steam-deck device type to show hardware-specific notes and Proton versions for a title.
  • Power a game discovery page sorted by wilsonRating or userScore from explore_games_list to surface well-reported Linux-compatible titles.
  • Cross-reference get_steam_app_details pricing and system requirements with ProtonDB compatibility tier to build a Linux-focused game buying guide.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does ProtonDB have an official public developer API?+
ProtonDB does not publish a documented public developer API or issue API keys for third-party access. This Parse API provides structured access to the same compatibility data available on the site.
What does the `tier` field in `get_game_summary` actually represent?+
The tier field reflects the aggregate community compatibility rating derived from user reports. Values run from platinum (works perfectly out of the box) down through gold, silver, bronze, and borked (does not run). The response also includes trendingTier for the current directional trend and bestReportedTier for the highest tier ever reported, which can differ from the current aggregate.
Can I retrieve historical compatibility data or track how a game's tier has changed over time?+
Not currently. The API returns current summary data and individual timestamped reports, but does not expose a historical tier-change timeline or trend series. You can fork this API on Parse and revise it to add an endpoint that records and queries tier snapshots over time.
How does report pagination work in `get_game_reports`?+
The response includes page (current page), perPage (results per page), and total (total reports for the game). There is no explicit page input parameter exposed in the current endpoint definition, so the API returns the default first page of results. For games with high report counts, the total field tells you how many reports exist in full.
Does the API cover non-Steam games or Lutris/Wine compatibility data from other sources?+
No. All endpoints are scoped to Steam App IDs, and the compatibility data reflects ProtonDB's community reports for Steam titles running under Proton. Non-Steam game compatibility data from other Linux gaming sources is not included. You can fork this API on Parse and revise it to add endpoints that pull from additional sources.
Page content last updated . Spec covers 8 endpoints from protondb.com.
Related APIs in EntertainmentSee all →
steamdb.info API
Search and discover Steam games with real-time data on trending titles, most played games, top-rated releases, current sales, and free promotions. Get detailed information about any game including ratings, player counts, and pricing to find your next favorite game or track what's popular on Steam.
store.steampowered.com API
Search Steam Store listings, fetch featured categories (specials, top sellers, new releases), and retrieve app details and user reviews by Steam AppID.
opencritic.com API
Find and compare video game reviews and critic scores from industry experts, search games by title or filters, and browse detailed metadata including platforms, tags, and the latest releases. Get aggregated ratings and comprehensive review information to discover games and make informed purchasing decisions.
steamcharts.com API
Track player counts and trending games on Steam, search for specific titles, and view historical statistics for individual games. Monitor which games are gaining popularity and get detailed player data to stay informed about the gaming landscape.
gamestop.com API
Search GameStop's catalog for games and merchandise, browse products by category, view detailed product information including reviews, and discover what's available—all with seamless access that handles Cloudflare protection automatically.
gamepedia.com API
Search gaming wikis across Fandom to find guides, maps, strategies, and game information, then retrieve detailed page content in multiple formats along with images and metadata. Discover trending articles, browse categories, and navigate game-specific knowledge bases to get the gaming data you need.
opendota.com API
Access detailed Dota 2 match statistics, player performance metrics, hero win rates, and professional tournament data to analyze gameplay trends and competitive performance. Search for specific players, explore custom data queries through SQL, and retrieve comprehensive match histories to improve your understanding of the game.
api-public-docs.cs-prod.leetify.com API
Access CS2 player statistics, match history, and individual game performance data from Leetify's competitive database. Look up player profiles by Steam64 ID or Leetify user ID and retrieve comprehensive match details including per-round metrics and performance breakdowns.