Skip to content

Steam Reviews Scraper

Try for free

Scrape public Steam game reviews by app ID, store URL or game name. Filter by language, sentiment, purchase type, date and playtime; get text, votes, playtime and Steam review scores.

🎮 Steam Reviews Scraper

Scrape public Steam game reviews in seconds: review text, recommendation, helpful and funny votes, playtime, language, purchase type and Steam's review score. Paste app IDs, store URLs or just game names, pick your filters, and export clean rows to JSON, CSV or Excel. No Steam account, no API key, and a low price per review.

✨ Why use Steam Reviews Scraper?

  • ⚡ Fast — reads Steam's own review feed 100 reviews per request; about 3,000 reviews in roughly 20 seconds of scraping.
  • 🔎 Any input — app IDs (730), store or community URLs, or plain game names that are resolved through Steam search.
  • 🎛️ Real filters — language, positive or negative, bought on Steam or elsewhere, date range, last N days and playtime at review time, all applied by Steam so you only pay for matching reviews.
  • 📊 Scores included — optional summary rows with Steam's review score and total positive and negative counts for your exact filters.
  • 🧾 Rich rows — playtime (total, at review, last two weeks, Steam Deck), games owned, Early Access flag, refunds, developer replies and optional store details per game.
  • 🔓 No login — only public data that anyone can see on the Steam store.

🎯 Use cases

  • 🕹️ Game studios — track what players say after a patch, a sale or a launch, by language and playtime.
  • 📈 Market research — compare sentiment and review volume across competing titles and genres.
  • 🧠 NLP and AI datasets — build multilingual sentiment corpora with clean positive or negative labels.
  • 🛠️ Community and QA teams — surface negative reviews from experienced players to find real bugs and balance issues.
  • 📰 Journalists and analysts — quantify review bombs, recovery after updates and regional reception.

🚀 How to use

  1. Add games to Games: app IDs, Steam store URLs, Steam Community URLs or game names.
  2. Set Max reviews per game (0 reads every matching review).
  3. Optionally set filters: sort order, languages, review type, purchase type, dates, playtime.
  4. Turn on Add a summary row per game or Add game details to each review if you need them.
  5. Run the actor and export the dataset to JSON, CSV, Excel or HTML, or read it through the API.

📥 Input

FieldWhat it does
gamesApp IDs, store or community URLs, or game names
maxReviewsPerGameReviews per game (default 20, 0 = all)
sortrecent, updated or helpful
languagesSteam languages such as english, german, schinese (empty = all)
reviewTypeall, positive or negative
purchaseTypeall, steam or non_steam_purchase
startDate / endDatePosted between these dates (YYYY-MM-DD, UTC)
dayRangeOnly the last N days
minPlaytimeHours / maxPlaytimeHoursReviewer's playtime when the review was written
includeGameInfoAttach store details to every review
includeSummaryAdd one free summary row per game
{
  "games": ["730", "https://store.steampowered.com/app/1145360/Hades/", "Elden Ring"],
  "maxReviewsPerGame": 100,
  "sort": "recent",
  "languages": ["english"],
  "reviewType": "negative",
  "dayRange": 30,
  "includeSummary": true
}

📤 Output

One row per review (type: "review"), plus one row per game (type: "summary") when summary rows are on.

FieldDescription
appId, gameName, gameUrlThe game
reviewId, reviewUrlThe review and its Steam Community link
steamId, authorName, authorProfileUrl, authorAvatarUrlPublic reviewer profile
review, languageReview text (Steam BBCode) and language
positive, sentimentRecommended or not
votesUp, votesFunny, commentCount, scoreEngagement and Steam's helpfulness score
createdAt, updatedAtPosted and edited times (ISO 8601)
playtimeForeverMinutes, playtimeAtReviewMinutes, playtimeLastTwoWeeksMinutes, playtimeDeckMinutesPlaytime
gamesOwned, totalReviewsByAuthor, authorLastPlayedAtReviewer activity
steamPurchase, receivedForFree, refunded, earlyAccess, steamDeckFlags
developerResponse, developerRespondedAtDeveloper reply, when there is one
gameInfoGenres, developers, publishers, price, release date, Metacritic score, review score (optional)

Example review row (sample data):

{
  "type": "review",
  "appId": 1145360,
  "gameName": "Hades",
  "reviewId": "170000001",
  "reviewUrl": "https://steamcommunity.com/profiles/76561190000000001/recommended/1145360/?recommendationid=170000001",
  "gameUrl": "https://store.steampowered.com/app/1145360",
  "steamId": "76561190000000001",
  "authorName": "SampleReviewer",
  "authorProfileUrl": "https://steamcommunity.com/profiles/76561190000000001",
  "authorAvatarUrl": "https://avatars.steamstatic.com/0000000000000000000000000000000000000000_full.jpg",
  "authorLastPlayedAt": "2026-09-30T20:15:00.000Z",
  "language": "english",
  "review": "Tight combat, great music and every run feels different. Easy recommendation.",
  "positive": true,
  "sentiment": "positive",
  "score": 0.54,
  "votesUp": 12,
  "votesFunny": 1,
  "commentCount": 0,
  "createdAt": "2026-09-28T18:02:11.000Z",
  "updatedAt": "2026-09-28T18:02:11.000Z",
  "playtimeForeverMinutes": 2410,
  "playtimeAtReviewMinutes": 2275,
  "playtimeLastTwoWeeksMinutes": 340,
  "playtimeDeckMinutes": null,
  "gamesOwned": 214,
  "totalReviewsByAuthor": 9,
  "steamPurchase": true,
  "receivedForFree": false,
  "refunded": false,
  "earlyAccess": false,
  "steamDeck": false,
  "developerResponse": null,
  "developerRespondedAt": null,
  "inputSource": "https://store.steampowered.com/app/1145360/Hades/"
}

Example summary row:

{
  "type": "summary",
  "appId": 1245620,
  "gameName": "ELDEN RING",
  "gameUrl": "https://store.steampowered.com/app/1245620",
  "reviewScore": 8,
  "reviewScoreDesc": "Very Positive",
  "totalPositive": 1078237,
  "totalNegative": 80562,
  "totalReviews": 1158799,
  "positiveRatio": 0.9305,
  "reviewsScraped": 10,
  "filters": {"language": "all", "reviewType": "all", "purchaseType": "all", "sort": "recent", "startDate": null, "endDate": null, "minPlaytimeHours": null, "maxPlaytimeHours": null},
  "inputSource": "Elden Ring"
}

💰 Pricing

You pay $0.40 per 1,000 reviews ($0.0004 per review), plus a small amount of platform usage (compute and datacenter proxy traffic). Summary rows are free.

Worked example: 1,000 reviews cost $0.40 in review fees plus roughly a tenth of a cent of platform usage.

❓ FAQ

Is it legal to scrape Steam reviews? The actor reads only public reviews that anyone can open on the Steam store without logging in. You are responsible for how you use the data, including personal data rules such as GDPR for reviewer names and profile links.

Do I need a Steam account or a proxy? No account. Datacenter proxies are the default and work well; the actor switches to residential proxies on its own if datacenter addresses are refused.

How many reviews can I get? Every review Steam lists for your filters. Popular games have millions; set maxReviewsPerGame to 0 to read them all, or a number to cap the cost.

Why are some fields empty? Steam only fills developerResponse, playtimeDeckMinutes and some reviewer stats when they exist or when the reviewer's profile makes them public.

What if a game name matches the wrong game? Names go through Steam's store search and the exact title wins. For full control, use the app ID or store URL.

Can I schedule it or use the API? Yes. Schedule runs to monitor new reviews daily, and read results through the API or integrations.

⚠️ Limits

  • Steam's "helpful" order with a date range only pages through its first 100 results; beyond that the actor walks all-time helpful reviews and keeps those in your range, which is slower. Use "Most recent" for large date-range jobs.
  • Review text is returned as Steam writes it, including BBCode tags such as [h1] and [spoiler].
  • Only reviews visible on the public Steam store are available; deleted or private reviews cannot be read. Reviews from off-topic review-bomb periods are included.
  • Store details (gameInfo) come from the US store in English.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.