Steam Review Scraper & Analyzer
Pricing
from $0.10 / 1,000 review scrapeds
Steam Review Scraper & Analyzer
Scrape Steam game reviews with optional Claude AI analysis, get the top praised and criticized aspects per game, keyword sentiment breakdowns, and playtime-based sentiment trends.
Pricing
from $0.10 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Alex Lavricheva
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does Steam Review Scraper & Analyzer do?
Steam Review Scraper & Analyzer lets you scrape and analyze player reviews from Steam by game category or specific game IDs. It extracts structured review data and uses Claude AI to surface what players love and hate most, how sentiment shifts with playtime, and whether developers are engaging with their community. Run it on the Apify platform for easy scheduling, API access, proxy rotation, and dataset export in any format.
Why use Steam Review Scraper & Analyzer?
- Market research - understand player pain points and praise before launching or updating a game
- Competitor analysis - see exactly what players love or hate about games in your category
- Post-patch monitoring - filter reviews by date to measure player reception after an update
- Community health checks - track whether sentiment worsens or improves as players accumulate hours
- Dev engagement tracking - surface only reviews where developers have replied
- Choosing games - Find the games per category you will like
How to use Steam Review Scraper & Analyzer
- Go to the Input tab and choose your scrape mode: by category or by one or more specific Game IDs
- Set your filters (sentiment, min hours played, keyword, date range, etc.)
- Choose a run mode: get AI-summarized top complaints/praise (
getMostCommon), see how sentiment shifts by hours played (groupByHours), both. You can also get only reviews with dev replies - Click Start and wait for the run to finish
- Go to the Output tab to view results, or download the dataset as JSON, CSV, HTML, or Excel
Output
Results are saved to the default Apify dataset and can be downloaded in JSON, CSV, HTML, or Excel format.
Example output item (getMostCommon mode):
{"gameId": "1245620","title": "ELDEN RING","url": "https://store.steampowered.com/app/1245620/ELDEN_RING/","currentPrice": "$39.99","tags": ["Souls-like", "RPG", "Open World", "Dark Fantasy"],"reviews": [{ "votedUp": true, "hoursAtReview": 24.5, "text": "One of the greatest games ever made...", "timestamp": 1704067200 },{ "votedUp": false, "hoursAtReview": 8.2, "text": "Performance issues killed it for me.", "timestamp": 1704153600 }],"sentimentBreakdown": {"label": "Overwhelmingly Positive","positive": "97%","negative": "3%"},"topPraise": "Incredibly rewarding exploration and boss design","topComplaint": "Performance issues and network instability in co-op"}
Example output item (groupByHours mode):
{"gameId": "1245620","title": "ELDEN RING","url": "https://store.steampowered.com/app/1245620/ELDEN_RING/","currentPrice": "$39.99","tags": ["Souls-like", "RPG", "Open World"],"reviews": [{ "votedUp": true, "hoursAtReview": 24.5, "text": "One of the greatest games ever made...", "timestamp": 1704067200 }],"sentimentBreakdown": {"label": "Overwhelmingly Positive","positive": "97%","negative": "3%"},"hoursBrackets": [{"hoursBracket": "0–20 hours","positivePercent": 72,"negativePercent": 28,"reviewCount": 145},{"hoursBracket": "20–50 hours","positivePercent": 65,"negativePercent": 35,"reviewCount": 267,"mostCommonPraise": "Satisfying difficulty curve","mostCommonComplaint": "Confusing late-game progression"}]}
Data table
| Field | Description |
|---|---|
gameId | Steam App ID |
title | Game title |
url | Steam store page URL |
currentPrice | Current Steam price (including sale price if applicable) |
tags | Steam tags (e.g. Multiplayer, Story Rich, Co-op) |
reviews | Array of filtered reviews. Each entry has votedUp, hoursAtReview, text, timestamp, and optionally devReply |
sentimentBreakdown | Overall sentiment from Steam: label (e.g. "Very Positive"), positive %, and negative % |
topPraise | AI-generated summary of most praised aspects (getMostCommon only) |
topComplaint | AI-generated summary of most criticised aspects (getMostCommon only) |
keywordMentionCount | Number of reviews mentioning the keyword (keyword set, no sentiment filter) |
keywordPraisedPercent | % of keyword-mentioning reviews where the keyword is used positively |
keywordCriticizedPercent | % of keyword-mentioning reviews where the keyword is used negatively |
devReplies | Array of developer reply texts, one per matched review (devReplied: true only) |
hoursBrackets | Array of sentiment breakdowns per hours-played bracket (groupByHours only). Each entry has hoursBracket, positivePercent, negativePercent, reviewCount, and optionally mostCommonPraise/mostCommonComplaint when getMostCommon is also enabled |
Pricing / Cost estimation
Tips and advanced options
- Use
gameIdfor precision — if you know exactly which games you want, passing App IDs directly is faster and cheaper than scraping a whole category - Combine
getMostCommon+groupByHours— enabling both gives you AI-summarized feedback broken down by playtime bracket, ideal for understanding how player perception evolves - Post-patch analysis — set
reviewsAfterDateto the day of a patch release andsentiment: "negative"to quickly identify emerging complaints - Concurrency — this Actor uses HTTP/Cheerio (not a browser), so it's fast and lightweight. Avoid setting very high concurrency to stay respectful of Steam's servers
FAQ, disclaimers, and support
What happens if isOnSale: true but no games are on sale?
The Actor will return an empty dataset for that run. No error is thrown — it simply finds no matching games. Try running again during a Steam sale event.
I need a custom feature or have found a bug. Please open an issue in the ../../issues. Custom solutions and bulk data needs can also be discussed there.