Steam Game Reviews Scraper - Text, Votes, Playtime
Pricing
from $0.50 / 1,000 reviews
Steam Game Reviews Scraper - Text, Votes, Playtime
Export Steam user reviews for any game: review text, recommended or not, helpful votes, language, playtime at review and the game's overall score. Uses Steam's official public review endpoint; no login, no API key.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
Kasumi Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Share
Export Steam user reviews for any game as clean rows: review text, recommended or not, helpful and funny votes, language, dates, the reviewer's playtime at the time of the review, and the game's overall review score.
The Actor uses Steam's official public review endpoint (store.steampowered.com/appreviews, documented in the Steamworks docs). No login, no API key, no proxy. 50 reviews take a few seconds.
What you can do with it
- Read what players say about your game or a competitor's after a patch, sale or launch.
- Collect negative reviews only, in one language, to find recurring complaints.
- Feed review text into sentiment analysis or an LLM for topic clustering.
- Track new reviews daily by scheduling the Actor with
reviewedWithinDays: 1. - Compare playtime-at-review between positive and negative reviewers.
Input
| Field | What it does |
|---|---|
games | Steam App IDs or store URLs, one per line: 730, https://store.steampowered.com/app/1245620/ELDEN_RING/. |
sortBy | recent (newest first, default), updated (recently edited) or all (Steam's "most helpful" ranking). |
reviewType | all, positive or negative. |
language | Steam language code: english, schinese, japanese, german, russian, ... or all. |
purchaseType | all, steam (bought on Steam) or non_steam_purchase (keys, gifts). |
reviewedWithinDays | Keep only reviews written in the last N days. |
maxReviewsPerGame | 0 means every review that matches. |
maxItems | Stop after this many reviews in total. |
Negative English reviews from the last week for two games:
{"games": ["1245620", "https://store.steampowered.com/app/413150/Stardew_Valley/"],"reviewType": "negative","language": "english","reviewedWithinDays": 7,"maxReviewsPerGame": 500}
Output
One item per review:
{"reviewId": "237965091","appId": "730","gameSlug": "CounterStrike 2","url": "https://store.steampowered.com/app/730/","recommended": false,"review": "MAG-7 is the only weapon that doesn't do a sneeze amount of damage","language": "english","createdAt": "2026-10-17T20:52:09.000Z","updatedAt": "2026-10-17T20:52:09.000Z","votesHelpful": 0,"votesFunny": 0,"weightedVoteScore": 0.5,"commentCount": 0,"steamPurchase": true,"receivedForFree": false,"writtenDuringEarlyAccess": false,"primarilySteamDeck": false,"developerResponse": null,"developerResponseAt": null,"authorPlaytimeHours": 629.3,"authorPlaytimeAtReviewHours": 629.3,"authorPlaytimeLastTwoWeeksHours": 19.2,"authorGamesOwned": 65,"authorReviewCount": 2,"gameReviewScore": "Very Positive","gameTotalReviews": 9929430,"gameTotalPositive": 8518638,"gameTotalNegative": 1410792,"scrapedAt": "2026-10-17T22:03:14.229Z"}
gameSlugis taken from the store URL when you give one; with a bare App ID it isnull.- Playtime is in hours.
gameTotalReviewsand the positive/negative counts are Steam's totals for the filters you chose (language, purchase type), so they change with the input. - Reviewer Steam IDs, names and profile links are not included.
Limits and notes
- Steam returns 100 reviews per request; the Actor pauses briefly between requests. Very popular games have millions of reviews, so set
maxReviewsPerGameorreviewedWithinDays. - With
sortBy: all,reviewedWithinDaysis passed to Steam (up to 365 days). Withrecent, the run stops as soon as it reaches older reviews. - Steam may hide reviews it flags as off-topic (review bombing) depending on its own filters.
- Game metadata (price, tags, description) is not included.
Pricing
You pay per review saved to the dataset, plus a tiny fee per run start.