Tools / Steam Reviews Scraper – Steam API, Steam Player Count, Playtime
Steam Reviews Scraper – Steam API, Steam Player Count, Playtime
Steam player reviews as structured data: full review text, reviewer playtime, thumbs up/down, helpfulness votes and purchase type — plus a games mode with prices, genres, developers, review-score summaries, live player counts and optional SteamSpy owner estimates, peak concurrent players and crowd-voted tags. Optional watch mode (watchLabel) returns only the reviews posted since your last run, so a scheduled watch on a quiet game returns nothing and costs nothing.
Two modes in one Actor. reviews returns Steam player reviews with the full text, the reviewer's playtime at review and total, whether they recommend the game, helpfulness votes, comment count and whether it was a genuine Steam purchase — filterable by language, reviewType (positive/negative), purchaseType, minPlaytimeHours and a text keyword. Set includeOffTopic to also return the reviews Steam hides when Valve flags a stretch of time as an off-topic review bomb — 94,228 reviews for Total War: ROME II instead of 88,334. games returns the store record for each game: price and discount in any country's currency, release date, developers, publishers, genres, platforms, Metacritic score, the full review-score summary (total positive/negative and % positive) and optionally the live concurrent player count. Accepts Steam store URLs, numeric App IDs or plain game names to search. HTTP-only: no login, no API key, no headless browser.
Run it
curl -X POST https://fetchsmith.com/api/v1/run/steam-reviews-scraper \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"apps": ["https://store.steampowered.com/app/1145360/Hades/"], "dataType": "reviews", "includeGameInfo": true, "language": "english", "maxReviewsPerApp": 25, "max_results": 25, "sortBy": "recent"}'
Output fields
type appId reviewId review language recommended watchEvent previousRecommended createdAt updatedAt votesUp votesFunny weightedVoteScore commentCount steamPurchase receivedForFree writtenDuringEarlyAccess refunded steamDeck playtimeForeverHours playtimeAtReviewHours playtimeLastTwoWeeksHours authorSteamId authorName authorProfileUrl authorNumGamesOwned authorNumReviews authorLastPlayedAt reviewUrl hardwareOs hardwareCpu hardwareGpu hardwareRamMb hardwareVramMb gameName developers publishers genres releaseDate storeUrl name priceCurrency price priceInitial discountPercent platforms metacriticScore reviewScore reviewScoreDesc totalReviews totalPositive totalNegative positivePercent currentPlayers ownersEstimate ownersMin ownersMax peakConcurrentYesterday steamSpyTags steamSpyTagVotes country scrapedAt appType isFree comingSoon categories requiredAge shortDescription website headerImage supportedLanguages dlcCount
Sample output
{
"appId": 1145360,
"createdAt": "2026-09-10T03:35:39.000Z",
"developers": [
"Supergiant Games"
],
"gameName": "Hades",
"genres": [
"Action",
"Indie",
"RPG"
],
"playtimeForeverHours": 3.9,
"recommended": true,
"review": "Best roguelike I have ever played, and the story actually lands.",
"reviewId": "234888482",
"reviewUrl": "https://steamcommunity.com/profiles/76561197974061804/recommended/1145360/",
"steamPurchase": true,
"type": "review",
"votesUp": 0
}
Guides
- Steam hides review-bomb reviews from its own score by default — includeOffTopic undoes it — When a game gets review-bombed over something unrelated to the game itself, Valve flags that stretch of reviews as off-topic and excludes them from the score Steam shows you. The exclusion is silent and the gap is large — measured on three games, live.
- Four ways an invisible character makes a scraper return zero rows — all found in our own code — A trailing space, a decomposed accent, an ASCII-only tokenizer and an anchored ID regex. Each one turns a valid request into a clean SUCCEEDED run with an empty dataset. We found all four in our own Actors in four days.
- Steam quietly attaches a reviewer's PC specs to their review — for about 1 in 15 — A hardware object with RAM, OS, CPU and GPU rides along on some Steam reviews, sourced from the Hardware Survey opt-in. Measured live on two games — the rate isn't fixed, and the units aren't documented.
- Steam's review API is public JSON — but three of its silences look identical — Four public Steam endpoints, no key and no browser. Plus the failure mode that cost us 400 reviews a run: a dead cursor, an empty day range and a game that doesn't exist all return the exact same success:1 with zero reviews.
Only publicly accessible pages are read. Respect the source site's terms when using the data.