Steam Review Scraper & Analyzer avatar

Steam Review Scraper & Analyzer

Pricing

from $0.10 / 1,000 review scrapeds

Go to Apify Store
Steam Review Scraper & Analyzer

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

Alex Lavricheva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

  1. Go to the Input tab and choose your scrape mode: by category or by one or more specific Game IDs
  2. Set your filters (sentiment, min hours played, keyword, date range, etc.)
  3. 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
  4. Click Start and wait for the run to finish
  5. 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

FieldDescription
gameIdSteam App ID
titleGame title
urlSteam store page URL
currentPriceCurrent Steam price (including sale price if applicable)
tagsSteam tags (e.g. Multiplayer, Story Rich, Co-op)
reviewsArray of filtered reviews. Each entry has votedUp, hoursAtReview, text, timestamp, and optionally devReply
sentimentBreakdownOverall sentiment from Steam: label (e.g. "Very Positive"), positive %, and negative %
topPraiseAI-generated summary of most praised aspects (getMostCommon only)
topComplaintAI-generated summary of most criticised aspects (getMostCommon only)
keywordMentionCountNumber 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
devRepliesArray of developer reply texts, one per matched review (devReplied: true only)
hoursBracketsArray 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 gameId for 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 reviewsAfterDate to the day of a patch release and sentiment: "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.