Price, reviews and concurrent players, per store region
The Steam Games API returns PC-game data from Steam as clean JSON.
18 active endpoints, on 1 and 2 credit tiers.
- POST/steam-games/v1/app_detail
- POST/steam-games/v1/price
- POST/steam-games/v1/reviews
- POST/steam-games/v1/player_stats
- POST/steam-games/v1/search
- POST/steam-games/v1/top_sellers
- POST/steam-games/v1/news
- +11 more
What Steam endpoints does ReefAPI ship?
18 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Steam API
3 of 18 endpoints, ready to run
One game: name, type, developers, publishers, release date, genres, categories, descriptions and age requirement.
{ "ok": true, "meta": { "api": "steam-games", "endpoint": "app_detail", "mode": "live", "latency_ms": 783.6, "record_count": 1, "cache_hit": false, "completeness_pct": 100 }, "data": { "app": { "appid": 570, "name": "Dota 2", "type": "game", "required_age": 0, "is_free": true, "controller_support": null, "short_description": "Every day, millions of players worldwide enter battle as one of over a hundred Dota heroes. And no matter if it's their 10th hour of play or 1,000th, there's always something new to discover. With regular updates that ensure a constant evolution of gameplay, features, and heroes, Dota 2 has taken on a life of its own.", "detailed_description": "<strong>The most-played game on Steam.</strong><br>Every day, millions of players worldwide enter battle as one of over a hundred Dota heroes. And no matter if it's their 10th hour of play or 1,000th, there's always something new to discover. With regular updates that ensure a constant evolution of gameplay, features, and heroes, Dota 2 has truly taken on a life of its own.<br><br><strong>One Battlefield. Infinite Possibilities.</strong><br>When it comes to diversity of heroes, abilities, and powerful items, Dota boasts an endless array—no two games are the same. Any hero can fill multiple roles, and there's an abundance of items to help meet the needs of each game. Dota doesn't provide limitations on how to play, it empowers you to express your own style.<br><br><strong>All heroes are free.</strong><br>Competitive balance is Dota's crown jewel, and to ensure everyone is playing on an even field, the core content of the game—like the vast pool of heroes—is available to all players. Fans can collect cosmetics for heroes and fun add-ons for the world they inhabit, but everything you need to play is already included before you join your first match.<br><br><strong>Bring your friends and party up.</strong><br>Dota is deep, and constantly evolving, but it's never too late to join. <br>Learn the ropes playing co-op vs. bots. Sharpen your skills in the hero demo mode. Jump into the behavior- and skill-based matchmaking system that ensures you'll <br>be matched with the right players each game.", "about_the_game": "<strong>The most-played game on Steam.</strong><br>Every day, millions of players worldwide enter battle as one of over a hundred Dota heroes. And no matter if it's their 10th hour of play or 1,000th, there's always something new to discover. With regular updates that ensure a constant evolution of gameplay, features, and heroes, Dota 2 has truly taken on a life of its own.<br><br><strong>One Battlefield. Infinite Possibilities.</strong><br>When it comes to diversity of heroes, abilities, and powerful items, Dota boasts an endless array—no two games are the same. Any hero can fill multiple roles, and there's an abundance of items to help meet the needs of each game. Dota doesn't provide limitations on how to play, it empowers you to express your own style.<br><br><strong>All heroes are free.</strong><br>Competitive balance is Dota's crown jewel, and to ensure everyone is playing on an even field, the core content of the game—like the vast pool of heroes—is available to all players. Fans can collect cosmetics for heroes and fun add-ons for the world they inhabit, but everything you need to play is already included before you join your first match.<br><br><strong>Bring your friends and party up.</strong><br>Dota is deep, and constantly evolving, but it's never too late to join. <br>Learn the ropes playing co-op vs. bots. Sharpen your skills in the hero demo mode. Jump into the behavior- and skill-based matchmaking system that ensures you'll <br>be matched with the right players each game.", "developers": [ "Valve" ], "publishers": [ "Valve" ], "release_date": { "coming_soon": false, "date": "Jul 9, 2013" }, "genres": [ { "id": "1", "description": "Action" }, { "id": "2", "description": "Strategy" }, { "id": "37", "description": "Free To Play" } ], "categories": [ { "id": 1, "description": "Multi-player" }, { "id": 9, "description": "Co-op" }, { "id": 29, "description": "Steam Trading Cards" } ], "platforms": { "windows": true, "mac": true, "linux": true }, "screenshots": [ { "id": 0, "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/ss_ad8eee787704745ccdecdfde3a5cd2733704898d.600x338.jpg?t=1769535998", "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/ss_ad8eee787704745ccdecdfde3a5cd2733704898d.1920x1080.jpg?t=1769535998" }, { "id": 1, "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/ss_7ab506679d42bfc0c0e40639887176494e0466d9.600x338.jpg?t=1769535998", "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/ss_7ab506679d42bfc0c0e40639887176494e0466d9.1920x1080.jpg?t=1769535998" }, { "id": 2, "path_thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/ss_c9118375a2400278590f29a3537769c986ef6e39.600x338.jpg?t=1769535998", "path_full": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/ss_c9118375a2400278590f29a3537769c986ef6e39.1920x1080.jpg?t=1769535998" } ], "movies": [ { "id": 256692021, "name": "Dota 2 - Join the Battle", "thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/256692021/movie.293x165.jpg?t=1762820639", "dash_av1": "https://video.akamai.steamstatic.com/store_trailers/570/116737/313addee2092d0bd6f538d164610061ea8bbe79c/1749859757/dash_av1.mpd?t=1762820639", "dash_h264": "https://video.akamai.steamstatic.com/store_trailers/570/116737/313addee2092d0bd6f538d164610061ea8bbe79c/1749859757/dash_h264.mpd?t=1762820639", "hls_h264": "https://video.akamai.steamstatic.com/store_trailers/570/116737/313addee2092d0bd6f538d164610061ea8bbe79c/1749859757/hls_264_master.m3u8?t=1762820639", "highlight": true }, { "id": 256819789, "name": "Dota 2 - Sizzle Reel", "thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/256819789/movie.293x165.jpg?t=1762820641", "dash_av1": "https://video.akamai.steamstatic.com/store_trailers/570/343440/a4bddad5bacce0e8395f7458ef4d8d9bad3efca9/1749859790/dash_av1.mpd?t=1762820641", "dash_h264": "https://video.akamai.steamstatic.com/store_trailers/570/343440/a4bddad5bacce0e8395f7458ef4d8d9bad3efca9/1749859790/dash_h264.mpd?t=1762820641", "hls_h264": "https://video.akamai.steamstatic.com/store_trailers/570/343440/a4bddad5bacce0e8395f7458ef4d8d9bad3efca9/1749859790/hls_264_master.m3u8?t=1762820641", "highlight": true }, { "id": 2028243, "name": "Dota 2 - The Greeviling", "thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/2028243/movie.293x165.jpg?t=1762820644", "dash_av1": "https://video.akamai.steamstatic.com/store_trailers/570/10127/a886b09aeea73e11d5c7305afa4e68698976808c/1749859753/dash_av1.mpd?t=1762820644", "dash_h264": "https://video.akamai.steamstatic.com/store_trailers/570/10127/a886b09aeea73e11d5c7305afa4e68698976808c/1749859753/dash_h264.mpd?t=1762820644", "hls_h264": "https://video.akamai.steamstatic.com/store_trailers/570/10127/a886b09aeea73e11d5c7305afa4e68698976808c/1749859753/hls_264_master.m3u8?t=1762820644", "highlight": false } ], "pc_requirements": { "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"><li><strong>OS *:</strong> Windows 7 or newer<br></li><li><strong>Processor:</strong> Dual core from Intel or AMD at 2.8 GHz<br></li><li><strong>Memory:</strong> 4 GB RAM<br></li><li><strong>Graphics:</strong> NVIDIA GeForce 8600/9600GT, ATI/AMD Radeon HD2600/3600<br></li><li><strong>DirectX:</strong> Version 11<br></li><li><strong>Network:</strong> Broadband Internet connection<br></li><li><strong>Storage:</strong> 60 GB available space<br></li><li><strong>Sound Card:</strong> DirectX Compatible</li></ul>" }, "mac_requirements": { "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"><li><strong>OS:</strong> macOS 10.15 or newer<br></li><li><strong>Processor:</strong> Dual core from Intel<br></li><li><strong>Memory:</strong> 4 GB RAM<br></li><li><strong>Graphics:</strong> Metal-capable GPU (AMD GCN-based GPU or newer, NVIDIA Kepler-based GPU or newer, Intel HD 4000 or newer)<br></li><li><strong>Network:</strong> Broadband Internet connection<br></li><li><strong>Storage:</strong> 60 GB available space</li></ul>" }, "linux_requirements": { "minimum": "<strong>Minimum:</strong><br><ul class=\"bb_ul\"><li><strong>OS:</strong> Ubuntu 12.04 or newer<br></li><li><strong>Processor:</strong> Dual core from Intel or AMD at 2.8 GHz<br></li><li><strong>Memory:</strong> 4 GB RAM<br></li><li><strong>Graphics:</strong> AMD GCN+, NVIDIA Kepler+, or Intel HD 5000-series or newer<br></li><li><strong>Network:</strong> Broadband Internet connection<br></li><li><strong>Storage:</strong> 60 GB available space<br></li><li><strong>Sound Card:</strong> OpenAL Compatible Sound Card</li></ul>" }, "price_overview": null, "dlc": [ 1241930, 652720 ], "dlc_count": 2, "packages": [ 49307, 197846, 330209 ], "package_groups": [ { "name": "default", "title": "Buy Dota 2", "description": "", "selection_text": "Select a purchase option", "save_text": "", "display_type": 0, "is_recurring_subscription": "false", "subs": [ { "packageid": 197846, "percent_savings_text": " ", "percent_savings": 0, "option_text": "Dota 2 - Commercial License - Free", "option_description": "", "can_get_free_license": "0", "is_free_license": true, "price_in_cents_with_discount": 0 } ] } ], "recommendations": { "total": 14379 }, "recommendations_total": 14379, "achievements": {}, "achievements_total": null, "metacritic": { "score": 90, "url": "https://www.metacritic.com/game/pc/dota-2?ftag=MCD-06-10aaa1f" }, "content_descriptors": { "ids": [ 5 ], "notes": "Dota 2 includes fantasy violence, use of alcohol, and mild partial nudity." }, "ratings": { "kgrb": { "rating": "12", "descriptors": "12 (12세 이상 이용가)\r\n만 12세 미만의 자는\r\n이용할 수 없는 게임물" }, "usk": { "rating": "12" }, "agcom": { "rating": "12", "descriptors": "Violenza" }, "cadpa": { "rating": "12" }, "dejus": { "rating_generated": "1", "rating": "18", "required_age": "18", "banned": "0", "use_age_gate": "0", "descriptors": "Drogas lícitas\nMedo" }, "steam_germany": { "rating_generated": "1", "rating": "16", "required_age": "16", "banned": "0", "use_age_gate": "0", "descriptors": "Alkohol / Tabak\nGewalt" }, "igrs": { "rating_generated": "1", "rating": "18", "required_age": "18", "banned": "0", "use_age_gate": "0", "descriptors": "Interaksi Daring\nRokok dan/atau rokok elektronik, minuman beralkohol, narkotika, psikotropika, dan/atau zat adiktif lainnya\nHoror" }, "steam_australia": { "rating_generated": "1", "rating": "M", "required_age": "15", "banned": "0", "use_age_gate": "0", "descriptors": "Drug Themes\nMild horror themes\nMild Violence" } }, "support_info": { "url": "" }, "legal_notice": null, "header_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/header.jpg?t=1769535998", "capsule_image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/570/capsule_231x87.jpg?t=1769535998", "background": "https://store.akamai.steamstatic.com/images/storepagebackground/app/570?t=1769535998", "website": "http://www.dota2.com/", "supported_languages": "Bulgarian, Czech, Danish, Dutch, English<strong>*</strong>, Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean<strong>*</strong>, Norwegian, Polish, Portuguese - Portugal, Portuguese - Brazil, Romanian, Russian, Simplified Chinese<strong>*</strong>, Spanish - Spain, Swedish, Thai, Traditional Chinese, Turkish, Ukrainian, Spanish - Latin America, Vietnamese<br><strong>*</strong>languages with full audio support", "supported_languages_structured": { "Bulgarian": { "interface": true, "subtitles": true, "full_audio": false }, "Czech": { "interface": true, "subtitles": true, "full_audio": false }, "Danish": { "interface": true, "subtitles": true, "full_audio": false }, "Dutch": { "interface": true, "subtitles": true, "full_audio": false }, "English": { "interface": true, "subtitles": true, "full_audio": true }, "Finnish": { "interface": true, "subtitles": true, "full_audio": false }, "French": { "interface": true, "subtitles": true, "full_audio": false }, "German": { "interface": true, "subtitles": true, "full_audio": false }, "Greek": { "interface": true, "subtitles": true, "full_audio": false }, "Hungarian": { "interface": true, "subtitles": true, "full_audio": false }, "Italian": { "interface": true, "subtitles": true, "full_audio": false }, "Japanese": { "interface": true, "subtitles": true, "full_audio": false }, "Korean": { "interface": true, "subtitles": true, "full_audio": true }, "Norwegian": { "interface": true, "subtitles": true, "full_audio": false }, "Polish": { "interface": true, "subtitles": true, "full_audio": false }, "Portuguese - Portugal": { "interface": true, "subtitles": true, "full_audio": false }, "Portuguese - Brazil": { "interface": true, "subtitles": true, "full_audio": false }, "Romanian": { "interface": true, "subtitles": true, "full_audio": false }, "Russian": { "interface": true, "subtitles": true, "full_audio": false }, "Simplified Chinese": { "interface": true, "subtitles": true, "full_audio": true }, "Spanish - Spain": { "interface": true, "subtitles": true, "full_audio": false }, "Swedish": { "interface": true, "subtitles": true, "full_audio": false }, "Thai": { "interface": true, "subtitles": true, "full_audio": false }, "Traditional Chinese": { "interface": true, "subtitles": true, "full_audio": false }, "Turkish": { "interface": true, "subtitles": true, "full_audio": false }, "Ukrainian": { "interface": true, "subtitles": true, "full_audio": false }, "Spanish - Latin America": { "interface": true, "subtitles": true, "full_audio": false }, "Vietnamese": { "interface": true, "subtitles": true, "full_audio": false } }, "tags": null, "franchise": null, "external_links": null } } }
How the Steam API works
Steam is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 184 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Watching a competitor's game through a sale
The interesting question about a game is not its price today. It is what the discount did to its review velocity and its player count.
{"appid": 570, "cc": "us"}Current price, original price and discount for one regional store. Prices differ substantially between regions, so the country is not optional in practice.
{"appid": 570, "filter": "recent", "day_range": 30}Then recent reviews within a window, which is where a change in sentiment shows up long before the aggregate score moves.
Top-seller listings carry the price, the discount and the review summary on every row, so a market scan is one call rather than one per title.
curl -X POST https://api.reefapi.com/steam-games/v1/app_detail \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"appid":730,"cc":"us"}'{
"ok": true,
"data": { … },
"meta": {
"api": "steam-games",
"endpoint": "app_detail",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}Prices, regions, and the units every numeric field is in
Steam reports money in whole minor units and playtime in minutes, and neither is labeled in the field name. The region parameter is the other trap: cc selects which store page is read, but it does not tell you which currency came back. Every value below was measured, mostly against appid 730 (Counter-Strike 2) and 292030 (The Witcher 3: Wild Hunt).
| Field | Unit or type | Measured value |
|---|---|---|
| appid | Integer, the number in the store URL | 730 = Counter-Strike 2, 292030 = The Witcher 3, 367520 = Hollow Knight |
| price.final, price.initial | Integer minor units of the `currency` field | 4999 = $49.99, 495 = $4.95, 5599 = $55.99, 104900 = $1,049.00 |
| currency | Read it from the response; never infer it from cc | cc=us gave USD 4999, cc=de gave EUR 4999, cc=tr gave USD 3499 |
| initial_formatted | Empty string when discount_percent is 0 | "" while final_formatted held "$49.99" |
| price on a free title | Nulls plus an empty price_overview object | appid 730: is_free true, final null, price_overview {} |
| release_date | Display string plus a coming_soon flag, not ISO | {"coming_soon": false, "date": "Aug 21, 2012"} |
| genres[].id vs categories[].id | String vs integer, in the same response | "1" for Action against 1 for Multi-player |
| playtime_forever, playtime_at_review | Minutes | 6607 minutes, which is about 110 hours |
| owners (player_stats) | A SteamSpy bucket string, not a number | "100,000,000 .. 200,000,000" |
| review_score | 0-10, paired with review_score_desc | 8 = "Very Positive" |
The two list actions read different Steam surfaces and fill in different columns. A keyword search (meta source "storesearch") returned metascore 87 and 90 but review_summary, release_date and tagids all null. top_sellers (source "search_infinite") returned the opposite: review_summary of {class, summary, positive_pct, total_reviews}, a release_date string and tagids, with metascore null. Choose the action by which column you need, or take the appid and call app_detail.
What changes per region, and what the review numbers mean
Measured on a large free game, on top sellers and on review filters.
Regional pricing on this platform is genuinely different, and availability varies too. Every price-bearing call takes a country code, and prices come back as integer minor units alongside a formatted string so there is no parsing and no rounding drift.
'Mostly Positive' is a bucket. Rows return the positive percentage and the total review count with it, which is what separates a genuine consensus from eleven reviews.
Language, positive or negative, recency and a day range are all parameters. A game's lifetime score barely moves; recent reviews within a window are where a bad update or a good patch is visible.
A market scan returned twenty-five titles with price, discount, platform support and review summary on each, out of a filtered total in the thousands. No per-title call needed to rank them.
Concurrent player numbers are published by this platform and by almost nobody else in this industry. For competitive analysis it is the closest thing to a real usage measurement available anywhere in games.
What people build with Steam
The jobs this data is most often used for.
endpoints
credits per call
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.
What Steam data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 184 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/steam-games/v1/app_detail \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"appid":730,"cc":"us"}'import requests
r = requests.post(
"https://api.reefapi.com/steam-games/v1/app_detail",
headers={"x-api-key": REEF_KEY},
json={
"appid": 730,
"cc": "us"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Steam.
Get a free key →Are prices in cents, and does cc decide the currency?▾
Prices are whole minor units of whatever currency the response names, and cc does not decide that currency. The Witcher 3 was priced three ways in one session: cc=us gave USD 4999, cc=de gave EUR 4999 rendered "49,99 EUR", and cc=tr gave USD 3499 rendered "$34.99 USD", because Steam prices Turkey in dollars. Divide final by 100 for two-decimal currencies, and always read the currency field rather than mapping the country code yourself.
Why is price_overview null or empty on a free game?▾
Because Steam publishes no price block for a free title and the API does not fabricate a zero. app_detail on appid 730 returned price_overview null with is_free true, while the price action on the same appid returned is_free true, currency null, final null, initial null, discount_percent null and price_overview as an empty object. Branch on is_free before you touch any price field, rather than treating null as an error.
Why do the review totals disagree between actions?▾
Because they come from four different Steam surfaces, each counting a different thing, and none of them is arithmetic this API performs. Measured on appid 730 within minutes of each other: reviews.summary.total_reviews 9,818,363; app_detail.recommendations_total 5,240,624; player_stats positive 7,642,084 plus negative 1,173,003; and a top_sellers row's review_summary.total_reviews 2,603,804. Pick one source and stay on it for the life of a comparison. reviews.summary is the one that matches the review histogram on the store page.
Why is review_summary null on search results but filled in on top_sellers?▾
The two actions read different Steam endpoints. A keyword search goes through the store's search path, which returns metascore but leaves review_summary, release_date and tagids null. top_sellers and the faceted path return review_summary as {class, summary, positive_pct, total_reviews} - a measured CS2 row read positive, "Very Positive", 86, 2603804 - along with release_date and tagids, but no metascore. If you need both halves for one title, take the appid from the list and call app_detail.
What format is release_date, and what does an unreleased game look like?▾
It is Steam's own display string in the store language you asked for, not a parseable timestamp: app_detail returned {"coming_soon": false, "date": "Aug 21, 2012"}, and a top_sellers row carried "Sep 3, 2026" for a title not yet out. Read coming_soon rather than comparing the string to today, and expect the wording to change with the lang parameter. The one place a real timestamp appears is app_release_date inside each review object, which is unix seconds delivered as a string such as "1345568400".
Are the playtime numbers in reviews hours or minutes?▾
Minutes. A measured review author had playtime_forever 6607, playtime_at_review 6584 and playtime_last_two_weeks 22, which is roughly 110 hours in total and not 6,607. last_played beside them is unix seconds, as are timestamp_created and timestamp_updated. Pass redact_pii=true if you want the whole author block - steamid, persona name, profile URL, avatar and playtimes - dropped from each review.
What is the owners field, and why are average_forever and userscore zero?▾
player_stats blends two sources. owners comes from SteamSpy as a bucket string rather than a number, since SteamSpy estimates a range: appid 730 returned "100,000,000 .. 200,000,000". In the same measured response average_forever, average_2weeks, median_forever and userscore were all 0, which reflects SteamSpy no longer publishing those figures rather than a genuine zero. current_players is the field that is live and real, reading 732,271 concurrent at the time of the call.
How do I page through reviews, and what does language expect?▾
Reviews page with an opaque cursor rather than an offset. The first call defaults to cursor "*" and returns a cursor in the payload - a measured one read "AoJw0of+laADc5PO+gY=" - which you pass back to get the next page. num_per_page is 1 to 100 and is clamped. The language parameter takes Steam's own language names rather than ISO codes: measured reviews carried language values such as "brazilian", and the default is "all".
What comes back for an appid that does not exist?▾
A clean rejection that names the region it looked in: appid 999999999 returned ok:false with code NOT_FOUND and the message "appid 999999999 not found or unavailable in cc=us". The mention of cc matters, because a real appid can be genuinely unavailable in one store region while resolving in another. Region-locked and delisted titles fail the same way, so retrying with a different cc is a reasonable second step.
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.
25 Media, Film & Knowledge APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Steam, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 183 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-08-30.