Steam Review Monitor - Game Review, Score & Player Tracker avatar

Steam Review Monitor - Game Review, Score & Player Tracker

Pricing

$4.00 / 1,000 game record returneds

Go to Apify Store
Steam Review Monitor - Game Review, Score & Player Tracker

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

CQ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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. cheaters mentions 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:

EndpointWhat it provides
store.steampowered.com/appreviews/<appid>Recent reviews + global review-score summary
api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayersLive concurrent-player count
store.steampowered.com/api/appdetailsName, developers, genres, price, release date

No headless browser, no proxies, no API key. Pure HTTP, which keeps it fast and cheap.

Input

FieldTypeDescription
appIdsarraySteam appids (e.g. 730) or store URLs to monitor.
competitorAppIdsarrayCompetitor games to track side-by-side.
languagestringReview language (all, english, schinese, …). Default all.
reviewTypestringall, positive, or negative.
purchaseTypestringall, steam, or non_steam_purchase.
maxReviewPagesintegerRecent-review pages per game (1–10; 100/page). Default 3.
dayRangeintegerLimit recent reviews to the last N days (1–365).
countryCodestringCountry for store pricing. Default us.
sinceLastRunbooleanReport only what's new since the previous run. Default true.
includeReviewTextbooleanInclude the raw review body. Default true.
themeKeywordsobjectCustom theme -> [keywords] map for tagging.
negativeSpikeThresholdnumberNegative-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.

  • Schedule it daily (or hourly around a patch/launch). sinceLastRun: true makes each run a clean changelog of new reviews, player swings, and theme spikes.
  • Wire the digest to alerts — push the changeDigest and isNegativeSpike fields 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; countryCode only changes the store price returned by appdetails, 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. recentPeakPlayerCount is the highest concurrent count this monitor has observed across its own runs — not Steam's all-time peak.
  • Bounded review depth. maxReviewPages caps 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 null for 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 Steam appdetails, which can return nothing for unreleased, delisted, or region-restricted apps. currentPlayerCount is null for 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.