Steam Reviews Export with Sentiment (CSV/JSON) avatar

Steam Reviews Export with Sentiment (CSV/JSON)

Under maintenance

Pricing

$1.00 / 1,000 review exporteds

Go to Apify Store
Steam Reviews Export with Sentiment (CSV/JSON)

Steam Reviews Export with Sentiment (CSV/JSON)

Under maintenance

Pricing

$1.00 / 1,000 review exporteds

Rating

0.0

(0)

Developer

Francesco Correnti

Francesco Correnti

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

10 days ago

Last modified

Share

Export Steam reviews for one or more games as CSV or JSON, with an offline sentiment column per review. Uses the public Steam store reviews endpoint, no API key. For indie devs, marketers and analysts. $0.001 per review.

Input

{ "games": ["570", "https://store.steampowered.com/app/440/Team_Fortress_2/"], "language": "english", "dateFrom": "2026-01-01", "dateTo": "2026-03-31", "maxReviews": 500 }
FieldDefaultMeaning
gamesrequiredAppids (570) or store URLs. Parsed with /app/(\d+) or plain digits; invalid entries are logged and skipped
languageenglishSteam API language code, all allowed
dateFrom, dateTononeYYYY-MM-DD, UTC, both ends inclusive, on review creation time
maxReviews100TOTAL across all games (min 1)

Output schema

One dataset item per review, these 14 keys: appId (int), reviewId (str), url, text, language, date (ISO 8601 UTC), votedUp (bool), votesUp, votesFunny, playtimeForeverMin, playtimeAtReviewMin (int minutes), lexiconScore, sentimentScore (float), sentiment (str).

{"appId": 570, "reviewId": "123456", "url": "https://steamcommunity.com/profiles/7656119800000000/recommended/570/", "text": "great fun game", "language": "english", "date": "2026-03-01T12:00:00Z", "votedUp": true, "votesUp": 3, "votesFunny": 0, "playtimeForeverMin": 5400, "playtimeAtReviewMin": 1200, "lexiconScore": 1.0, "sentimentScore": 1.0, "sentiment": "positive"}

Sentiment method

Pure stdlib, no external API. Text is lowercased into word tokens and matched against embedded lists of 40+ positive and 40+ negative gaming words (fun, masterpiece, addictive / boring, buggy, crash, refund, ...). A negator (not, no, never, don't, isn't, wasn't, can't) within the 2 previous tokens flips that word.

  • lexiconScore = (pos - neg) / max(1, pos + neg), range [-1, 1], 0 when no hits
  • sentimentScore = round(0.5 * (1 if votedUp else -1) + 0.5 * lexiconScore, 3)
  • sentiment: positive if score > 0.2, negative if < -0.2, else mixed

Pricing

Pay per event: review = $0.001 per review pushed. The run stops cleanly when your max-charge limit is reached.

Limits

  • Public reviews only.
  • Steam rate limits apply: 429/5xx retried up to 3 times with backoff, 0.5-1 s pause between pages.
  • filter=recent walks back in time, so old date windows cost many requests.
  • The lexicon is English-only; other languages rely mostly on votedUp.
  • Max per run = maxReviews, total across games.