Steam Reviews Scraper avatar

Steam Reviews Scraper

Pricing

from $0.12 / 1,000 review saveds

Go to Apify Store
Steam Reviews Scraper

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldTypeDescription
appIdsOrUrlsarraySteam app IDs or Steam store app URLs
maxReviewsPerAppintegerMaximum reviews to save for each app
filterstringReview ordering: recent, updated, or all
languagestringSteam language code, such as english or all
reviewTypestringall, positive, or negative
purchaseTypestringall, steam, or non_steam_purchase
cursorstringOptional pagination cursor for continuation
includeAuthorbooleanInclude public author ID, profile URL, review counts, and playtime metadata
proxyConfigurationobjectOptional 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

FieldDescription
appIdSteam app ID
appUrlSteam app URL
recommendationIdUnique Steam review/recommendation ID
reviewReview text
languageReview language
votedUpWhether the player recommends the game
votesUpHelpful vote count
votesFunnyFunny vote count
weightedVoteScoreSteam weighted vote score
commentCountNumber of review comments
steamPurchaseWhether the game was purchased on Steam
receivedForFreeWhether the reviewer marked it as received for free
refundedWhether the review is associated with a refund flag
writtenDuringEarlyAccessEarly-access review flag
primarilySteamDeckSteam Deck related flag when available
timestampCreatedReview creation date/time
timestampUpdatedReview update date/time
authorSteamIdReview author Steam ID
authorPersonaNamePublic Steam persona name when returned
authorProfileUrlAuthor profile URL
playtimeForeverMinutesTotal recorded playtime in minutes
playtimeAtReviewMinutesPlaytime at the time of review
lastPlayedLast played timestamp
querySummaryTotalReviewsTotal reviews reported by Steam for the query
nextCursorCursor that can be used for continuation
scrapedAtWhen 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.005 once per run.
  • Review saved event (BRONZE): $0.0002 per saved review (about $0.20 per 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

  1. Open the actor on Apify.
  2. Add one or more Steam app IDs or app URLs.
  3. Set maxReviewsPerApp to the number of reviews you need.
  4. Choose language and sentiment filters.
  5. Click Start.
  6. Export results from the Dataset tab.

Tips for best results

  • Start with maxReviewsPerApp: 25 for a quick sample.
  • Use filter: recent for monitoring new reviews.
  • Use reviewType: negative to triage player complaints.
  • Use language: all for global studies.
  • Keep the returned nextCursor if 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:

  • english
  • german
  • french
  • spanish
  • schinese
  • japanese
  • koreana
  • russian
  • all

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 ApifyClient
import os
client = 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.

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.