Steam Reviews Scraper avatar

Steam Reviews Scraper

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Steam Reviews Scraper

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

real-estate-api

Maintained by Community

Actor 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

Steam Reviews Scraper

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

ModeRequired inputOutput
reviewsGame IDs or store URLsReview rows and optional review-summary rows
app_detailsGame IDs or store URLsStore details for each game
searchSearch termsApproximately 10 results per term
featuredCountry codeTop sellers, new releases, specials, and coming soon listings
player_countGame IDsCurrent player counts

Input Parameters

ParameterTypeDefaultDescription
modeStringreviewsCollection mode: reviews, store details, search, featured listings, or player counts.
appsArray730Game IDs or Steam store URLs.
searchTermsArrayEmptySearch terms used in search mode. Results are limited to approximately 10 per term.
reviewFilterStringrecentReview ordering: recent, all (most helpful), or updated.
reviewLanguageStringallLanguage filter for reviews and summary totals.
reviewTypeStringallReview sentiment: all, positive, or negative.
purchaseTypeStringallPurchase filter: all, steam, or non_steam_purchase.
dayRangeIntegerEmptyRestrict reviews to the last N days. Used with reviewFilter=all.
includeSummaryBooleantrueInclude the review-score summary from the first review page.
enrichWithDetailsBooleanfalseAdd store details to search and featured results. This increases collection time.
countryCodeStringusStore country used for regional availability and pricing.
maxItemsInteger200Maximum total dataset rows per run. Hard limit: 10,000.
maxReviewsPerAppInteger1000Maximum review rows per game. Requests are made in pages of up to 100 reviews.
maxConcurrencyInteger3Number of games processed in parallel, up to 5. Store-detail collection uses 3 or fewer concurrent tasks.
timeoutSecsInteger300Overall time limit in seconds for starting new work.
requestTimeoutSecsInteger30Timeout 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:

  • reviewScore
  • reviewScoreDesc
  • totalPositive
  • totalNegative
  • totalReviews
  • positivePercent
  • filterLanguage

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 as type
  • 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 rows can include the following fields:

  • section: top_sellers, new_releases, specials, or coming_soon
  • rank
  • 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

FieldTypeDescription
recordKindStringRecord category: review, summary, app, search, featured, player_count, or error.
appIdIntegerSteam application ID.
reviewIdStringReview or recommendation identifier used for duplicate detection.
textStringReview text.
languageStringReview language.
votedUpBooleanWhether the review is positive.
votesUpIntegerHelpful votes received.
weightedVoteScoreNumberWeighted review vote score when available.
createdAtStringReview creation timestamp in UTC ISO-8601 format.
steamPurchaseBooleanWhether the review is associated with a Steam purchase.
authorSteamIdStringReview author's Steam identifier.
authorNameStringReview author's display name.
playtimeForeverHoursNumberLifetime playtime in hours.
playtimeAtReviewHoursNumberPlaytime at the time of review, in hours.
itemTypeStringItem category, such as game, DLC, app, bundle, or summary. The type alias is also available.
priceFinalNumber or nullCurrent price in currency units, or null when no price is available.
playerCountIntegerCurrent player count at checkedAt.
errorCodeStringError 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_FOUND indicates 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.

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?.