Game Price API
A free JSON API for the lowest listed PC game key prices at the stores SuperDuperBundle compares: look up a game by name, Steam app ID or store URL, no key needed.
The same prices as our game pages, from the stores whose own product feeds we import, plus Steam and GOG. Every answer links to the game's compare page, where all offers are listed.
Quick start
curl "https://superduperbundle.com/api/v1/lookup/?q=elden+ring&client=my-app"
curl "https://superduperbundle.com/api/v1/lookup/?steam_id=1245620"
curl "https://superduperbundle.com/api/v1/lookup/?steam_ids=1245620,1091500,292030"
curl "https://superduperbundle.com/api/v1/lookup/?url=https://store.steampowered.com/app/1245620/" Clients and MCP server
| Package | Install |
|---|---|
| JavaScript / TypeScript client | npm install superduperbundle |
| Python client | pip install superduperbundle |
| MCP server for AI assistants | npx -y @superduperbundle/mcp-server |
Source code, examples and the MCP setup for Claude Desktop, Cursor and VS Code: github.com/superduperbundle/game-price-api (code under the MIT licence; the data under the terms below). The MCP server is also listed in the official MCP registry as io.github.superduperbundle/game-prices.
Parameters
Pass exactly one of these:
| Parameter | What it takes |
|---|---|
q | A game name. Typos, nicknames and numbers are handled ("rdr2", "gta 5"). Add limit (1–5) for more than one result. |
steam_id / steam_ids | One Steam app ID, or up to 50 separated by commas. |
slug / slugs | Our game id (the part after /game/ in our URLs), or up to 50. |
url | A Steam store page (store.steampowered.com/app/…) or one of our game pages. |
Optional: client = your app's name (lowercase letters, digits, hyphens). It tags the compare links so we can see which tools send visitors.
Response
Example answer (the prices here are illustrative):
{
"api": "v1",
"query": {
"steam_id": [
1245620
]
},
"count": 1,
"results": [
{
"id": "elden-ring",
"name": "ELDEN RING",
"steam_app_id": 1245620,
"url": "https://superduperbundle.com/game/elden-ring/?utm_source=my-app&utm_medium=sdb-api&utm_campaign=lookup",
"image": "https://superduperbundle.com/img/cover/elden-ring.webp",
"state": "price",
"currency": "USD",
"list_price": 59.99,
"lowest": {
"store": "eneba",
"store_name": "Eneba",
"store_type": "marketplace",
"price": 31.49,
"drm": "Steam",
"region": "Global",
"checked_at": "2026-10-21T09:25:00Z",
"discount_pct": 48
},
"lowest_steam_key": {
"store": "eneba",
"store_name": "Eneba",
"store_type": "marketplace",
"price": 31.49,
"drm": "Steam",
"region": "Global",
"checked_at": "2026-10-21T09:25:00Z"
},
"store_count": 2,
"offer_count": 2,
"offers": [
{
"store": "eneba",
"store_name": "Eneba",
"store_type": "marketplace",
"price": 31.49,
"drm": "Steam",
"region": "Global",
"checked_at": "2026-10-21T09:25:00Z"
},
{
"store": "steam",
"store_name": "Steam",
"store_type": "official",
"price": 59.99,
"drm": "Steam",
"region": "Global",
"checked_at": "2026-10-21T14:00:00Z"
}
]
}
],
"attribution": {
"text": "Prices by SuperDuperBundle",
"url": "https://superduperbundle.com/"
},
"terms": "https://superduperbundle.com/tools/api/#terms"
} | Field | Meaning |
|---|---|
url | The compare page with every offer. Link here whenever you show a price. |
state | price, free, unreleased or not_on_sale. |
lowest | The cheapest PC key of any kind; drm says where it activates (Steam, GOG, DRM-free…). |
lowest_steam_key | The cheapest key that activates on Steam. |
price | The lowest listed price in US dollars, as the store lists it. Stores set their own fees and the final total at checkout. |
checked_at | When that price was last checked at the store. |
store_count | Stores with an in-stock offer. With fewer than 2, show the price as a price, not as a comparison. |
list_price | Steam's regular price; discount_pct is only set when the lowest price is below it. |
Machine-readable description: OpenAPI 3.1 (openapi.json).
Limits and caching
- No key and no sign-up. Answers are cached for 15 minutes; please cache them on your side too.
- Each address can look up 600 games per 10 minutes without cache hits (a batch of 50 IDs counts as 50; cached answers are free). Every answer carries
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reset; over the limit you get HTTP 429 withRetry-After. Need more? Get a free key. - Browser apps can call it directly (CORS is open).
Free API keys (higher limits)
| Tier | Uncached games per 10 minutes | How |
|---|---|---|
| No key | 600 per address | Nothing to do. |
| Registered | 2,500 per key | Email and project below; the key is shown once. |
| Partner | 10,000 per key | A public page of your project links to SuperDuperBundle (any link; rel="nofollow" is fine). Verify it below. |
Send the key as the X-API-Key header or the key parameter. Keep keys out of public code: a browser extension or userscript can use the keyless limit.
Partner check
Terms
- Free for any app, site, bot or extension.
- Attribution: whenever you display our data, show a visible link to SuperDuperBundle: link each price to the game's
urland show "Prices by SuperDuperBundle". - Do not resell the data, mirror it as a price database, or present the prices as your own.
- Prices change: show
checked_ator refresh at least daily. We compare prices; we do not sell keys. - We may change or stop the API; breaking changes get a new version (
/api/v2/).
Questions or a higher limit: contact@superduperbundle.com.