Steam Review Monitor - Game Review, Score & Player Tracker
Pricing
$4.00 / 1,000 game record returneds
Steam Review Monitor - Game Review, Score & Player Tracker
Monitor Steam games for recent reviews (positive/negative split, text, author playtime), review-score deltas, live concurrent-player counts + recent peak, and a 'what changed since last run' digest. Track your game and competitors side by side. Pure HTTP on Steam's official zero-auth public APIs.
Pricing
$4.00 / 1,000 game record returneds
Rating
0.0
(0)
Developer
CQ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Steam Review Monitor — Game Review, Score & Player-Count Tracker
Monitor any Steam game's reviews, review score, and live player base — built for indie game studios who need to know what changed since yesterday without babysitting the Steam page.
Point it at your own game's appid (plus any competitors), schedule it, and every run you get:
- Recent reviews — newest-first, with positive/negative split, full review text, and the author's playtime (total, at time of review, and last two weeks). Playtime is the single best signal for separating a 0.2-hour rage-review from a 400-hour veteran's verdict.
- Review-score delta — Steam's official rating bucket (
Very Positive,Mixed, …), all-time positive/negative counts, positive share, and how each of those moved since your last run. - Live players + recent peak — current concurrent-player count from Steam's official API, plus the peak this monitor has seen across runs, and the change since last run.
- "What changed since last run" digest — new reviews (positive vs negative), player-count swing, whether the review-score bucket flipped, and spiking complaint themes (e.g.
cheatersmentions jumped from 1 → 9). - Negative-spike flag — automatically raised when the negative share of the recent window jumps past your threshold, so a review-bombing or a bad patch is flagged in the dataset as soon as your next run sees it.
- Competitor tracking — pass competitor appids and get the exact same intelligence side-by-side in one dataset.
100% real data — no mocks, no browser
Every field comes from Steam's official, zero-auth public endpoints:
| Endpoint | What it provides |
|---|---|
store.steampowered.com/appreviews/<appid> | Recent reviews + global review-score summary |
api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers | Live concurrent-player count |
store.steampowered.com/api/appdetails | Name, developers, genres, price, release date |
No headless browser, no proxies, no API key. Pure HTTP, which keeps it fast and cheap.
Input
| Field | Type | Description |
|---|---|---|
appIds | array | Steam appids (e.g. 730) or store URLs to monitor. |
competitorAppIds | array | Competitor games to track side-by-side. |
language | string | Review language (all, english, schinese, …). Default all. |
reviewType | string | all, positive, or negative. |
purchaseType | string | all, steam, or non_steam_purchase. |
maxReviewPages | integer | Recent-review pages per game (1–10; 100/page). Default 3. |
dayRange | integer | Limit recent reviews to the last N days (1–365). |
countryCode | string | Country for store pricing. Default us. |
sinceLastRun | boolean | Report only what's new since the previous run. Default true. |
includeReviewText | boolean | Include the raw review body. Default true. |
themeKeywords | object | Custom theme -> [keywords] map for tagging. |
negativeSpikeThreshold | number | Negative-share jump that trips the spike flag. Default 0.15. |
Example input
{"appIds": ["730"],"competitorAppIds": ["570"],"language": "english","maxReviewPages": 3,"sinceLastRun": true}
Output
One dataset item per game. Key fields:
{"appId": "730","name": "Counter-Strike 2","role": "primary","developers": ["Valve"],"genres": ["Action", "Free To Play"],"currentPlayerCount": 597217,"recentPeakPlayerCount": 612004,"playerCountDelta": 14787,"reviewScoreDesc": "Very Positive","totalReviews": 2559796,"totalPositive": 2209859,"positiveShareAllTime": 0.8633,"reviewScoreDelta": {"reviewScoreDescChanged": false,"totalReviewsChange": 412,"totalPositiveChange": 360},"windowSummary": {"windowReviews": 300,"windowPositive": 251,"windowPositiveShare": 0.837,"medianAuthorPlaytimeAtReviewHours": 187.4},"themeBreakdown": [{ "theme": "cheaters", "count": 41, "negativeMentions": 38, "sampleSnippets": ["..."] }],"reviews": [{"reviewId": "...","votedUp": true,"review": "...","authorPlaytimeForeverHours": 1284.5,"authorPlaytimeAtReviewHours": 1190.2,"createdAt": "2026-06-21T18:42:00.000Z"}],"isNegativeSpike": false,"changeDigest": {"isFirstRun": false,"newReviewsCount": 27,"newPositive": 22,"newNegative": 5,"playerCountDelta": 14787,"spikingThemes": [{ "theme": "cheaters", "was": 12, "now": 41 }],"isNegativeSpike": false},"scrapedAt": "2026-06-22T20:10:00.000Z"}
The Overview dataset view gives a one-row-per-game table: game, players now, recent peak, review score, total/new reviews, and the negative-spike flag.
Recommended use
- Schedule it daily (or hourly around a patch/launch).
sinceLastRun: truemakes each run a clean changelog of new reviews, player swings, and theme spikes. - Wire the digest to alerts — push the
changeDigestandisNegativeSpikefields to Slack/Discord/email via an Apify integration so a review-bomb or bad patch surfaces as soon as your next scheduled run picks it up. (The Actor writes data and flags; it does not send notifications itself.) - Watch competitors to see how a rival's launch or sale moves their player count and review score relative to yours.
Pricing
This Actor is lightweight — pure HTTP against Steam's public endpoints, with no headless browser and no proxies — so runs are cheap in compute. Your actual cost depends on the pricing model configured for the Actor on the Apify platform (e.g. pay-per-result or platform compute usage) and on how many games you monitor: adding more apps or raising maxReviewPages increases run time and the number of dataset records.
Limitations
- Global figures. Reviews and player counts are global;
countryCodeonly changes the store price returned byappdetails, not the reviews or player numbers. - Baseline on second run. The first run establishes a baseline in the Actor's key-value store (
RUN_STATE); deltas, the change digest, and score/player comparisons only populate from the second run onward. Running against a fresh or reset storage resets that baseline. - "Recent peak" is monitor-local.
recentPeakPlayerCountis the highest concurrent count this monitor has observed across its own runs — not Steam's all-time peak. - Bounded review depth.
maxReviewPagescaps the recent-review sweep at up to 10 pages × 100 = ~1,000 newest reviews per game per run. This is a rolling recent-review monitor, not a full historical review export; older reviews beyond that window are not fetched. - No proxies / rate limits. Requests go directly from the Apify server IP. The Actor self-throttles (~1 request every 0.9s) and backs off on HTTP 429/503, but very frequent runs or large app lists can still be rate-limited by Steam, in which case some fields for a game may come back partial or
nullfor that run. - Graceful on outages — expect nulls. If Steam is unreachable, rate-limits, or an app simply has no data, the Actor still writes that app's record with
null/empty fields instead of failing the run. Downstream consumers should handle missing values. - Store metadata can be missing.
name,developers,publishers,genres, and price come from Steamappdetails, which can return nothing for unreleased, delisted, or region-restricted apps.currentPlayerCountisnullfor apps Steam does not report a player count for (e.g. some non-game apps). - Not a notifier. The Actor produces data and flags (
isNegativeSpike,changeDigest); delivering alerts requires wiring the dataset to an Apify integration, and detection is only as timely as your run schedule.