Steam Reviews Scraper — Exact Date Windows, No Key
Pricing
from $1.00 / 1,000 review scrapeds
Steam Reviews Scraper — Exact Date Windows, No Key
Scrape reviews for any Steam game by app id. Filter by language, positive/negative, purchase type and an exact date range. No API key, no login.
Pricing
from $1.00 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
33
Total users
11
Monthly active users
6.4 hours
Issues response
2 days ago
Last modified
Categories
Share
Scrape reviews for any game on Steam. Give it an app id or a store URL and get back the review text, the verdict, the vote counts, and a full author block — playtime, review history, Steam profile. No API key, no login, no cookies.
Ask for a date range and get that date range. Steam's own day_range filter leaks badly — asking
for 3 days returned reviews up to 3,515 days old, and a 30-day request let 33 of 60 through from
outside the window — so this scraper does not use it at all. It walks reviews newest-first and
enforces your window itself. Anything outside is never delivered and never charged, and the run log
says how many were trimmed.
What you can filter on
| Field | Type | Default | Notes |
|---|---|---|---|
appIds | array | — (required) | Numeric ids (570), store pages (store.steampowered.com/app/292030/…), community reviews pages (steamcommunity.com/app/1091500/reviews/) or old review API URLs (store.steampowered.com/appreviews/730?json=1). Several games per run; a game listed twice is scraped once |
maxItems | integer | 1000 (the form starts at 100) | Cap per game: 4 games at 1000 can return up to 4,000. A run spending limit is shared evenly across the games |
language | select | all | Steam language code, or every language |
reviewType | select | all | Positive only, negative only, or both |
purchaseType | select | all | Bought on Steam, activated from a key, or either |
onlyReviewsAfter | date | — | Start of the window, e.g. 2026-01-01 |
onlyReviewsBefore | date | — | End of the window; a bare date includes that whole day |
includeOffTopic | boolean | false | Include bursts Steam classes as off-topic review bombing |
All of these are verified live, not assumed. On The Witcher 3: negative returned 200 rows with none
recommended, positive + german returned 100 with all recommended and all German, and
non_steam_purchase returned 100 with none marked as a Steam purchase.
One caveat worth knowing. purchaseType only separates anything on a paid game. Every
acquisition of a free-to-play title counts as a Steam purchase, so on something like Dota 2 all three
settings return identical rows. That is Steam's behaviour, not a bug here.
Old windows are as fast as new ones. The date window is sent to Steam, which starts the walk at the window instead of at today. A three-day window from January 2016 on The Witcher 3 came back in 4 requests: 251 reviews, the exact count Steam reports for those days. The run log prints that count up front, and every row is still checked against your dates before it is pushed or charged.
What you get per review
Review: id, permalink, text, language, recommended or not, created and updated timestamps.
Engagement: helpful votes, funny votes, Steam's weighted vote score, comment count.
Context flags: bought on Steam, received free, written during early access, played mainly on Steam Deck, refunded.
Author: Steam id, profile URL, reviews written, and playtime (at the time of the review, lifetime,
last two weeks, and on Steam Deck at the time of the review), reported in hours rather than Steam's
raw minutes. Steam stopped sending games owned in October 2026, so authorNumGamesOwned is empty.
Also: the developer's reply and when it was posted, and the reviewer's hardware when they chose to show it.
Example input
{"appIds": ["292030"],"maxItems": 500,"language": "english","reviewType": "negative","onlyReviewsAfter": "2026-06-01","onlyReviewsBefore": "2026-08-31"}
Notes
- Steam's public review API (
IUserReviewsService/GetAppReviews) is called directly, without a key, so runs are fast and need no proxy. Steam retired the olderstore.steampowered.com/appreviewsendpoint on 22 October 2026. - Reviews are deduplicated by
recommendationidwithin a run. - Cursor pagination stops when Steam stops advancing the cursor, rather than spinning on the last page.
- A run that finds nothing says why in its status rather than returning a silent empty dataset.