Steam Reviews Scraper — With Playtime | $5/1K
Pricing
$5.00 / 1,000 results
Steam Reviews Scraper — With Playtime | $5/1K
Steam reviews with the hours each reviewer had played when writing — what separates an informed verdict from a rage post. Filter by language, sentiment and purchase type to exclude free keys. Plus game details, prices and owner estimates. For developers and market research.
Pricing
$5.00 / 1,000 results
Rating
0.0
(0)
Developer
Finjard Neumeier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Steam Reviews & Game Data Scraper
Extract Steam reviews, game details, prices and player estimates. No API key, no login, no Steam account required.
Every review row carries how long the reviewer had played when they wrote it — the field that separates an informed verdict from a five-minute rage post.
Why this scraper
Playtime per reviewer. Steam exposes it; most scrapers drop it. With
playtimeHoursAtReview you can filter out reviews written after 12 minutes, weight
sentiment by hours played, or find the reviewers who actually know the game.
Purchase type filtering. Separate genuine Steam purchases from review keys and gifts. If you are measuring sentiment, free copies distort it — one setting removes them.
Owner estimates included. Steam never publishes ownership numbers. Game mode adds estimated owners, average playtime and peak concurrent players.
What you can extract
| Mode | What you get |
|---|---|
| Reviews of a game | Every public review with full text, verdict, votes, language, and the reviewer's playtime and library size |
| Game details and stats | Price, discount, genres, developers, review score, Metacritic, owner estimates, achievements, platforms |
| Search the Steam store | Find games by keyword with price, release date and rating |
| Review score summary only | Just the numbers — total, positive, negative, percentage — without pulling individual reviews |
Quick start
- Pick a mode.
- Paste an App ID (
730) or a store URL (https://store.steampowered.com/app/730/). - Set Maximum results.
- Click Start, then download as CSV, Excel or JSON.
Example inputs
All recent reviews of a game
{"mode": "reviews","appIds": ["730"],"maxItems": 5000,"sortBy": "recent"}
Negative German reviews from the last 30 days
{"mode": "reviews","appIds": ["730"],"language": "german","reviewType": "negative","dayRange": 30,"maxItems": 1000}
Honest sentiment — real purchases only, no free keys
{"mode": "reviews","appIds": ["1245620"],"purchaseType": "steam","sortBy": "all","maxItems": 2000}
Compare several games side by side
{"mode": "games","appIds": ["730", "570", "1245620", "1172470"],"country": "de"}
Find every game in a genre
{"mode": "search","searchQuery": "roguelike deckbuilder","maxItems": 500}
Output fields
Reviews
| Field | Description |
|---|---|
review | Full review text |
recommendation | Recommended or Not Recommended |
votedUp | Same as a boolean |
playtimeHoursAtReview | Hours played when the review was written |
playtimeHoursTotal | Hours played overall |
playtimeHoursLast2Weeks | Hours played recently — is the reviewer still active? |
authorName, authorSteamId, authorProfileUrl | Who wrote it |
authorGamesOwned, authorReviewCount | How experienced the reviewer is |
createdAt, updatedAt | When it was posted and last edited |
votesHelpful, votesFunny, commentCount | Community response |
helpfulnessScore | Steam's own weighting, 0 to 1 |
steamPurchase | False for keys, gifts and review copies |
receivedForFree, refunded, writtenDuringEarlyAccess | Context flags |
primarilySteamDeck | Played mostly on a Steam Deck |
language | Language of the review |
Games
| Field | Description |
|---|---|
name, url, type, isFree | Identity |
priceInitial, priceFinal, discountPercent, priceCurrency | Pricing for the chosen country |
totalReviews, positiveReviews, negativeReviews, positivePercent | Review breakdown |
reviewScoreDesc | Steam's wording, e.g. Very Positive |
metacriticScore, metacriticUrl | Critic score |
ownersEstimate | Estimated ownership range |
averagePlaytimeForever, averagePlaytime2Weeks, ccu | Engagement |
developers, publishers, genres, categories | Classification |
releaseDate, comingSoon | Release status |
achievementCount, dlcCount, requiredAge | Extras |
platformWindows, platformMac, platformLinux | Availability |
Input notes
- Games accept an App ID or a full store URL — no need to extract the number.
- Several games split the
maxItemsbudget evenly between them. - Store country changes prices and currency:
us,de,gb,br,jp. - Sort order
recentgives newest first,allgives most helpful first.
Performance
| Run | Results | Time |
|---|---|---|
| Reviews | 150 | ~2 s |
| Reviews | 5,000 | ~1 min |
| Game details | 3 games | ~4 s |
Reviews paginate 100 at a time; game details need three requests per title (store, review summary, owner estimates).
Limits
- Public data only. Private profiles and unreleased games return little.
- Owner estimates are estimates. They come from SteamSpy's sampling, not Steam.
- Review counts are snapshots at the time of scraping.
- Very large runs may hit rate limits — raise Delay between requests to 1–2 seconds.
FAQ
Do I need a Steam account or API key? No. Everything runs against public store endpoints.
Can I get every review of a big game?
Yes, though popular titles have millions. Use dayRange or language to narrow it.
Why do some reviews show zero playtime? The reviewer's profile is private. The review text is still returned.
Can I filter out review keys and gifts? Yes — set How the game was obtained to Steam purchases only.
What formats can I export? CSV, Excel, JSON, XML, or straight from the Apify API.
Legal and responsible use
This Actor reads publicly available data from Steam's public store endpoints. It does not bypass authentication or access private content.
You are responsible for how you use the results, including GDPR obligations when the data concerns people in the EU. Review text and profile names are personal data — do not republish them without a lawful basis.