Steam Reviews Scraper: Game Reviews & Sentiment avatar

Steam Reviews Scraper: Game Reviews & Sentiment

Pricing

Pay per event

Go to Apify Store
Steam Reviews Scraper: Game Reviews & Sentiment

Steam Reviews Scraper: Game Reviews & Sentiment

Scrape Steam game reviews: text, recommended flag, helpful and funny votes, playtime at review, purchase type, with language, sentiment and sort filters, plus a game summary row (positive %, price, Metacritic). Tested on 9.9M CS2 reviews. Export CSV, Excel, JSON. No login or API key.

Pricing

Pay per event

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Categories

Share

PunkRecordsData

๐ŸŽฎ Steam Reviews Scraper: Game Reviews, Votes & Sentiment

Steam Reviews Scraper by PunkRecordsData exports user reviews for any Steam game by app ID or store URL. Each row has the review text, thumbs up or down, helpful and funny votes, reviewer playtime and purchase type. Filter by sentiment, language and sort order, add one summary row per game with positive percentage, price and Metacritic score, and export CSV, Excel, JSON or XML. No login, no API key. Priced at $0.01 per review.

Steam Reviews Scraper reads Steam's own public review service and handles cursor pagination for you. In a cloud test on Counter-Strike 2 (app 730), which held 9,900,823 reviews at 85.8% positive (Very Positive) when measured, a 10-row run finished in under 5 seconds. It is built for game studios, market researchers, NLP teams and deal sites that need labeled player opinions in bulk.

๐Ÿ”Ž What does Steam Reviews Scraper do?

  • Scrape Steam reviews for one or many games in a single run, from app IDs (730) or store URLs.
  • Export only positive or only negative reviews, or both.
  • Filter Steam reviews by language: english, spanish, latam, brazilian, german, french, schinese and every other code Steam uses.
  • Separate Steam purchases from activated keys with the purchase type filter.
  • Sort by newest, recently updated or most helpful.
  • Add a game summary row with total, positive and negative review counts, positive percentage, score label, price in USD, developers, publishers, genres, release date and Metacritic score.
  • Stop a run at your own per-game cap or total item cap.

๐Ÿ“Š What data can you extract from Steam reviews?

FieldDescription
recordTypereview or game-summary
appId, gameNameSteam app ID and game title
reviewIdUnique Steam recommendation ID
recommendedtrue for thumbs up, false for thumbs down
reviewTextReview body (first 1,500 characters, whitespace cleaned)
languageLanguage the reviewer wrote in
votesHelpful, votesFunny, commentCountCommunity reactions
steamPurchase, receivedForFreeHow the reviewer got the game
earlyAccessReviewWritten during Early Access
playtimeHoursTotal, playtimeHoursAtReviewReviewer hours now and when the review was written
authorGamesOwned, authorReviewCountReviewer library size and review count (when the profile shows them)
createdAt, updatedAtISO timestamps
urlLink to the reviewer's review on Steam Community
scrapedAtUTC time of collection

Summary rows add: name, reviewScoreDesc, totalReviews, totalPositive, totalNegative, positivePercent, developers, publishers, releaseDate, priceFormatted, genres, metacritic (when the game has one) and headerImage.

Fields Steam does not return for a given row are left out of that row instead of being filled with placeholders. Rows are never padded with N/A or null values.

๐Ÿงพ Steam review sample output

Real review row from a cloud run on Counter-Strike 2:

{
"recordType": "review",
"appId": "730",
"gameName": "Counter-Strike 2",
"reviewId": "236844770",
"recommended": true,
"reviewText": "Man I love this game it brings so much joy to me. I have a hard time not killing my teammates but its very fun and I would always kill my teammates in another life time. I love team killing",
"language": "english",
"votesHelpful": 0,
"votesFunny": 0,
"commentCount": 0,
"steamPurchase": true,
"receivedForFree": false,
"earlyAccessReview": false,
"playtimeHoursTotal": 67.8,
"playtimeHoursAtReview": 67.3,
"authorGamesOwned": 52,
"authorReviewCount": 2,
"createdAt": "2026-10-04T03:53:14.000Z",
"updatedAt": "2026-10-04T03:53:14.000Z",
"url": "https://steamcommunity.com/profiles/76561198888619903/recommended/730/",
"scrapedAt": "2026-10-04T05:11:25.107Z"
}

Real game summary row from the same run:

{
"recordType": "game-summary",
"appId": "730",
"name": "Counter-Strike 2",
"reviewScoreDesc": "Very Positive",
"totalReviews": 9900823,
"totalPositive": 8497082,
"totalNegative": 1403741,
"positivePercent": 85.8,
"developers": ["Valve"],
"publishers": ["Valve"],
"releaseDate": "Aug 21, 2012",
"priceFormatted": "Free",
"genres": ["Action", "Free To Play"],
"url": "https://store.steampowered.com/app/730/"
}

๐Ÿ’ฐ How much does it cost to scrape Steam reviews?

Pay per event. You pay only for rows saved to your dataset.

EventPrice (Free plan)Charged for
Review row$0.01One user review
Game summary$0.012, down to $0.01 on Gold and aboveOne summary row per game

1,000 reviews cost $10. A 10-row test (1 summary plus 9 reviews) measured 9 review events and 1 game summary event, about $0.10 on the Free plan. You are not charged for failed or empty lookups: an unknown app ID, a failed request, or a filter that matches no reviews saves no billable row. The maxItems field and your Apify run budget both stop the run cleanly when the limit is reached.

๐Ÿš€ How to scrape Steam reviews in 3 steps

  1. Open the actor and click Try for free.
  2. Paste one or more Steam app IDs or store URLs, choose sentiment, language, sort order and a per-game cap.
  3. Click Start, then download the dataset as CSV, Excel, JSON or XML.

The app ID is the number in any Steam store URL: store.steampowered.com/app/730/ is app 730.

โš™๏ธ Steam Reviews Scraper input

FieldDefaultWhat it does
appIds["730"]Steam app IDs or store URLs
reviewTypeallall, positive or negative
purchaseTypeallall, steam or non_steam_purchase
languageallSteam language code
sortByrecentrecent, updated or all (most helpful)
maxReviewsPerGame200Review rows per game, up to 50,000
includeGameSummarytrueAdd one summary row per game
maxItemsnoneTotal rows across all games, summary rows included

Example input for the 500 most helpful negative English reviews of Counter-Strike 2:

{
"appIds": ["730"],
"reviewType": "negative",
"language": "english",
"sortBy": "all",
"maxReviewsPerGame": 500,
"includeGameSummary": false
}

Free Apify users are limited to 10 rows per run as a preview. Paid users can request up to 1,000,000 rows.

๐Ÿ“ฆ Steam Reviews Scraper output

Results go to the default dataset in two row types, review and game-summary. The Overview view shows the key columns; the full dataset has every field. Download as CSV, Excel, JSON or XML, or read it through the API. A run with no matching reviews finishes as SUCCEEDED with a clear status message and no charge. A run where Steam requests fail and no rows are delivered ends as FAILED, so you never pay for a silent block.

โš–๏ธ Steam Reviews Scraper vs alternatives

Prices measured from the public Apify Store listings on 2026-10-04 (per 1,000 review rows, Free plan, start fees listed separately):

ActorPer 1,000 reviewsStart fee
This actor$10.00none
automation-lab steam-game-reviews-scraper$0.58$0.003
memo23 steam-reviews-scraper$1.00$0.005
shahidirfan steam-reviews-scraper$0.99$0.0005
logiover steam-game-reviews-scraper$3.00$0.00005

On raw price per review this actor is the most expensive of the group, so if you only need review text at the lowest cost, a cheaper actor is the better pick. What this one adds: reviewer playtime at review time and library size, the purchase-type and sentiment filters together, a game summary row (positive percentage, price, Metacritic) next to the reviews, no start fee, and rows with no placeholder values or duplicate review IDs.

๐Ÿ’ก Use cases for Steam review data

  • Patch sentiment tracking: pull negative reviews after each update, sorted by helpfulness.
  • Competitive analysis: compare positive percentage and complaint themes across rival games.
  • NLP and ML training: recommended-labeled text, weighted by playtime at review.
  • Store and deal sites: keep live review scores beside game listings.

๐Ÿ”Œ Run Steam Reviews Scraper via API and integrations

Call it from any language with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/recordsdata~steam-reviews-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"appIds":["730"],"maxItems":10}'

Schedule runs in the Apify Console, or connect to Zapier, Make, n8n, Google Sheets, Slack and Airbyte. The actor is also available to AI agents through the Apify MCP server, with a default input that runs without extra setup.

The actor reads Steam's public review endpoints, the same data shown on every game's store page, at a respectful rate with no login. Review text belongs to its authors and reviewer names are not collected, only the public profile link Steam exposes with each review. Use the data in line with Valve's terms and the privacy laws that apply to you.

โ“ Frequently asked questions

How do I find a Steam app ID?

It is the number in the store URL, for example 730 in store.steampowered.com/app/730/. You can also paste the full store URL into the input.

How many Steam reviews can I scrape per game?

Up to 50,000 per game per run through cursor pagination. Big games hold millions, so use sentiment, language or purchase filters to slice them.

What is playtime at review?

The hours the reviewer had in the game when they wrote the review, converted from Steam's minutes to hours. It helps you weigh veteran opinions against new players.

Why did my run return 0 results?

Usually the filters match nothing (for example a rare language on a small game), or the app ID does not exist. The run still ends with SUCCEEDED, a status message explaining why, and no charge. Try language all and reviewType all.

Why did my run fail?

If Steam requests fail and no rows were delivered, the run ends as FAILED with a message, and nothing is charged. Run it again later. If it keeps failing, open the Issues tab.

Do I get charged for game summary rows?

Yes, one summary row per game is a separate event ($0.012 on the Free plan). Set includeGameSummary to false to skip it. Summary rows count toward maxItems.

Can I scrape many games in one run?

Yes. Put several app IDs in appIds. The per-game cap applies to each game, and maxItems caps the whole run.

Does it need a Steam account or API key?

No. It uses public endpoints only.

Can I try it for free?

Yes. Free Apify users get a 10-row preview per run, and new accounts include free platform credit.

๐Ÿงญ Want more gaming data? Other PunkRecordsData scrapers

๐Ÿ™‹ Support

Found a bug or missing field? Open the Issues tab on this actor's page or write to contact.punkrecordsdata@gmail.com. Custom solutions are available on request.

Last updated: 2026-10-03