Steam Reviews Scraper — Game Reviews & Playtime avatar

Steam Reviews Scraper — Game Reviews & Playtime

Pricing

from $2.00 / 1,000 reviews

Go to Apify Store
Steam Reviews Scraper — Game Reviews & Playtime

Steam Reviews Scraper — Game Reviews & Playtime

Scrape Steam game reviews: full review text, recommended or not, votes up and funny, comment count, date, language, and the reviewer's playtime at review, total playtime, games owned and review count, plus each game's overall positive percentage. No API key.

Pricing

from $2.00 / 1,000 reviews

Rating

0.0

(0)

Developer

Hichem Ben Moussa

Hichem Ben Moussa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape Steam game reviews with the one signal no other review source has: how long the reviewer actually played.

Full review text, recommended or not, helpful and funny votes, review date, language, and the reviewer's playtime at the moment they wrote it, their total playtime, how many games they own and how many reviews they have written — plus each game's overall positive percentage.

No API key required.

What you get

FieldDescription
reviewFull review text
isPositive, recommendationThumbs up or down, as a boolean and as a label
playtimeAtReviewHoursHours played when the review was written
playtimeTotalHoursHours played now — a much higher number means they kept playing after a bad review
playtimeLast2WeeksHoursWhether they still play it
votesUp, votesFunny, commentCountCommunity response
weightedVoteScoreSteam's own helpfulness weighting
createdAt, updatedAtReview dates
languageReview language
steamPurchase, receivedForFreeWhether they paid, and whether the copy was free
writtenDuringEarlyAccessReview predates 1.0
onSteamDeckPlayed mainly on Steam Deck
authorName, authorSteamId, authorProfileUrlReviewer identity as Steam publishes it
authorGamesOwned, authorReviewCountReviewer credibility
appName, developers, publishers, genresGame context
appTotalReviews, appTotalPositive, appTotalNegativeStore-wide counts
appPositivePercent, appReviewScoreDesce.g. 85.8 and Very Positive

Example input

{
"apps": ["730"],
"language": "english",
"sortBy": "recent",
"maxReviewsPerApp": 300
}

Build a complaints backlog from players who actually know the game:

{
"apps": ["https://store.steampowered.com/app/730/"],
"onlyNegative": true,
"minPlaytimeHours": 50,
"keyword": "cheaters"
}

App IDs can be given as a bare number or as any Steam store URL.

Example output

{
"appName": "Counter-Strike 2",
"recommendation": "Not Recommended",
"review": "cheater's don't even try to hide that they are cheating, top 100 are full of cheaters...",
"playtimeAtReviewHours": 953.2,
"playtimeTotalHours": 1024.9,
"votesUp": 12,
"createdAt": "2026-09-25T18:22:41.000Z",
"language": "english",
"steamPurchase": true,
"authorGamesOwned": 168,
"appTotalReviews": 9893037,
"appPositivePercent": 85.8,
"appReviewScoreDesc": "Very Positive"
}

Who uses this

  • Game studios — read what players with 100+ hours say, separately from what players with 20 minutes say. The minPlaytimeHours filter is the whole point.
  • Publishers evaluating a genre — sentiment and complaint themes across competing titles
  • Community and support teams — catch a post-patch review-bomb the day it starts, via sortBy: recent on a schedule
  • Market researchers — positive percentage over time, by language, tells you which regions a game is failing in
  • Store and review aggregators — a full review corpus with reviewer context
  • Sentiment and LLM pipelines — dated, versioned, language-tagged text with a credibility signal attached

playtimeAtReviewHours versus playtimeTotalHours is the interesting pair: a negative review at 10 hours from someone who has since played 400 is a very different datum from one at 10 hours who stopped there.

Why playtime changes the analysis

Every other review platform gives you a star and some text. Steam tells you the reviewer had 953 hours in the game. That turns review mining from vibes into something you can weight:

  • Filter to reviewers above a playtime threshold and the noise largely disappears
  • authorReviewCount and authorGamesOwned surface drive-by accounts
  • receivedForFree separates paying players from key recipients
  • writtenDuringEarlyAccess stops pre-1.0 complaints polluting a launch retrospective

Notes

  • Language matters to your result count. The default is english; set it to all to pull every language, which is what you want for regional sentiment and gives you many more reviews.
  • sortBy: recent is the right choice for monitoring, and Most helpful for a one-off qualitative read. Steam's pagination is cursor-based, and the actor stops when a page returns nothing new rather than trusting the cursor to end.
  • Steam keeps issuing a cursor indefinitely, so an all-duplicate page is the real end of the feed. Handled.
  • Review counts in query_summary reflect your language and type filters, not the game's global totals, when those filters are set — the store-wide figures in each row come from the same filtered summary, so read them as "within this slice".
  • Reviewer names and profile URLs are published by Steam on the public store page; treat them as public profile data and handle them accordingly.

Pricing

Pay per result. Each review returned counts as one result, and the playtime, keyword and sentiment filters are applied before charging — so a run that keeps only negative reviews from 50-hour players bills for just those.

Notes

  • Data comes from Steam's public review API and store details endpoint.
  • This is an unofficial actor and is not affiliated with Valve or Steam.