Steam Reviews Scraper — Game Reviews, Prices & Tags
Pricing
from $0.50 / 1,000 reviews
Steam Reviews Scraper — Game Reviews, Prices & Tags
Scrape Steam games and user reviews: search results, app details (price, discounts, tags, genres, release date, developer, platforms) and reviews with votes, playtime and language.
Pricing
from $0.50 / 1,000 reviews
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Features
Share
Steam Store & Reviews Scraper
Scrape Steam games and user reviews: search results, app details (price, discounts, tags, genres, release date, developer, platforms) and reviews with votes, playtime and language.
Steam Store & Reviews Scraper reads the public JSON endpoints behind store.steampowered.com and turns them into a clean dataset. Three modes cover the whole funnel: search a keyword and get every result with price, discount and review score; pull details for any app ID (price in your region, user tags, genres, categories, release date, developers, Metacritic, achievements, DLC); or collect reviews with helpful/funny votes, playtime, purchase type and language, plus a per-app review summary (total positive/negative, "Very Positive"). No Steam account or API key is needed and mature (age-gated) games work. Download JSON, CSV or Excel, or use the API from Python, Node, n8n or Google Sheets. You pay only for the items you get.
What data does Steam Store & Reviews Scraper extract?
Every item has a type field: review, summary, app or search.
Review items (type: "review", mode reviews)
| Field | Description |
|---|---|
appId, appName | Steam app ID and name |
recommendationId | Steam's review ID |
url | Public review page on steamcommunity.com |
language | Steam language code (english, schinese, russian, ...) |
text | Review text |
votedUp | true = Recommended, false = Not recommended |
votesUp, votesFunny, commentCount | Helpful votes, funny votes and comments |
weightedVoteScore | Steam's helpfulness score (0-1) |
steamPurchase, receivedForFree, writtenDuringEarlyAccess, refunded, primarilySteamDeck | Purchase and context flags |
createdAt, updatedAt | ISO 8601 UTC timestamps |
playtimeForeverMinutes, playtimeAtReviewMinutes, playtimeLastTwoWeeksMinutes, lastPlayedAt | Reviewer playtime in this game |
numGamesOwned, numReviews | Reviewer's public library size and review count |
authorSteamId | Public numeric Steam ID printed on every review (no profile is fetched) |
authorName | Reviewer's Steam display (persona) name as shown on the review |
authorUsername | Reviewer's custom profile URL handle (steamcommunity.com/id/<handle>/) when they set one, otherwise null |
authorUrl | Reviewer's public Steam Community profile URL |
authorId | Reviewer's SteamID64 as a string (same value as authorSteamId) |
reactions | [{type, count}] award reactions on the review |
Review summary items (type: "summary", one per app in mode reviews)
appId, appName, url, reviewScore (0-9), reviewScoreDesc (Very Positive), totalPositive, totalNegative, totalReviews, positivePercent. The totals respect your language/type/purchase filters.
App items (type: "app", mode details)
| Field | Description |
|---|---|
appId, name, url, appType | Identity; appType is game, dlc, demo, music, ... |
isFree, price, originalPrice, currency, discountPercent, priceFormatted | Price in the region given by Country code (price is a number, e.g. 59.99) |
releaseDate, comingSoon | Release date text as shown on the store and the coming-soon flag |
developers, publishers | Lists of names |
genres, categories | Store genres (Action) and categories (Multi-player, Steam Achievements) |
tags, tagsDetailed | Top 20 user tags in Steam's order; tagsDetailed adds id and count |
platforms | Subset of windows, mac, linux |
metacriticScore, metacriticUrl, recommendationsTotal | Critic score and total Steam recommendations |
headerImage, capsuleImage, screenshots, movies | Media URLs (trailers as HLS/DASH streams) |
shortDescription, aboutTheGame, website | Plain-text descriptions |
supportedLanguages, fullAudioLanguages | Interface languages and those with full audio |
achievementsCount, dlcCount, dlcAppIds, packages | Achievements, DLC and purchasable package IDs |
requiredAge, contentDescriptors, controllerSupport | Age rating, mature-content notes and controller support |
Search items (type: "search", mode search)
searchTerm, appId (or packageId/bundleId for bundles), name, url, price, originalPrice, currency, priceFormatted, isFree, discountPercent, releaseDate, reviewSummary (Overwhelmingly Positive), reviewPositivePercent, reviewCount, platforms, thumbnail, tagIds.
How to use Steam Store & Reviews Scraper
- Pick a Mode:
reviews,detailsorsearch. - For
reviewsanddetails, paste App IDs or store URLs (570,https://store.steampowered.com/app/730/Counter-Strike_2/), one per line. Forsearch, enter Search terms. - Set Max items (and optionally Max reviews per app) to cap the run and the cost.
- Optionally filter reviews by Review language, Review type (positive/negative) and Purchase type, or set Country code for prices.
- Click Start. Results appear in the Dataset tab; export from there or use the API.
Input example
{"mode": "reviews","appIds": ["570", "https://store.steampowered.com/app/730/Counter-Strike_2/"],"maxItems": 2000,"maxReviewsPerApp": 1000,"reviewsFilter": "recent","reviewLanguage": "english","reviewType": "all","purchaseType": "all"}
{ "mode": "details", "appIds": ["1091500", "367520"], "countryCode": "de" }
{ "mode": "search", "searchTerms": ["hollow knight", "roguelike deckbuilder"], "maxItems": 200 }
Output example
{"type": "review","appId": 570,"appName": "Dota 2","recommendationId": "234729359","url": "https://steamcommunity.com/profiles/76561199800017251/recommended/570/","language": "english","text": "Still the deepest MOBA there is. 2000 hours and counting.","votedUp": true,"votesUp": 12,"votesFunny": 1,"weightedVoteScore": 0.61,"commentCount": 0,"steamPurchase": true,"receivedForFree": false,"writtenDuringEarlyAccess": false,"refunded": false,"primarilySteamDeck": false,"createdAt": "2026-09-07T21:16:37Z","updatedAt": "2026-09-07T21:16:37Z","playtimeForeverMinutes": 121955,"playtimeAtReviewMinutes": 121952,"playtimeLastTwoWeeksMinutes": 88,"lastPlayedAt": "2026-09-07T21:19:12Z","numGamesOwned": 41,"numReviews": 3,"authorSteamId": "76561199800017251","authorName": "_kinix","authorUsername": null,"authorUrl": "https://steamcommunity.com/profiles/76561199800017251/","authorId": "76561199800017251","reactions": []}
{"type": "app","appId": 1091500,"name": "Cyberpunk 2077","url": "https://store.steampowered.com/app/1091500/","appType": "game","isFree": false,"price": 59.99,"originalPrice": 59.99,"currency": "USD","discountPercent": 0,"releaseDate": "Dec 9, 2020","comingSoon": false,"developers": ["CD PROJEKT RED"],"publishers": ["CD PROJEKT RED"],"genres": ["RPG"],"categories": ["Single-player", "Steam Achievements", "Full controller support"],"tags": ["Cyberpunk", "Open World", "Nudity", "RPG", "Futuristic"],"platforms": ["windows", "mac"],"metacriticScore": 86,"recommendationsTotal": 800000,"achievementsCount": 57,"dlcCount": 2,"requiredAge": 17,"supportedLanguages": ["English", "French", "German"]}
How to scrape Steam reviews for a game
Set Mode to reviews and paste the app ID (the number in the store URL, store.steampowered.com/app/570/...). Reviews are read newest first, 100 per page, until Max items, Max reviews per app or the end of the list is reached, so a full history export of a game with 50,000 reviews takes 500 requests. Use Review language english to keep only English text, Review type negative to mine complaints, and Reviews order all to get Steam's most-helpful reviews first. The summary item gives the global totals so you can compute the positive ratio without downloading everything.
Monitor changes on a schedule
Turn on Only new or changed items and save the input as a task with a Schedule (Apify Console: Saved tasks -> Schedule, for example daily). Each run then remembers what earlier runs of the same input returned and outputs only what is new: new reviews in reviews mode, and apps whose price, discount or release date changed in details and search mode. Unchanged items are skipped before they are saved, so they are not charged; the per-app review summary is output on the first run only. Add Only reviews newer than (2 days, 24 hours or a date like 2026-10-01) to bound how far back the first run reads; reviews are then read newest first and paging stops as soon as a page reaches older or already-seen reviews. Monitored items carry changeType (new or changed) and, for changed apps, previousValues with the old values of the fields that changed (e.g. {"price": 19.99}). Use Monitoring key to keep several schedules on the same input apart.
Does it work without a Steam account or API key?
Yes. Everything comes from the public store endpoints that the Steam website itself calls when you browse logged out; no Steam Web API key, account, session or cookies from your browser are needed. Mature (age-gated) games are handled automatically.
How to get Steam game prices and discounts
Use Mode details with the app IDs and set Country code to the store region you care about (us, gb, de, br, jp, ...). Each app item carries price, originalPrice, discountPercent and currency for that region, plus isFree and comingSoon. Schedule the Actor to track sales over time. For a quick overview of many games, Mode search returns price, discount and review score for every result in one request per 100 games.
Can I get Steam user tags, genres and Metacritic scores?
Yes. details mode returns the top 20 user-applied tags (tags, with vote counts in tagsDetailed), store genres and categories, metacriticScore, recommendationsTotal, achievementsCount, DLC IDs, supported languages, screenshots and trailer links.
What does it cost?
Pay per item: a review costs a fraction of a cent (a summary item is charged as one review), an app-details item a little more because it needs two requests, and a search result sits in between. There is no start fee and no subscription; Apify's free plan is enough to collect tens of thousands of reviews.
Integrations and API
Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets, or schedule the Actor to keep a review feed or price history fresh.
Is it legal to scrape Steam?
This Actor collects only publicly available data that Steam shows to anyone without an account: store listings, prices and user reviews. For each review it exports the reviewer identity Steam shows next to the review: display (persona) name, public profile link, custom profile handle when set, and Steam ID, plus the playtime and library/review counts Steam prints on the review. It does not log in, does not open user profiles and does not collect avatars, online status, emails or other contact details. Reviewer names, handles, profile links and Steam IDs are personal data under GDPR and similar laws: make sure you have a lawful basis for processing them, and do not use them to contact or profile individuals. You are responsible for how you use the data and for complying with Steam's terms and applicable law.
Support
Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.
Related scrapers
- IMDb Scraper: Movies, TV, Ratings & Reviews
- Letterboxd Scraper: Films, Reviews, Ratings & Lists
- Metacritic Scraper: Metascores, Reviews, Games & Movies
- Goodreads Scraper: Books, Reviews, Authors & Lists
- Shopify App Store Scraper: Apps, Pricing, Reviews & Developers
Found it useful?
A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's Issues tab.