Steam Reviews Scraper - Sentiment & Review-Bomb Detection
Pricing
from $1.00 / 1,000 reviews
Steam Reviews Scraper - Sentiment & Review-Bomb Detection
Extract Steam game reviews via Valve's own public API. Playtime at review, hardware specs, helpfulness votes, developer replies. Built-in review-bomb spike detection and pros/cons keyword extraction. No login, no browser.
Steam Reviews Scraper — Sentiment, Playtime & Review-Bomb Detection
Extract Steam game reviews for any app — as clean, structured JSON, built directly on Valve's own public review API. No login, no browser, no proxies, so it never breaks the way headless-browser scrapers do.
What you get per review
{"review_id": "180325487","app_id": "730","app_name": "Counter-Strike 2","recommended": true,"text": "Been playing since 1.6, still the best.","language": "english","created_at": "2026-06-01T14:22:03+00:00","updated_at": "2026-06-01T14:22:03+00:00","votes_helpful": 12,"votes_funny": 0,"weighted_vote_score": 0.63,"comment_count": 1,"steam_purchase": true,"received_for_free": false,"written_during_early_access": false,"playtime_at_review_minutes": 4820,"playtime_forever_minutes": 9143,"playtime_last_two_weeks_minutes": 620,"author_num_reviews": 8,"author_num_games_owned": 143,"author_steam_id": "76561198012345678","primarily_steam_deck": false,"hardware_os": "Windows 11","hardware_cpu": "AMD Ryzen 5 5500","hardware_gpu": "NVIDIA GeForce GTX 1650"}
Built-in analytics (free, not billed)
When includeSummary is on (default), one extra summary record per app is pushed alongside the reviews:
{"type": "summary","app_id": "730","app_name": "Counter-Strike 2","steam_review_score": 8,"steam_review_score_desc": "Very Positive","steam_total_positive": 1264535,"steam_total_negative": 214396,"steam_total_reviews": 1478931,"sample_size": 200,"review_bomb_alert": { "detected": false, "flagged_days": [] },"top_pros_keywords": [{ "word": "gameplay", "count": 14 }],"top_cons_keywords": [{ "word": "cheaters", "count": 9 }]}
- Review-bomb spike detection — flags days where review volume spikes far above the sample's median, a signal used to catch coordinated review-bombing or a patch/controversy blowing up
- Pros/cons keyword extraction — top recurring words split by recommended vs. not-recommended reviews, a quick read on why players like or dislike the game
- Steam's own review score attached to every run, so you can track sentiment drift over time on a schedule
Why this scraper
- ✅ Never breaks — built on Valve's official public review API, the same one the Steam store website itself uses
- ✅ Richer than a UI scrape — hardware specs and playtime at the moment of review aren't visible on the Steam store page itself, only through the API
- ✅ Multi-game in one run — track your own game plus competitors side by side
- ✅ Fast & cheap — no browser, no proxies, no login
- ✅ Review-bomb and sentiment signals out of the box
Use cases
- Indie devs & publishers: monitor sentiment after every patch, catch a review-bomb or cheating wave early
- Game marketing / ASO agencies: mine competitor reviews for feature gaps and messaging
- Market research & investment analysis: track public sentiment on gaming studios' flagship titles over time
- AI & NLP pipelines: feed structured review text into sentiment/LLM analysis
Input example
{"appIds": ["730", "1245620"],"reviewType": "all","filter": "recent","language": "all","purchaseType": "all","maxReviewsPerApp": 200,"includeSummary": true}
Filters
reviewType:all/positive/negativefilter:recent(newest first),all(Steam's helpfulness-ranked all-time top reviews),updatedlanguage: any Steam language code (english,schinese,german, ...) orallpurchaseType:all/steam/non_steam_purchase
FAQ
Is this legal? The actor reads Steam's publicly available review API — the same data anyone sees on the store page. No login, no private data.
Where do I find an app ID? In the game's store URL: store.steampowered.com/app/730/CounterStrike2 → 730.
How many reviews can I get? As many as Steam has for that filter — pagination follows Steam's cursor until exhausted or your maxReviewsPerApp cap is hit.