Steam Reviews Scraper
Pricing
from $2.99 / 1,000 results
Steam Reviews Scraper
Steam Reviews Scraper is a Python tool designed to extract user reviews, playtimes, ratings, and reviewer details for any game on Steam. It exports structured review datasets into CSV or JSON formats for sentiment analysis, market research, and game analytics.
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
real-estate-api
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Steam Reviews Scraper: Game Reviews, Prices, and Store Data
Overview
Steam Reviews Scraper collects public Steam game reviews, review summaries, store details, prices, search results, featured game listings, and current player counts.
Choose a collection mode, provide game IDs or store URLs where required, and export structured results for research, sentiment analysis, price monitoring, and game market insights.
Features
- Collect game reviews, review text, playtime, language, and helpful-vote information.
- Extract review score summaries and positive/negative review totals.
- Retrieve store details, developers, publishers, genres, platforms, release dates, and prices.
- Search for games by keyword.
- Collect featured listings, including top sellers, new releases, specials, and coming soon titles.
- Check current player counts for specified games.
- Filter reviews by date range, language, review type, and purchase type.
- Remove duplicate review IDs.
- Export results as JSON, CSV, or Excel.
Use Cases
- Game developers and publishers: Analyze player feedback, playtime, votes, and potential bug reports.
- Market research: Compare game prices, discounts, release information, and featured listings.
- AI and NLP datasets: Prepare review text and related metadata for sentiment analysis and language processing.
- Community analysis: Examine review authors, profile references, purchase status, and playtime.
- Price tracking: Compare regular and discounted prices across supported store regions.
Collection Modes
| Mode | Required input | Output |
|---|---|---|
reviews | Game IDs or store URLs | Review rows and optional review-summary rows |
app_details | Game IDs or store URLs | Store details for each game |
search | Search terms | Approximately 10 results per term |
featured | Country code | Top sellers, new releases, specials, and coming soon listings |
player_count | Game IDs | Current player counts |
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | String | reviews | Collection mode: reviews, store details, search, featured listings, or player counts. |
apps | Array | 730 | Game IDs or Steam store URLs. |
searchTerms | Array | Empty | Search terms used in search mode. Results are limited to approximately 10 per term. |
reviewFilter | String | recent | Review ordering: recent, all (most helpful), or updated. |
reviewLanguage | String | all | Language filter for reviews and summary totals. |
reviewType | String | all | Review sentiment: all, positive, or negative. |
purchaseType | String | all | Purchase filter: all, steam, or non_steam_purchase. |
dayRange | Integer | Empty | Restrict reviews to the last N days. Used with reviewFilter=all. |
includeSummary | Boolean | true | Include the review-score summary from the first review page. |
enrichWithDetails | Boolean | false | Add store details to search and featured results. This increases collection time. |
countryCode | String | us | Store country used for regional availability and pricing. |
maxItems | Integer | 200 | Maximum total dataset rows per run. Hard limit: 10,000. |
maxReviewsPerApp | Integer | 1000 | Maximum review rows per game. Requests are made in pages of up to 100 reviews. |
maxConcurrency | Integer | 3 | Number of games processed in parallel, up to 5. Store-detail collection uses 3 or fewer concurrent tasks. |
timeoutSecs | Integer | 300 | Overall time limit in seconds for starting new work. |
requestTimeoutSecs | Integer | 30 | Timeout for an individual request. Rate-limit and server-error responses use backoff handling. |
Example Input
{"mode": "reviews","apps": ["730","PORTAL_2_STORE_URL"],"reviewFilter": "recent","reviewLanguage": "all","reviewType": "all","purchaseType": "all","includeSummary": true,"maxItems": 200,"maxReviewsPerApp": 100,"maxConcurrency": 3,"timeoutSecs": 300,"requestTimeoutSecs": 30}
Replace PORTAL_2_STORE_URL with the actual store URL for Portal 2. The example uses a descriptive placeholder rather than a real URL.
Review Rows, Store Rows, and Exports
Results are saved to the default dataset. The available dataset views include Reviews, Review summaries, Apps, and Errors. Export the results in JSON, CSV, or Excel format.
Example Review Row
Playtime values are converted from minutes to hours.
{"recordKind": "review","appId": 730,"reviewId": "REVIEW_ID","url": "REVIEWER_PROFILE_URL","text": "Example player review text.","language": "english","votedUp": true,"votesUp": 0,"weightedVoteScore": 0.5,"createdAt": "2026-10-11T19:18:57Z","steamPurchase": true,"authorSteamId": "AUTHOR_STEAM_ID","authorName": "example_user","playtimeForeverHours": 396.0,"playtimeAtReviewHours": 396.0}
Review Summary Rows
Summary rows can include:
reviewScorereviewScoreDesctotalPositivetotalNegativetotalReviewspositivePercentfilterLanguage
The summary is available from the first review page. Totals depend on the selected language and review filters. For example, all languages and english represent different groups of reviews.
Store Details Rows
Store records can include:
- Game or app name
itemType, also available astype- Free-to-play status
- Developers and publishers
- Release date and coming soon status
- Current and original prices
- Genres and supported platforms
- Required age
- Plain-text language information
- DLC count
- Store URL
Free games may have null prices when no price information is supplied. Unreleased items can retain comingSoon: true.
Search Results
Search rows may include pricing, Metacritic score, supported platforms, controller support, and image information. Search returns a limited number of results per term rather than a complete game catalog.
Featured Listings
Featured rows can include the following fields:
section:top_sellers,new_releases,specials, orcoming_soonrank- Discount information
- Current and original prices
Player Count Rows
Player-count results include appId, playerCount, and checkedAt, recording the game and the time its current player count was checked.
Output Field Reference
| Field | Type | Description |
|---|---|---|
recordKind | String | Record category: review, summary, app, search, featured, player_count, or error. |
appId | Integer | Steam application ID. |
reviewId | String | Review or recommendation identifier used for duplicate detection. |
text | String | Review text. |
language | String | Review language. |
votedUp | Boolean | Whether the review is positive. |
votesUp | Integer | Helpful votes received. |
weightedVoteScore | Number | Weighted review vote score when available. |
createdAt | String | Review creation timestamp in UTC ISO-8601 format. |
steamPurchase | Boolean | Whether the review is associated with a Steam purchase. |
authorSteamId | String | Review author's Steam identifier. |
authorName | String | Review author's display name. |
playtimeForeverHours | Number | Lifetime playtime in hours. |
playtimeAtReviewHours | Number | Playtime at the time of review, in hours. |
itemType | String | Item category, such as game, DLC, app, bundle, or summary. The type alias is also available. |
priceFinal | Number or null | Current price in currency units, or null when no price is available. |
playerCount | Integer | Current player count at checkedAt. |
errorCode | String | Error code included in error records. |
Other fields depend on the selected collection mode and the information available for each item.
Collection Limits and Error Handling
- Maximum dataset size: 10,000 rows per run, controlled by
maxItems. - Review pagination: Requests retrieve up to 100 reviews per page.
- Search results: Approximately 10 results per term; older search results cannot be requested through pagination.
- Store-detail performance: Store-detail collection can take approximately 1.5–2 seconds per app under the previously observed conditions. Performance varies.
- Regional availability: Some games may not be available in the selected store country.
- Duplicate reviews: Duplicate review IDs are dropped.
- Failed lookups: Errors are saved as dataset rows rather than necessarily stopping the whole run.
NOT_FOUNDindicates an item was not found;HTTP_followed by a status code indicates an HTTP failure after retries.
The full Steam application catalog is not included. Some catalog routes are unavailable or require credentials that this actor does not use. Provide the specific game IDs or store URLs you want to collect.
FAQ
Why do review totals differ between runs?
Review summaries depend on reviewLanguage and the selected review filters. Different language selections represent different review populations, and the complete summary is supplied on the first review page.
Why does search return only around 10 games per term?
Search results are limited. Search is not a complete catalog, and there is no next-page option for collecting additional results. Try several search terms or provide known game IDs directly.
Can I export every Steam game?
No. This actor does not retrieve the complete Steam app catalog. Supply the specific app IDs or store URLs you need.
What happens if a game ID is invalid or a game is unavailable in my country?
The actor records an error row, such as NOT_FOUND or an HTTP_ status code, and continues processing other games when possible.
Are playtime and prices converted?
Yes. Playtime is reported in hours, converted from minutes. Prices are reported in currency units, converted from cents where applicable.
Trademark Notice
Steam, Valve, and related names, logos, and trademarks belong to their respective owners. Their use in this documentation is solely to identify the source of the data and does not imply affiliation, sponsorship, endorsement, or partnership.
Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, sponsored by, or officially associated with Steam or Valve. Users are responsible for ensuring that their collection and use of data comply with applicable terms, privacy requirements, and intellectual property restrictions.
Is Web Scraping Legal?
Collecting information that is already public is generally legal. Scraping is not the same thing as hacking, and there is no single law that bans it. The limits are the usual ones: do not break into accounts, do not take private or confidential data, and be careful with personal data and copyrighted works. A site's terms can also restrict how you access it. Facts such as a public name, price, or rating are not the same thing as republishing someone's article or photo.
This actor collects information from public pages. It does not log in and it does not bypass access controls.
For a longer explanation, see Apify's article Is web scraping legal?.