Steam Reviews Scraper — Game Reviews & Playtime
Pricing
from $2.00 / 1,000 reviews
Steam Reviews Scraper — Game Reviews & Playtime
Scrape Steam game reviews: full review text, recommended or not, votes up and funny, comment count, date, language, and the reviewer's playtime at review, total playtime, games owned and review count, plus each game's overall positive percentage. No API key.
Pricing
from $2.00 / 1,000 reviews
Rating
0.0
(0)
Developer
Hichem Ben Moussa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape Steam game reviews with the one signal no other review source has: how long the reviewer actually played.
Full review text, recommended or not, helpful and funny votes, review date, language, and the reviewer's playtime at the moment they wrote it, their total playtime, how many games they own and how many reviews they have written — plus each game's overall positive percentage.
No API key required.
What you get
| Field | Description |
|---|---|
review | Full review text |
isPositive, recommendation | Thumbs up or down, as a boolean and as a label |
playtimeAtReviewHours | Hours played when the review was written |
playtimeTotalHours | Hours played now — a much higher number means they kept playing after a bad review |
playtimeLast2WeeksHours | Whether they still play it |
votesUp, votesFunny, commentCount | Community response |
weightedVoteScore | Steam's own helpfulness weighting |
createdAt, updatedAt | Review dates |
language | Review language |
steamPurchase, receivedForFree | Whether they paid, and whether the copy was free |
writtenDuringEarlyAccess | Review predates 1.0 |
onSteamDeck | Played mainly on Steam Deck |
authorName, authorSteamId, authorProfileUrl | Reviewer identity as Steam publishes it |
authorGamesOwned, authorReviewCount | Reviewer credibility |
appName, developers, publishers, genres | Game context |
appTotalReviews, appTotalPositive, appTotalNegative | Store-wide counts |
appPositivePercent, appReviewScoreDesc | e.g. 85.8 and Very Positive |
Example input
{"apps": ["730"],"language": "english","sortBy": "recent","maxReviewsPerApp": 300}
Build a complaints backlog from players who actually know the game:
{"apps": ["https://store.steampowered.com/app/730/"],"onlyNegative": true,"minPlaytimeHours": 50,"keyword": "cheaters"}
App IDs can be given as a bare number or as any Steam store URL.
Example output
{"appName": "Counter-Strike 2","recommendation": "Not Recommended","review": "cheater's don't even try to hide that they are cheating, top 100 are full of cheaters...","playtimeAtReviewHours": 953.2,"playtimeTotalHours": 1024.9,"votesUp": 12,"createdAt": "2026-09-25T18:22:41.000Z","language": "english","steamPurchase": true,"authorGamesOwned": 168,"appTotalReviews": 9893037,"appPositivePercent": 85.8,"appReviewScoreDesc": "Very Positive"}
Who uses this
- Game studios — read what players with 100+ hours say, separately from what players with 20 minutes say. The
minPlaytimeHoursfilter is the whole point. - Publishers evaluating a genre — sentiment and complaint themes across competing titles
- Community and support teams — catch a post-patch review-bomb the day it starts, via
sortBy: recenton a schedule - Market researchers — positive percentage over time, by language, tells you which regions a game is failing in
- Store and review aggregators — a full review corpus with reviewer context
- Sentiment and LLM pipelines — dated, versioned, language-tagged text with a credibility signal attached
playtimeAtReviewHours versus playtimeTotalHours is the interesting pair: a negative review at 10 hours from someone who has since played 400 is a very different datum from one at 10 hours who stopped there.
Why playtime changes the analysis
Every other review platform gives you a star and some text. Steam tells you the reviewer had 953 hours in the game. That turns review mining from vibes into something you can weight:
- Filter to reviewers above a playtime threshold and the noise largely disappears
authorReviewCountandauthorGamesOwnedsurface drive-by accountsreceivedForFreeseparates paying players from key recipientswrittenDuringEarlyAccessstops pre-1.0 complaints polluting a launch retrospective
Notes
- Language matters to your result count. The default is
english; set it toallto pull every language, which is what you want for regional sentiment and gives you many more reviews. sortBy: recentis the right choice for monitoring, and Most helpful for a one-off qualitative read. Steam's pagination is cursor-based, and the actor stops when a page returns nothing new rather than trusting the cursor to end.- Steam keeps issuing a cursor indefinitely, so an all-duplicate page is the real end of the feed. Handled.
- Review counts in
query_summaryreflect your language and type filters, not the game's global totals, when those filters are set — the store-wide figures in each row come from the same filtered summary, so read them as "within this slice". - Reviewer names and profile URLs are published by Steam on the public store page; treat them as public profile data and handle them accordingly.
Pricing
Pay per result. Each review returned counts as one result, and the playtime, keyword and sentiment filters are applied before charging — so a run that keeps only negative reviews from 50-hour players bills for just those.
Notes
- Data comes from Steam's public review API and store details endpoint.
- This is an unofficial actor and is not affiliated with Valve or Steam.