Steam Reviews Export with Sentiment (CSV/JSON)
Under maintenancePricing
$1.00 / 1,000 review exporteds
Steam Reviews Export with Sentiment (CSV/JSON)
Under maintenancePricing
$1.00 / 1,000 review exporteds
Rating
0.0
(0)
Developer
Francesco Correnti
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 days ago
Last modified
Categories
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 }
| Field | Default | Meaning |
|---|---|---|
games | required | Appids (570) or store URLs. Parsed with /app/(\d+) or plain digits; invalid entries are logged and skipped |
language | english | Steam API language code, all allowed |
dateFrom, dateTo | none | YYYY-MM-DD, UTC, both ends inclusive, on review creation time |
maxReviews | 100 | TOTAL 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 hitssentimentScore = round(0.5 * (1 if votedUp else -1) + 0.5 * lexiconScore, 3)sentiment:positiveif score > 0.2,negativeif < -0.2, elsemixed
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=recentwalks 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.