Steam Reviews Scraper — Playtime, Votes, Languages, No Login
Pricing
from $0.35 / 1,000 reviews
Steam Reviews Scraper — Playtime, Votes, Languages, No Login
Scrape Steam game reviews with author playtime, helpful/funny votes, purchase type and language — plus the game's price, genres and overall score on every row. Newest, updated or most helpful; positive/negative filters; CSV/JSON export and API.
Pricing
from $0.35 / 1,000 reviews
Rating
0.0
(0)
Developer
Chorelet
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
Get the reviews of any Steam game — by store URL, app ID or just the game's name — with the reviewer's playtime, helpful and funny votes, purchase type, language and Steam Deck flag, plus the game's price, genres, Metacritic and overall Steam score on every row. Newest first, recently updated, or Steam's "most helpful" ranking; positive-only or negative-only; per language. JSON, CSV, Excel or API.
Uses Steam's own review service — IUserReviewsService/GetAppReviews, the WebAPI endpoint that replaced the store one on 22 October 2026. Exact data, no login, no proxies, no API key.
That change is worth knowing about if you have scraped Steam before: the retired endpoint took words (filter=recent, language=all), the new one takes numbers and a list, and it does not complain about the old form — it quietly returns English reviews from Steam purchases instead. This Actor speaks the new form, so all still means all.
Why this Actor
- Already on Steam's new review API. Valve retired the old store endpoint on 22 October 2026; this Actor was moved to
IUserReviewsServicethe same week, so runs kept working — and it asks for every language and both purchase types, where the new API quietly defaults to English Steam purchases. - Games by store URL, app ID or just the name
- Reviewer playtime (total and at review time), helpful and funny votes, purchase type, language, Steam Deck flag
- Game price, genres, Metacritic and Steam's overall score on every row
- Newest, recently updated or most helpful; positive-only or negative-only
- Checked every day by an automated run
Sample output
One item of the dataset (long values shortened):
{"gameName": "Stardew Valley","reviewScoreDesc": "Overwhelmingly Positive","totalReviews": 1046591,"reviewId": "238361415","language": "schinese","recommended": true,"text": "没什么好说的,我爱种田。","createdAt": "2026-10-23T08:27:19.000Z","votesHelpful": 0,"author": {"steamId": "76561198763415585","name": null,"profileUrl": null,"reviewsWritten": 1,"playtimeHours": 42.5,"playtimeAtReviewHours": 42.5,"playtimeLastTwoWeeksHours": 36.9,"lastPlayed": "2026-10-23T08:26:18.000Z"},"url": "https://steamcommunity.com/profiles/76561198763415585/recommended/413150"}
What you get
| Field | Description |
|---|---|
appId, gameName, gameUrl, developers, publishers, releaseDate, genres, price, currency, isFree, metacritic | The game |
reviewScore, reviewScoreDesc, totalPositive, totalNegative, totalReviews | Steam's overall verdict at scrape time |
reviewId, url, language, recommended, text, createdAt, updatedAt | The review |
votesHelpful, votesFunny, helpfulnessScore, commentCount | Community reaction |
steamPurchase, receivedForFree, earlyAccess, steamDeck, refunded | Context flags |
author | Steam ID, name, profile URL, games owned, reviews written, playtime (total, at review, last two weeks), last played |
A per-game summary (name, total reviews on Steam, reviews fetched, errors) is saved as SUMMARY.
Input
- Games — URLs, app IDs or names (resolved through Steam search).
- Max reviews per game, Language (
allor a Steam language name), Order (newest / recently updated / most helpful), Review type (all / positive / negative), Purchase type, Only reviews newer than, Store country (for the price).
Limits and notes
- "Most helpful" order covers the last 365 days (Steam's
allfilter); newest and updated orders reach the whole history. - Steam paginates with cursors; very large games (millions of reviews) simply take longer — about 100 reviews per request.
- Public data only; the Actor stores nothing beyond the dataset of your run.
Input example
{"games": ["https://store.steampowered.com/app/413150/Stardew_Valley/"],"maxReviewsPerGame": 500,"language": "english","filter": "recent","reviewType": "all","purchaseType": "all","includeOffTopic": false,"country": "us"}
How much does it cost?
Pay per review — no subscription, no minimum, no charge for platform usage.
| Volume | Price |
|---|---|
| 1,000 reviews | $0.50 |
| 10,000 reviews | $5.00 |
| 100,000 reviews | $50.00 |
The Apify free plan includes $5 of usage every month — about 10,000 reviews with this Actor, no card needed. Nothing else is charged: platform usage is included in the price, and Apify Bronze, Silver and Gold subscribers get 10%, 20% and 30% off these prices.
Use it from code, n8n, Make, Zapier or an AI agent
Run the Actor and download the dataset in one call (JSON by default; add &format=csv or xlsx):
curl -X POST "https://api.apify.com/v2/acts/chorelet~steam-reviews-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"games": ["https://store.steampowered.com/app/413150/Stardew_Valley/"], "maxReviewsPerGame": 500, "language": "english", "filter": "recent", "reviewType": "all", "purchaseType": "all", "includeOffTopic": false, "country": "us"}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("chorelet/steam-reviews-scraper").call(run_input={"games": ["https://store.steampowered.com/app/413150/Stardew_Valley/"], "maxReviewsPerGame": 500, "language": "english", "filter": "recent", "reviewType": "all", "purchaseType": "all", "includeOffTopic": false, "country": "us"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
- n8n, Make, Zapier — use the Apify node/module: run the Actor, then "get dataset items".
- Google Sheets, Slack, webhooks — add an integration on the run's Integrations tab.
- AI agents — the Actor is available as a tool through the Apify MCP server; the dataset schema describes every field for the model.
- Schedules — run it hourly, daily or weekly from the Schedules tab.
FAQ
Didn't Valve shut the review API down?
Valve retired store.steampowered.com/appreviews/<appid>?json=1 on 22 October 2026 and moved the data to IUserReviewsService/GetAppReviews. This Actor moved with it the same week. The new service needs no key, and the data is the same, with two differences Valve made: num_games_owned is gone from the author, and each review can now carry the developer's reply, a refunded flag and a Steam Deck flag.
How many reviews can I get per game?
All of them — Steam paginates with cursors, about 100 reviews per request. Games with millions of reviews simply take longer.
Can I get only negative reviews?
Yes — reviewType: negative (or positive). Combine with postedAfter to see what changed after an update.
Which languages are supported?
all or any Steam language name (english, german, schinese, japanese, brazilian…).
Is the reviewer's playtime included?
Yes — total playtime, playtime at the time of the review and in the last two weeks, in hours.
What does a run cost?
$0.50 per 1,000 reviews. The free plan's $5 a month covers about 10,000 reviews.
Can I get the review bombs?
Yes. Steam hides reviews it has marked as off-topic activity, which is exactly what a review bomb is. Turn on Include review bombs and they come back with everything else.
Support
Questions, missing fields or a source that changed? Open an issue on the Issues tab or write to support@chorelet.app — problems are usually fixed within a day, and the Actor is checked every morning by an automated test run. If the Actor saved you time, a short review on its Store page helps other people find it.