Steam Reviews Scraper
Pricing
from $0.12 / 1,000 review saveds
Steam Reviews Scraper
🎮 Extract public Steam game reviews with review text, sentiment, votes, playtime, language, purchase flags, and author metadata.
Pricing
from $0.12 / 1,000 review saveds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Steam game reviews into clean, analysis-ready datasets.
Steam Reviews Scraper helps studios, publishers, market researchers, agencies, and data teams monitor what players say about any public Steam game. Add Steam app IDs or store URLs, choose review filters, and export review text together with recommendation status, votes, playtime, purchase flags, language, timestamps, and author profile signals.
What does Steam Reviews Scraper do?
This actor collects public review records for Steam apps and saves one dataset item per review.
Use it to:
- 🎮 Track new reviews for your own game
- 🧭 Compare player sentiment across competitors
- 📈 Build dashboards for review volume and helpful votes
- 🌍 Analyze language mix across Steam communities
- ⏱️ Segment reviews by playtime at review time
- 💬 Export review text for NLP and sentiment workflows
Who is it for?
Game studios
Monitor launch feedback, patch reactions, and long-term player satisfaction.
Publishers
Compare portfolio titles, competitor games, and campaign impact across markets.
Market researchers
Create repeatable datasets for genre, pricing, reputation, and player behavior analysis.
Reputation-monitoring teams
Detect spikes in negative reviews, refund-related feedback, and language-specific issues.
Data analysts
Load normalized review rows into BI tools, notebooks, warehouses, or dashboards.
Why use this actor?
- ✅ Works with Steam app IDs and Steam app URLs
- ✅ Supports review filters and sentiment filters
- ✅ Captures review text and metadata in one row
- ✅ Includes playtime, author, purchase, vote, and timestamp fields
- ✅ Uses a low-cost HTTP workflow suitable for regular monitoring
- ✅ Exports to JSON, CSV, Excel, XML, RSS, and API endpoints through Apify
Typical use cases
- Daily review monitoring for a game launch
- Competitor reputation tracking by app ID
- Player feedback export before roadmap planning
- Negative-review analysis after a patch
- Language-specific sentiment reporting
- Dataset creation for ML/NLP labeling
- Helpful-vote and funny-vote analysis
- Early-access feedback monitoring
Input overview
The actor accepts one or more Steam app IDs or Steam app URLs.
Example app ID:
730
Example Steam URL:
https://store.steampowered.com/app/730/CounterStrike_2/
Input fields
| Field | Type | Description |
|---|---|---|
appIdsOrUrls | array | Steam app IDs or Steam store app URLs |
maxReviewsPerApp | integer | Maximum reviews to save for each app |
filter | string | Review ordering: recent, updated, or all |
language | string | Steam language code, such as english or all |
reviewType | string | all, positive, or negative |
purchaseType | string | all, steam, or non_steam_purchase |
cursor | string | Optional pagination cursor for continuation |
includeAuthor | boolean | Include public author ID, profile URL, review counts, and playtime metadata |
proxyConfiguration | object | Optional proxy settings |
Example input
{"appIdsOrUrls": ["730", "https://store.steampowered.com/app/570/Dota_2/"],"maxReviewsPerApp": 50,"filter": "recent","language": "english","reviewType": "all","purchaseType": "all","cursor": "*","includeAuthor": true,"proxyConfiguration": { "useApifyProxy": false }}
Output overview
Each dataset item represents one Steam review.
Output data table
| Field | Description |
|---|---|
appId | Steam app ID |
appUrl | Steam app URL |
recommendationId | Unique Steam review/recommendation ID |
review | Review text |
language | Review language |
votedUp | Whether the player recommends the game |
votesUp | Helpful vote count |
votesFunny | Funny vote count |
weightedVoteScore | Steam weighted vote score |
commentCount | Number of review comments |
steamPurchase | Whether the game was purchased on Steam |
receivedForFree | Whether the reviewer marked it as received for free |
refunded | Whether the review is associated with a refund flag |
writtenDuringEarlyAccess | Early-access review flag |
primarilySteamDeck | Steam Deck related flag when available |
timestampCreated | Review creation date/time |
timestampUpdated | Review update date/time |
authorSteamId | Review author Steam ID |
authorPersonaName | Public Steam persona name when returned |
authorProfileUrl | Author profile URL |
playtimeForeverMinutes | Total recorded playtime in minutes |
playtimeAtReviewMinutes | Playtime at the time of review |
lastPlayed | Last played timestamp |
querySummaryTotalReviews | Total reviews reported by Steam for the query |
nextCursor | Cursor that can be used for continuation |
scrapedAt | When the item was collected |
Example output item
{"appId": "730","appUrl": "https://store.steampowered.com/app/730/","recommendationId": "123456789","review": "Great competitive game with a strong community.","language": "english","votedUp": true,"votesUp": 12,"votesFunny": 0,"weightedVoteScore": 0.72,"steamPurchase": true,"playtimeAtReviewMinutes": 2400,"authorProfileUrl": "https://steamcommunity.com/profiles/7656119...","timestampCreated": "2026-06-27T10:30:00.000Z"}
How much does it cost to scrape Steam reviews?
The actor uses pay-per-event pricing.
- Start event:
$0.005once per run. - Review saved event (BRONZE):
$0.0002per saved review (about$0.20per 1,000 reviews). - Lower per-review prices are available on higher Apify tiers.
For most monitoring jobs, the cost scales with the number of reviews you request.
How to run
- Open the actor on Apify.
- Add one or more Steam app IDs or app URLs.
- Set
maxReviewsPerAppto the number of reviews you need. - Choose language and sentiment filters.
- Click Start.
- Export results from the Dataset tab.
Tips for best results
- Start with
maxReviewsPerApp: 25for a quick sample. - Use
filter: recentfor monitoring new reviews. - Use
reviewType: negativeto triage player complaints. - Use
language: allfor global studies. - Keep the returned
nextCursorif you want to continue from a later page. - Run separate jobs for different games when you need independent schedules.
Steam language examples
Common language values include:
englishgermanfrenchspanishschinesejapanesekoreanarussianall
Integrations
Use the dataset with:
- 📊 Google Sheets or Excel exports for quick analysis
- 🧠 NLP pipelines for topic extraction and sentiment labels
- 🗄️ BigQuery, Snowflake, or Postgres via Apify integrations
- 🔔 Slack or email alerts triggered by scheduled runs
- 📈 BI dashboards tracking review volume and recommendation ratio
- 🧪 QA workflows that compare reactions before and after game updates
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/steam-reviews-scraper').call({appIdsOrUrls: ['730'],maxReviewsPerApp: 25,filter: 'recent',language: 'english'});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/steam-reviews-scraper').call(run_input={'appIdsOrUrls': ['730'],'maxReviewsPerApp': 25,'filter': 'recent','language': 'english',})print(run['defaultDatasetId'])
cURL
curl "https://api.apify.com/v2/acts/fetch_cat~steam-reviews-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"appIdsOrUrls":["730"],"maxReviewsPerApp":25}'
MCP: use Steam reviews in AI tools
You can connect Apify actors to Claude Desktop, Claude Code, and other MCP clients.
Example MCP server URL:
https://mcp.apify.com/?tools=fetch_cat/steam-reviews-scraper
Claude Code setup:
$claude mcp add apify-steam-reviews "https://mcp.apify.com/?tools=fetch_cat/steam-reviews-scraper"
Claude Desktop JSON setup:
{"mcpServers": {"apify-steam-reviews": {"url": "https://mcp.apify.com/?tools=fetch_cat/steam-reviews-scraper"}}}
Example prompts:
- "Scrape the latest 50 negative Steam reviews for app 730 and summarize the top complaints."
- "Compare positive and negative review themes for this Steam game."
- "Extract recent English reviews and identify recurring performance issues."
Scheduling
Set up an Apify schedule to monitor reviews daily or weekly.
Good scheduled inputs:
- 25 recent reviews every day for launch monitoring
- 100 negative reviews after each patch
- Weekly competitor review samples across 5 app IDs
Data quality notes
Steam review text is user-generated, so it may contain profanity, emojis, links, formatting, or multiple languages. The actor preserves the review text as provided and adds normalized metadata fields for easier filtering.
Limits
- Only public Steam app reviews are supported.
- Private account-only data is not collected.
- Very large backfills should be split into multiple runs.
- Availability depends on Steam keeping the public review pages accessible.
FAQ
Can I scrape reviews for multiple Steam games?
Yes. Add multiple app IDs or Steam app URLs and set the per-app review limit.
Does this collect private Steam account data?
No. It only returns public review fields that are visible for Steam app reviews.
Troubleshooting
I got fewer reviews than requested. Why?
The selected app/filter/language combination may have fewer available reviews than your limit. Try language: all or broaden the sentiment and purchase filters.
My Steam URL was skipped. Why?
Use a URL containing /app/<id>/, or provide the numeric app ID directly.
Can I continue from a previous run?
Yes. Copy a nextCursor value from the dataset and use it as the cursor input in the next run.
Legality
This actor extracts publicly available Steam review information. Use the data responsibly, respect Steam's terms, avoid abusive request volumes, and do not use the results to identify or harass individual users.
Related scrapers
- Google Autocomplete Scraper — collect search suggestions for game and brand keyword research.
- Google Scholar Profiles Scraper — export public researcher profiles and publication metrics.
- YouTube Transcript Scraper — collect video transcripts for creator or campaign analysis.
- Bluesky Profile Feed Scraper — monitor public social posts from Bluesky profiles.
- Google Flights Scraper — collect flight search results for travel market analysis.
Changelog
0.1
Initial version with app ID / URL input, review filters, language support, cursor pagination, and normalized review output.
Support
If you need help, open an issue on the actor page with your input, expected result, and run ID.