Steam Reviews Scraper: Game Reviews & Sentiment
Under maintenancePricing
Pay per event
Steam Reviews Scraper: Game Reviews & Sentiment
Under maintenanceScrape 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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Share
🎮 Steam Reviews Scraper: Game Reviews, Votes & Sentiment
Steam Reviews Scraper by RecordsData exports user reviews for any Steam game by app ID or store URL. Each row has the review text, thumbs up or down, votes, reviewer playtime (total, at review, last two weeks), purchase type and, when shared, hardware and the developer reply. Filter by sentiment, language, date window, playtime and off-topic activity, run in only-new mode, add a summary row with positive percentage, price, Metacritic, Steam Deck status and a review-bomb flag, 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. 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 positive, negative or both, in a date window (
dayRangeup to 365, ordateFromanddateTo). - Turn the off-topic filter off (
filterOffTopicfalse) to include reviews Steam hides during review-bomb periods. - Filter by language (a comma list such as
english,spanishworks), purchase type and reviewer playtime; sort by newest, updated or most helpful. - Run in only-new mode (
onlyNewwith astateKeylabel): reviews you already received are skipped and not billed. - Add a game summary row with counts, positive percentage, price, Metacritic score, Steam Deck status and a review-bomb flag with the spike days.
- Capture the developer reply (about 0.15 percent of reviews) and reviewer hardware when the author shared it.
📊 What data can you extract from Steam reviews?
| Field | Description |
|---|---|
| recordType | review or game-summary |
| appId, gameName | Steam app ID and game title |
| reviewId | Unique Steam recommendation ID |
| recommended | true for thumbs up, false for thumbs down |
| reviewText | Review body (first 8,000 characters, whitespace cleaned) |
| language | Language the reviewer wrote in |
| votesHelpful, votesFunny, weightedVoteScore, commentCount | Community reactions |
| steamPurchase, receivedForFree, refunded, earlyAccessReview, primarilySteamDeck | How the reviewer got the game and played it |
| playtimeHoursTotal, playtimeHoursAtReview | Reviewer hours now and when the review was written |
| playtimeLastTwoWeeksHours, lastPlayedAt | Recent activity of the reviewer |
| authorName, authorSteamId, authorGamesOwned, authorReviewCount | Steam persona, ID, library size and review count |
| hardwareOs, hardwareCpu, hardwareGpu, hardwareRamMb, hardwareVramMb | Only on reviews whose author shared hardware (8 to 36 percent, by sort order) |
| developerResponse, developerRespondedAt | Only on reviews the developer answered (about 0.15 percent) |
| createdAt, updatedAt, url, scrapedAt | ISO timestamps, review link, collection time |
Summary rows add: name, reviewScoreDesc, totalReviews, totalPositive, totalNegative, positivePercent, reviewsLast30Days, offTopicReviews, reviewBombDetected, reviewSpikeDays, steamDeckStatus, developers, publishers, releaseDate, priceFormatted, genres, metacritic and headerImage.
Review-bomb flag: the actor reads Steam's daily review volume and marks a spike day with at least 20 reviews and 3 times the median. reviewBombDetected is true when a spike day is also at least 50 percent negative and 20 points more negative than the median day.
Fields Steam does not return for a row are left out, never padded with N/A or null.
🧾 Steam review sample output
Review row from a cloud run on Counter-Strike 2 (an earlier build, without the newer columns):
{"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...","language": "english","votesHelpful": 0,"steamPurchase": true,"playtimeHoursTotal": 67.8,"playtimeHoursAtReview": 67.3,"authorGamesOwned": 52,"authorReviewCount": 2,"createdAt": "2026-10-04T03:53:14.000Z","url": "https://steamcommunity.com/profiles/76561198888619903/recommended/730/","scrapedAt": "2026-10-04T05:11:25.107Z"}
Game summary row from the same run (older build):
{"recordType": "game-summary","appId": "730","name": "Counter-Strike 2","reviewScoreDesc": "Very Positive","totalReviews": 9907663,"totalPositive": 8502087,"totalNegative": 1405576,"positivePercent": 85.8,"developers": ["Valve"],"releaseDate": "Aug 21, 2012","priceFormatted": "Free","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. All new columns, filters and modes (date window, off-topic, hardware, developer reply, only-new, review-bomb flag) ride on the same rows and add no extra charge.
| Event | Price (Free plan) | Charged for |
|---|---|---|
| Review row | $0.01 | One user review |
| Game summary | $0.012, down to $0.01 on Gold and above | One summary row per game |
Worked example on the Free plan: 1,000 reviews cost 1,000 x $0.01 = $10.00, and adding one game summary row makes it $10.012. You are not charged for failed or empty lookups, invalid input (one free error row), or reviews already delivered in only-new mode. 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
- Open the actor and click Try for free.
- Paste Steam app IDs or store URLs and choose sentiment, language, date window and a per-game cap.
- Click Start, then download the dataset as CSV, Excel, JSON or XML.
⚙️ Steam Reviews Scraper input
| Field | Default | What it does |
|---|---|---|
| appIds | ["730"] | Steam app IDs or store URLs (up to 1,000 per run) |
| reviewType | all | all, positive or negative |
| purchaseType | all | all, steam or non_steam_purchase |
| language | all | Steam language code, or a comma list |
| sortBy | recent | recent, updated or all (most helpful) |
| dayRange | 0 (off) | Only reviews written in the last N days, 1 to 365 |
| dateFrom, dateTo | none | UTC dates YYYY-MM-DD; the whole dateTo day is included; not with dayRange |
| filterOffTopic | true | false also returns reviews Steam hides as off-topic activity |
| minPlaytimeHours, maxPlaytimeHours | 0 (off) | Reviewer hours at review time, up to 100,000 |
| maxReviewsPerGame | 200 | Review rows per game, up to 50,000 |
| includeGameSummary | true | Add one summary row per game |
| onlyNew, stateKey, resetSeen | false, none, false | Skip reviews already delivered under a state label; reset the memory |
| maxItems | none | Total rows across all games, summary rows included |
Example input for the 500 most helpful negative English reviews of Counter-Strike 2 written in the last 30 days:
{"appIds": ["730"],"reviewType": "negative","language": "english","sortBy": "all","dayRange": 30,"maxReviewsPerGame": 500,"includeGameSummary": false}
Invalid values (unknown language code such as en, bad or reversed dates, dayRange with dates, non-numeric app IDs) return one free error row and the run still ends as SUCCEEDED. 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 full dataset schema has 65 fields. A run with no matching reviews finishes as SUCCEEDED with no charge. A run where Steam requests fail and no rows are delivered ends as FAILED, so you never pay for a silent block. If HTTP 429 rate limits persist the run stops with a status message, and delivered rows stay billed.
⚖️ Steam Reviews Scraper vs alternatives
Compared on what each public Apify Store page shows, read on 2026-10-10:
| This actor | danek/steam-reviews-ppr | jungle_synthesizer full-history | |
|---|---|---|---|
| Price per 1,000 | $10.00 | from $0.50 | from $0.50 |
| Date window | Last N days or exact dates | Last N days (max 365) | Start and end dates |
| Off-topic toggle | Yes | Yes | Not shown |
| Developer reply | Yes, when present | Yes | Not shown |
| Game summary row | Yes, with price, Metacritic | Not shown | Totals joined on each row |
| Only-new mode | Yes | Not shown | Not shown |
| Hardware, Steam Deck | Hardware when shared, Deck status | Not shown | Not shown |
| Review-bomb flag | Yes, from daily volume | Not shown | Not shown |
Price is where this actor loses: it costs about 20 times either rival. justfeel/steam-reviews-scraper (from $1.00 per 1,000) shows hardware, Steam Deck flag and a review-bomb alert, but no date filter or only-new mode on its page. easyapi/steam-reviews-scraper (from $2.99) takes one review URL and a maximum count only. If you only need raw review text at the lowest cost, pick a cheaper actor. This one fits when you need date windows, monitoring and a per-game summary in one run.
💡 Use cases for Steam review data
- Patch sentiment and review-bomb analysis: pull negative reviews after each update and read the spike days on the summary row.
- Monitoring: schedule only-new runs to get just the newest reviews.
- NLP and ML training: recommended-labeled text, weighted by playtime at review.
- Store and deal sites: live review scores and Steam Deck status beside listings.
🔌 Run Steam Reviews Scraper via API and integrations
Call it 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.
🤖 Steam Reviews Scraper MCP server for AI agents
AI agents can call this Actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/steam-reviews-scraper. Choose it when an agent needs Steam user reviews with sentiment, helpful votes and reviewer playtime, reviews in a date window, new reviews since the last run, or a per-game summary with positive percentage, price, Metacritic score and a review-bomb flag.
Add this to your MCP client configuration (Claude Desktop, Cursor, VS Code or any client that supports remote MCP servers):
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/steam-reviews-scraper"}}}
Example agent prompt:
Use the Steam Reviews Scraper to get the 50 most helpful negative English reviews of app 730 from the last 30 days with the game summary row, then summarize the top complaints, the average playtime at review and whether a review bomb was detected.
🛡️ Is it legal to scrape Steam reviews?
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 each review carries the public Steam persona name. 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?
A Steam app ID is the number in the game store URL, for example 730 in store.steampowered.com/app/730/. For Steam Reviews Scraper you can enter app IDs directly in the appIds input, or paste the full Steam store URL and the Actor extracts the number for you.
How many Steam reviews can I scrape per game?
Steam Reviews Scraper can scrape up to 50,000 reviews per game per run through Steam cursor pagination, set with the maxReviewsPerGame input. Big games hold millions of reviews, so use the sentiment, language, date window, playtime or purchase type filters to slice them. Use maxItems to cap the total across all games.
What is playtime at review?
In Steam Reviews Scraper output, playtimeHoursAtReview is the number of hours the reviewer had in the game when they wrote the review, converted from Steam minutes to hours. Next to playtimeHoursTotal, it helps you weigh opinions of veteran players against those of new players when analyzing Steam sentiment.
Why did my run return 0 results?
Steam Reviews Scraper usually returns 0 results because the filters match nothing, for example a rare language on a small game, a narrow date window, or an app ID that does not exist. The run still ends as SUCCEEDED with a status message, and no charge. Try language all, reviewType all and no date window to widen the search.
Why did my run fail?
Steam Reviews Scraper fails a run only when Steam requests fail and no rows were delivered. The run then ends as FAILED with a clear message, and nothing is charged. Run it again later. If it keeps failing for the same Steam app ID, open the Issues tab on the Actor page so it can be investigated.
Do I get charged for game summary rows?
Yes. In Steam Reviews Scraper, one game summary row per game is a separate billable event, priced at $0.012 on the Free plan and $0.01 on Gold and above. Set includeGameSummary to false to skip it. In only-new mode a second summary for the same game on the same UTC day is skipped and not billed. Summary rows count toward the maxItems total.
Can I scrape many games in one run?
Yes. Put several Steam app IDs or store URLs in the appIds input of Steam Reviews Scraper, up to 1,000 per run. The maxReviewsPerGame cap applies to each game separately, and maxItems caps the whole run, summary rows included. Each game can also add its own game summary row, unless you turn includeGameSummary off.
Does it need a Steam account or API key?
No. Steam Reviews Scraper uses only public Steam review endpoints, the same data shown on every game store page, so no Steam account, login or API key is needed. You only need an Apify account to run the Actor.
What happens if I send an empty or invalid input?
The appIds field of Steam Reviews Scraper is required, so the Apify platform rejects a request without it with a 400 error before any run is created, and nothing is charged. Sending {} runs the defaults: Counter-Strike 2, 200 reviews plus a summary row. An unusable value, such as a bad date or language code, ends with one free error row naming the problem.
Can I try it for free?
Yes. Free Apify users can try Steam Reviews Scraper with a 10-row preview per run, and new Apify accounts include free platform credit. The preview returns real Steam review rows with the same fields as a full run. Paid users can request up to 1,000,000 rows, at $0.01 per review.
🧭 Want more gaming data? Other RecordsData 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-11