Steam Game Reviews & Ratings Scraper avatar

Steam Game Reviews & Ratings Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Steam Game Reviews & Ratings Scraper

Steam Game Reviews & Ratings Scraper

Scrape Steam game reviews in bulk via Steam's official public reviews API. Extract ratings, sentiment (positive/negative), review text, playtime, helpful votes, reviewer language and purchase type.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

coolinbex

coolinbex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Steam Reviews Scraper — Bulk Game Reviews, Ratings & Sentiment Export

Extract Steam game reviews at scale — ratings, sentiment, review text, playtime, helpful votes, language, and purchase type — using Steam's own public reviews API. No login, no cookies, no API key, and no browser automation required, so there's nothing fragile to break.

What this actor does

  • Accepts any mix of Steam appId (730), store URL (https://store.steampowered.com/app/730/), or plain game name ("Counter-Strike 2", auto-resolved via Steam's search API).
  • Paginates through reviews reliably, including a guard against a documented Steam API bug where the pagination cursor can repeat instead of signalling the end of results.
  • Outputs one clean, flat record per review plus a per-game rating summary (total positive/negative, review score, "Very Positive" style description).
  • Retries transient network/5xx/429 errors with backoff, and fails fast on permanent errors (like an invalid appId) instead of wasting compute.
  • Works entirely off Steam's public JSON endpoints — no residential proxies needed.

Who this is for

  • Game developers & publishers monitoring sentiment after a launch or patch.
  • Market researchers & competitive analysts comparing reception across titles.
  • Data scientists building sentiment-analysis or recommendation datasets.
  • Game journalists & content creators sourcing player quotes and rating trends.

Input

FieldTypeDescription
gamesarray of stringsRequired. Steam appIds, store URLs, or game names.
maxReviewsPerGameintegerMax reviews to collect per game. Default 200.
reviewTypeall | positive | negativeFilter by sentiment. Default all.
languagestringSteam language code, or all. Default all.
filterrecent | updated | allSort order. recent is recommended for full, reliable extraction. Default recent.
dayRangeintegerOnly used when filter is all. Max 365.
purchaseTypeall | steam | non_steam_purchaseFilter by purchase source. Default all.
includeOffTopicActivitybooleanInclude reviews flagged as off-topic "review bombs". Default false.
summaryOnlybooleanSkip individual reviews, output only per-game rating summaries. Default false.
requestDelayMsintegerDelay between requests. Default 350.

Example input

{
"games": ["730", "https://store.steampowered.com/app/1245620/ELDEN_RING/", "Hades"],
"maxReviewsPerGame": 500,
"reviewType": "all",
"language": "english",
"filter": "recent"
}

Output

One dataset item per review:

{
"appId": "730",
"appName": null,
"recommendationId": "231560947",
"steamId": "76561198769876625",
"language": "english",
"review": "Great game, still going strong.",
"votedUp": true,
"votesUp": 12,
"votesFunny": 0,
"weightedVoteScore": "0.52",
"commentCount": 0,
"steamPurchase": true,
"receivedForFree": false,
"writtenDuringEarlyAccess": false,
"timeCreated": "2026-07-29T03:06:15.000Z",
"timeUpdated": "2026-07-29T03:06:15.000Z",
"playtimeForeverHours": 189.2,
"playtimeAtReviewHours": 189.2,
"numGamesOwned": 42,
"numReviewsByAuthor": 3,
"scrapedAt": "2026-09-14T10:00:00.000Z"
}

Plus one summary record per game:

{
"type": "GAME_SUMMARY",
"appId": "730",
"appName": null,
"reviewScore": 9,
"reviewScoreDesc": "Overwhelmingly Positive",
"totalPositive": 2100000,
"totalNegative": 150000,
"totalReviews": 2250000,
"reviewsScrapedThisRun": 500
}

Download results as JSON, CSV, Excel, or push them straight to your own database via Apify's integrations.

Why "recent" instead of "all" for sort order

Steam's all filter (sorted by helpfulness) uses a sliding day-range window and is more prone to the pagination-cursor bug mentioned above. This actor's cursor-loop guard prevents an infinite loop either way, but recent/updated terminate cleanly and are recommended when you want a complete, reliable pull.

Notes

This actor reads only publicly available review text and public author Steam IDs via Steam's official appreviews endpoint — the same data visible to anyone on the game's store page. Use responsibly and in line with Steam's terms of service and applicable data-protection law in your jurisdiction.