Steam Reviews & Games Scraper – Prices, Players & Top Sellers
Pricing
from $2.00 / 1,000 games
Steam Reviews & Games Scraper – Prices, Players & Top Sellers
Steam reviews and games scraper without login: user reviews via the new GetAppReviews API, review scores, prices and discounts by country, developers, genres, Metacritic, current player counts, top sellers, specials, new releases and store search. Pay per result.
Pricing
from $2.00 / 1,000 games
Rating
0.0
(0)
Developer
Enes Bulanık
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Steam reviews and games scraper without login: user reviews via the new GetAppReviews API, review scores, prices and discounts by country, developers, genres, Metacritic, current player counts, top sellers, specials, new releases and store search. Pay per result.
Uses Steam's new GetAppReviews API. Valve retires the old appreviews endpoint on 22 Oct 2026. Steam reviews keep working after Valve switches off
store.steampowered.com/appreviews. No API key needed.
Price: $2 per 1,000 games (full store record, review score and live player count included) and $0.30 per 1,000 reviews. Invalid ids and empty results are free.
What does Steam Scraper do?
It uses Steam's own public endpoints: the store appdetails API, store search and the official Steam Web API (IUserReviewsService/GetAppReviews for reviews and review scores, ISteamUserStats/GetNumberOfCurrentPlayers for live players). It turns them into one consistent game record:
- Game info:
appId,name,url,appType(game, dlc, demo...), developers, publishers, genres, categories (Single-player, Steam Achievements, Controller support...), platforms - Prices by country: regular price, current price,
discountPercent,currencyand formatted price for any store region (us,de,gb,tr,br,jp...) - Ratings:
reviewScoreDesc(e.g. Very Positive), positive %, total, positive and negative review counts, Metacritic score, recommendations - Current players: players in game right now
- Release: release date as shown and as ISO date, coming-soon flag
- Extras: achievements count, DLC count, required age, controller support, supported and full-audio languages, short description, header and capsule images, website, screenshot and video counts, Steam tag ids
- Reviews: text, recommended or not, playtime at review, language, date, helpful and funny votes, Steam purchase / free key / Early Access flags, developer response
Modes
| Mode | What you get |
|---|---|
topSellers (default) | Steam's global top sellers chart for your country |
specials | Discounted games, biggest sales first |
newReleases | Popular new releases |
comingSoon | Popular upcoming games |
search | Store search by keyword, with sorting and a max-price filter |
appDetails | Full records for the app ids, store URLs or game names you enter |
reviews | Steam user reviews of those apps via GetAppReviews, filtered by language(s), positive/negative, purchase type, newest, updated, most helpful or funniest |
currentPlayers | Live player counts for those apps (compact record) |
Details
- One Actor for four data types. Store data, review scores, user reviews and live player counts.
- Real prices per country. Set
countryand get local prices and currency. - No browser. It makes plain HTTP calls to Steam endpoints. The default run (top 10 sellers with full details) takes about 15 seconds.
- Steam API change. Valve retires the old
appreviewsJSON endpoint on 22 Oct 2026. This Actor already reads reviews from the official replacement,IUserReviewsService/GetAppReviews. The old endpoint is kept only as an automatic fallback until it is switched off. - No reviewer identities. Reviews include only the reviewer's playtime and review/game counts. Steam IDs, names, avatars and profile links are never output.
- Errors are free. Unknown app ids, delisted games and empty searches produce a free
errorrow.
Use cases
- Game market research: track top sellers, new releases and discounts by country, genre and price.
- Price tracking and deal alerts: run
specialsdaily and alert on discounts above 50%. - Player sentiment analysis: pull thousands of reviews, filter negative ones, and feed them to an LLM to find common complaints.
- Live game health dashboards: schedule
currentPlayersfor your game and competitors every hour. - Publisher and investor scouting: compare review scores, recommendations and player counts of indie hits.
- Datasets for ML/AI: labeled review text (
votedUp) in 25+ languages.
How to use it
- Click Try for free or Start.
- Pick a Mode. For
appDetails,reviewsandcurrentPlayers, enter Steam apps as ids (730), store URLs or names (Baldur's Gate 3). - Optionally set Country (prices), Store language, Max games and review filters.
- Click Start and download the results, or connect them to Google Sheets, Make, Zapier, n8n, webhooks or the API.
Input
| Field | Type | Description |
|---|---|---|
mode | enum | topSellers (default), specials, newReleases, comingSoon, search, appDetails, reviews, currentPlayers |
searchTerm | string | Keyword for search, e.g. roguelike |
appIds | array | App ids, store URLs or names for appDetails, reviews and currentPlayers |
maxItems | integer | Max games. Default 10 |
country | string | Store region / currency, e.g. us (default), de, gb, tr |
language | string | Store language, e.g. english (default), german, schinese |
sortBy | enum | relevance (default), released, reviews, name, priceAsc, priceDesc |
onlyGames | boolean | Skip DLC, soundtracks and software in search and lists. Default true |
maxPrice | integer | Max price in whole currency units for search and lists. 0 = any |
fetchDetails | boolean | Full store record per game in search and lists. Default true |
includeReviewSummary | boolean | Add the all-languages review score. Default true |
includeCurrentPlayers | boolean | Add live player counts. Default true |
maxReviewsPerApp | integer | Reviews per app. Default 50 |
reviewFilter | enum | recent (default), updated, all (most helpful, last 365 days), funny |
reviewLanguage | string | all (default), a Steam language such as english, or several: german,french |
reviewType | enum | all, positive, negative |
purchaseType | enum | all, steam, non_steam_purchase |
proxyConfiguration | object | Optional, for very large runs |
Example: German specials under €20
{"mode": "specials","country": "de","language": "german","maxPrice": 20,"maxItems": 100}
Example: 500 newest negative English reviews of two games
{"mode": "reviews","appIds": ["1091500", "Baldur's Gate 3"],"maxReviewsPerApp": 250,"reviewLanguage": "english","reviewType": "negative"}
Output
Real output from test runs (shortened).
Game
{"type": "game","mode": "appDetails","appId": 1086940,"name": "Baldur's Gate 3","url": "https://store.steampowered.com/app/1086940/","appType": "game","rankInList": null,"isFree": false,"priceInitial": 59.99,"priceFinal": 41.99,"discountPercent": 30,"currency": "USD","priceFormatted": "$41.99","platforms": ["windows", "mac"],"releaseDate": "Aug 3, 2023","releaseDateIso": "2023-08-03","comingSoon": false,"developers": ["Larian Studios"],"publishers": ["Larian Studios"],"genres": ["Adventure", "RPG", "Strategy"],"categories": ["Single-player", "Multi-player", "Co-op", "Online Co-op", "Steam Achievements", "Full controller support", "Steam Cloud"],"reviewScoreDesc": "Overwhelmingly Positive","reviewPositivePercent": 96.8,"reviewCount": 861050,"reviewsPositive": 833357,"reviewsNegative": 27693,"currentPlayers": 43391,"metacriticScore": 96,"metacriticUrl": "https://www.metacritic.com/game/pc/baldurs-gate-3?ftag=MCD-06-10aaa1f","recommendations": 757845,"achievementsCount": 54,"requiredAge": 17,"controllerSupport": "full","dlcCount": 2,"shortDescription": "Baldur’s Gate 3 is a story-rich, party-based RPG set in the universe of Dungeons & Dragons...","headerImage": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1086940/48a2fcbda8565bb45025e98fd8ebde8a7203f6a0/header.jpg?t=1777363040","website": "https://baldursgate3.game","supportedLanguages": ["English", "French", "German", "Spanish - Spain", "Polish", "Russian", "Simplified Chinese", "Turkish"],"fullAudioLanguages": ["English"],"screenshotsCount": 19,"moviesCount": 6,"tagIds": [],"scrapedAt": "2026-10-07T21:12:24.990Z"}
In list modes rankInList is the position in the chart, and tagIds holds the Steam tag ids from the search page.
Review
{"type": "review","appId": 620,"recommendationId": "237009238","language": "english","votedUp": false,"text": "Portal 2 is honestly not that good. I REALLY wanted to like this game...","playtimeHours": 19.5,"playtimeForeverHours": 19.5,"playtimeLastTwoWeeksHours": 0.8,"authorNumReviews": 9,"authorNumGamesOwned": null,"createdAt": "2026-10-05T23:32:25.000Z","updatedAt": "2026-10-05T23:33:27.000Z","votesUp": 0,"votesFunny": 0,"weightedVoteScore": 0.4317,"commentCount": 0,"steamPurchase": true,"receivedForFree": false,"writtenDuringEarlyAccess": false,"primarilySteamDeck": false,"developerResponse": null,"url": "https://store.steampowered.com/app/620/"}
Current players (currentPlayers mode)
{ "type": "game", "mode": "currentPlayers", "appId": 730, "name": "Counter-Strike 2", "url": "https://store.steampowered.com/app/730/", "appType": "game", "currentPlayers": 854705 }
Error (free)
{ "type": "error", "appId": 99999999, "url": "https://store.steampowered.com/app/99999999/", "errorCode": "NOT_FOUND", "error": "Steam has no store page data for app 99999999 in country \"us\" (wrong id, delisted or region-locked)." }
Possible errorCode values: NOT_FOUND, NO_RESULTS, NO_PLAYER_DATA, INVALID_INPUT, RATE_LIMITED, FETCH_FAILED.
Field notes
- Prices are in major units (
41.99, not cents). Free games haveisFree: true, price0andcurrency: null. reviewScoreDescand the review counts cover all languages when Include review score is on. Without it, list modes show Steam's search-page score, which is based on your store language.authorNumGamesOwnedis kept for compatibility but isnullfor reviews from GetAppReviews, because Steam's new API no longer returns the reviewer's game count. All other review fields are unchanged.releaseDateIsois filled for English store dates. Other languages keep the localizedreleaseDate.- With
fetchDetails: false, list and search records contain only the search-page fields: name, prices, discount, platforms, release date, review score and capsule image.
The dataset has ready-made views: Games overview, Game details, Reviews and Errors & status.
Pricing
Pay per event: you only pay for data you receive. Platform usage is included.
| Event | Price | When it is charged |
|---|---|---|
game | $0.002 per game ($2 / 1,000) | Each game record saved, in any mode (review score and player count included) |
review | $0.0003 per review ($0.30 / 1,000) | Each user review saved |
| Errors | Free | Unknown ids, delisted apps, empty searches |
| Job | Cost |
|---|---|
| Default run (top 10 sellers, full details) | $0.02 |
| 100 specials in Germany | $0.20 |
| 5,000 reviews of one game | $1.50 |
| Hourly player counts for 10 games for a day | 24 × 10 × $0.002 = $0.48 |
Set Max cost per run in the run options and the Actor stops cleanly at your budget.
Use with AI agents (MCP)
This Actor works as a tool for AI agents through the Apify MCP server. Add it with https://mcp.apify.com?tools=openharvest/steam-scraper, or let the agent find it with search-actors ("steam reviews").
Example call-actor input an agent can use to answer "What do players complain about in Cyberpunk 2077 lately?":
{"mode": "reviews","appIds": ["Cyberpunk 2077"],"reviewType": "negative","reviewLanguage": "english","maxReviewsPerApp": 100}
The agent reads text, playtimeHours and createdAt. This run takes a few seconds and costs $0.03.
FAQ
Does it still work after Steam retires the appreviews endpoint on 22 Oct 2026?
Yes. Reviews and review scores already come from Steam's new Web API method IUserReviewsService/GetAppReviews. The old store.steampowered.com/appreviews/<appid>?json=1 endpoint is used only as a fallback while it still answers. The output fields are the same as before.
Do I need a Steam account or Web API key? No. Every endpoint used is public and keyless.
How many games or reviews can I get? Search and lists go through every result Steam shows (often thousands). For reviews, Steam returns everything that matches your filters via cursor pagination. Popular games have hundreds of thousands of reviews.
Why are some prices missing?
Unreleased games, free games and apps not sold in your country have no price. A different country can also change availability.
Is there a rate limit?
Steam allows about 200 store-detail requests per 5 minutes per IP. Keyless GetAppReviews calls share a lower limit. The Actor paces each endpoint separately and honors Retry-After. After an HTTP 429 it doubles the gap between requests, then speeds up again slowly. In tests it fetched 1,200 reviews of one game in about 17 seconds without being throttled. For runs with thousands of games, enable Apify Proxy or set fetchDetails: false, which needs one request per 50 games.
Can I get the full Steam app list?
Steam removed the keyless GetAppList endpoint. Use search (for example sorted by released) or the list modes to discover apps, then appDetails.
Do you scrape user profiles? No. Reviews contain no Steam IDs, names, avatars or profile URLs, only playtime and the reviewer's review and game counts.
Is it legal to scrape Steam?
This Actor only reads publicly available store data that Steam shows to every visitor without login, through Valve's own public endpoints. It does not log in or collect personal data: reviewer identities are dropped. Review texts are user content and may be copyrighted, so use them for analysis rather than republishing. Make sure your use complies with the Steam Subscriber Agreement and applicable laws such as GDPR. If you are unsure, consult a lawyer.
Related actors
- Google Play Scraper (coming soon)
- App Store Scraper (coming soon)
- Crypto Market Data – Prices, DEX Pairs, New Tokens & OHLCV
- Telegram Channel Scraper – Public Posts, Views & Media
Support & feedback
Found a bug or a missing field? Open an issue in the Issues tab with the app id and input you used.