Steam Store & Reviews Scraper
Pricing
from $0.50 / 1,000 reviews
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.
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
6 days ago
Last modified
Categories
Share
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) |
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","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.
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. It does not log in, does not open user profiles and does not collect names, avatars, emails or other personal details; the only per-reviewer field is the public numeric Steam ID that Steam prints on every review page. 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.