Steam Game Reviews & Ratings Scraper
Pricing
from $5.00 / 1,000 results
Steam Game Reviews & Ratings Scraper
Scrape Steam game reviews in bulk via Steam's official public reviews API. Extract ratings, sentiment (positive/negative), review text, playtime, helpful votes, reviewer language and purchase type.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
coolinbex
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Steam Reviews Scraper — Bulk Game Reviews, Ratings & Sentiment Export
Extract Steam game reviews at scale — ratings, sentiment, review text, playtime, helpful votes, language, and purchase type — using Steam's own public reviews API. No login, no cookies, no API key, and no browser automation required, so there's nothing fragile to break.
What this actor does
- Accepts any mix of Steam appId (
730), store URL (https://store.steampowered.com/app/730/), or plain game name ("Counter-Strike 2", auto-resolved via Steam's search API). - Paginates through reviews reliably, including a guard against a documented Steam API bug where the pagination cursor can repeat instead of signalling the end of results.
- Outputs one clean, flat record per review plus a per-game rating summary (total positive/negative, review score, "Very Positive" style description).
- Retries transient network/5xx/429 errors with backoff, and fails fast on permanent errors (like an invalid appId) instead of wasting compute.
- Works entirely off Steam's public JSON endpoints — no residential proxies needed.
Who this is for
- Game developers & publishers monitoring sentiment after a launch or patch.
- Market researchers & competitive analysts comparing reception across titles.
- Data scientists building sentiment-analysis or recommendation datasets.
- Game journalists & content creators sourcing player quotes and rating trends.
Input
| Field | Type | Description |
|---|---|---|
games | array of strings | Required. Steam appIds, store URLs, or game names. |
maxReviewsPerGame | integer | Max reviews to collect per game. Default 200. |
reviewType | all | positive | negative | Filter by sentiment. Default all. |
language | string | Steam language code, or all. Default all. |
filter | recent | updated | all | Sort order. recent is recommended for full, reliable extraction. Default recent. |
dayRange | integer | Only used when filter is all. Max 365. |
purchaseType | all | steam | non_steam_purchase | Filter by purchase source. Default all. |
includeOffTopicActivity | boolean | Include reviews flagged as off-topic "review bombs". Default false. |
summaryOnly | boolean | Skip individual reviews, output only per-game rating summaries. Default false. |
requestDelayMs | integer | Delay between requests. Default 350. |
Example input
{"games": ["730", "https://store.steampowered.com/app/1245620/ELDEN_RING/", "Hades"],"maxReviewsPerGame": 500,"reviewType": "all","language": "english","filter": "recent"}
Output
One dataset item per review:
{"appId": "730","appName": null,"recommendationId": "231560947","steamId": "76561198769876625","language": "english","review": "Great game, still going strong.","votedUp": true,"votesUp": 12,"votesFunny": 0,"weightedVoteScore": "0.52","commentCount": 0,"steamPurchase": true,"receivedForFree": false,"writtenDuringEarlyAccess": false,"timeCreated": "2026-07-29T03:06:15.000Z","timeUpdated": "2026-07-29T03:06:15.000Z","playtimeForeverHours": 189.2,"playtimeAtReviewHours": 189.2,"numGamesOwned": 42,"numReviewsByAuthor": 3,"scrapedAt": "2026-09-14T10:00:00.000Z"}
Plus one summary record per game:
{"type": "GAME_SUMMARY","appId": "730","appName": null,"reviewScore": 9,"reviewScoreDesc": "Overwhelmingly Positive","totalPositive": 2100000,"totalNegative": 150000,"totalReviews": 2250000,"reviewsScrapedThisRun": 500}
Download results as JSON, CSV, Excel, or push them straight to your own database via Apify's integrations.
Why "recent" instead of "all" for sort order
Steam's all filter (sorted by helpfulness) uses a sliding day-range window and is more
prone to the pagination-cursor bug mentioned above. This actor's cursor-loop guard
prevents an infinite loop either way, but recent/updated terminate cleanly and are
recommended when you want a complete, reliable pull.
Notes
This actor reads only publicly available review text and public author Steam IDs via
Steam's official appreviews endpoint — the same data visible to anyone on the game's
store page. Use responsibly and in line with Steam's terms of service and applicable
data-protection law in your jurisdiction.