Steam API
The Steam Games API returns PC-game data from Steam as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary app_detail endpoint returns an app's id, name, type, genres, categories, developers, publishers and release date, and you can pull price, reviews, player_stats, search, top_sellers and news. It is built for game analytics, price tracking and gaming apps that need Steam data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/steam-games/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"term": "portal",
"count": 10
}
}{
"ok": true,
"meta": {
"api": "steam-games",
"endpoint": "search",
"mode": "live",
"latency_ms": 774.3,
"record_count": 10,
"bytes": 3484,
"cache_hit": false,
"completeness_pct": 100,
"requests": 1
},
"data": {
"items": [
{
"appid": 620,
"name": "[redacted-name]",
"type": "app",
"price": {
"currency": "USD",
"final": 999,
"initial": 999,
"discount_percent": 0,
"is_free": false
},
"metascore": 95,
"platforms": {
"windows": true,
"mac": false,
"linux": true
},
"controller_support": "full",
"review_summary": null,
"release_date": null,
"tagids": null,
"img": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/620/capsule_231x87.jpg?t=[redacted-phone]",
"source": "storesearch"
},
{
"appid": 400,
"name": "Portal",
"type": "app",
"price": {
"currency": "USD",
"final": 999,
"initial": 999,
"discount_percent": 0,
"is_free": false
},
"metascore": 90,
"platforms": {
"windows": true,
"mac": false,
"linux": true
},
"controller_support": "full",
"review_summary": null,
"release_date": null,
"tagids": null,
"img": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/400/capsule_231x87.jpg?t=[redacted-phone]",
"source": "storesearch"
},
{
"appid": 374040,
"name": "[redacted-name]",
"type": "app",
"price": {
"currency": "USD",
"final": 1999,
"initial": 1999,
"discount_percent": 0,
"is_free": false
},
"metascore": 72,
"platforms": {
"windows": true,
"mac": false,
"linux": false
},
"controller_support": null,
"review_summary": null,
"release_date": null,
"tagids": null,
"img": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/374040/capsule_231x87.jpg?t=[redacted-phone]",
"source": "storesearch"
}
],
"count": 10,
"total_results": 10,
"source": "storesearch",
"term": "portal",
"filter": "search",
"facets": null,
"completeness": 100
}
}What the Steam API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| app_detail | full game metadata from store appdetails (+structured languages; include_tags adds community tags/franchise/links) | Content platforms call app_detail to get full game metadata from store appdetails (+structured languages; include_tags adds community…. | appid, cc, country, lang, language, ... |
| price | regional price + discount (appdetails price_overview) | Research tools call price to get regional price + discount (appdetails price_overview). | appid, cc, country, lang, language |
| reviews | user reviews + query_summary; review_type/day_range/trend (day|week|month|year)/sort=funny; redact_pii drops author identity | Community analysts call reviews to get user reviews + query_summary; review_type/day_range/trend (day|week|month|year)/sort=funny; r…. | appid, language, lang, num_per_page, limit, ... |
| player_stats | steamspy owners + optional current player count | Media monitors call player_stats to get steamspy owners + optional current player count. | appid, include_current_players |
| search | store search → appid+price (+metascore on keyword); faceting: tags/type/category1/supportedlang/maxprice/specials. term OR a facet required. | Content platforms call search to get store search → appid+price (+metascore on keyword); faceting. | term, query, q, count, limit, ... |
| top_sellers | Steam top sellers chart slice (appid+price per item); same facets as search | Research tools call top_sellers to get steam top sellers chart slice (appid+price per item); same facets as search. | count, limit, start, cc, country, ... |
| news | official game news (ISteamNews/GetNewsForApp) | Community analysts call news to get official game news (ISteamNews/GetNewsForApp). | appid, count, limit, maxlength |
| tags | community tags (InitAppTagModal) + franchise + external links (store page) | Media monitors call tags to get community tags (InitAppTagModal) + franchise + external links (store page). | appid, cc, country, lang, language |
| similar_games | recommended similar games (appids) via /recommended/morelike | Content platforms call similar_games to get recommended similar games (appids) via /recommended/morelike. | appid, count, limit |
| artworks | official art-asset URLs (header/capsule/library/hero/logo/background) | Research tools call artworks to get official art-asset URLs (header/capsule/library/hero/logo/background). | appid, cc, country, lang, language |
| guides | Community guides for a game (Steam Workshop guides) — top-rated, trending or most-recent. Each guide: title, author, star rating, preview image and URL. | Community analysts call guides to get community guides for a game (Steam Workshop guides). | appid, sort, page, limit |
| dlc | List a game's DLC with names + regional prices. The base game's DLC appids are resolved to titles/prices (bounded by `resolve` to keep latency sane). | Media monitors call dlc to list a game's DLC with names + regional prices. | appid, cc, country, lang, language, ... |
| package | Steam package / bundle (a.k.a. 'sub') details — the apps it contains, the bundled price, platforms and release date. Use the package ids from app_detail.package_groups. | Content platforms call package to get steam package / bundle (a.k.a. | packageid, package_id, subid, id, cc, ... |
| featured | Store-front discovery lists: specials (current deals), new_releases, coming_soon and top_sellers — each with appid + price. Pick one with `category`, or get all four. | Research tools call featured to get store-front discovery lists. | category, type, count, limit, cc, ... |
| most_played | Official Steam most-played chart — live concurrent player count + 24h peak per game (the only keyless source of all-time/period peak). Optionally enrich rows with names. | Community analysts call most_played to get official Steam most-played chart. | count, limit, resolve, cc, country, ... |
| review_histogram | Recommendations up/down over the game's lifetime (Steam's own review histogram) — the data behind the store review-trend graph. | Media monitors call review_histogram to get recommendations up/down over the game's lifetime (Steam's own review histogram). | appid, lang, language |
| player_profile | Public Steam profile summary by 64-bit steamid OR vanity name (keyless). Returns persona, avatar, online state, ban flags and the privacy state. Note: owned-games / friends are NOT available on Steam's keyless surface — this is the profile summary. | Content platforms call player_profile to get public Steam profile summary by 64-bit steamid OR vanity name (keyless). | steamid, steamid64, steam_id, vanity, vanity_url, ... |
| resolve | Turn a human name into ids so callers never hand-find a URL: a game name → matching appids (chains to app_detail), or a vanity name (kind=profile) → steamid64. | Research tools call resolve to turn a human name into ids so callers never hand-find a URL. | term, query, q, name, kind, ... |
Call search from your stack
curl -X POST https://api.reefapi.com/steam-games/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"term":"portal","count":10}'import requests
r = requests.post(
"https://api.reefapi.com/steam-games/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"term": "portal",
"count": 10
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/steam-games/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"term": "portal",
"count": 10
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.steam-games.search with {"term":"portal","count":10}.Who uses this API and why
- Price trackers call price and app_detail to alert on Steam discounts.
- Game analytics use reviews and player_stats to gauge reception and engagement.
- Discovery apps use search and top_sellers to surface popular titles.
Questions developers ask before integrating
What is the Steam API?
Steam API is a ReefAPI endpoint group for game details, prices, reviews and player counts. It returns live JSON through POST requests under /steam-games/v1.
Is the Steam API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Steam calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Steam login or account?
No login to Steam is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Steam data?
The page example is captured from a live app_detail call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Steam API use?
Steam actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Steam from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call steam-games actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Steam API a Steam scraper?
It is the managed alternative to a DIY Steam scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same game details, prices, reviews and player counts back as clean JSON.
Why does my Steam scraper keep getting blocked?
Most Steam scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.