Steam Game & Reviews Scraper
Pricing
from $1.50 / 1,000 results
Steam Game & Reviews Scraper
Scrape Steam game metadata, pricing, genres, Metacritic scores & user reviews using Steam's public API. Supports bulk app IDs, store URLs & keyword search. No proxy needed.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
6
Monthly active users
5 hours ago
Last modified
Categories
Share
Steam Game & Reviews Scraper — Steam Store Data & User Reviews to JSON/CSV

Scrape game metadata and user reviews from the Steam Store using Steam's public JSON API. This Steam scraper extracts prices, discounts, genres, Metacritic scores, developers, platforms and full multilingual user reviews with playtime context — all exportable to JSON, CSV or Excel. No proxy and no authentication required.
Feed it Steam App IDs, store page URLs or keyword searches and the Actor returns clean, structured records for both game details and user reviews. It's built to scale: cursor-based pagination handles games with hundreds of thousands of reviews, and you can cap volume for quick tests.
✨ What this Actor does / Key features
- Scrapes the Steam Store via Steam's official public JSON API — stable and well-documented.
- Three input methods — direct App IDs, Steam store page URLs, or keyword search queries (each search returns up to 20 matching games).
- Game metadata — name, price, discount, genres, categories, developers, publishers, release date, Metacritic score, supported platforms and header image.
- User reviews — full review text, recommendation, hours played (total and at time of review), helpful/funny votes, language, purchase status and developer responses.
- Multilingual reviews — filter by any Steam review language or pull
alllanguages for a global review corpus. - Flexible review sorting & filtering — sort by recent, helpful or updated, and filter by positive / negative sentiment.
- Scales to large catalogs — cursor-based pagination handles games with tens of thousands of reviews; cap with
maxReviewsandmaxGames. - No proxy needed — Steam's public API is accessible without one; optional proxy support is available if you hit rate limits.
🔍 Input
| Field | Type | Description |
|---|---|---|
startUrls | array | Steam store page URLs to scrape. The App ID is extracted automatically from each URL. |
appIds | array | Steam App IDs to scrape directly (e.g. 570 for Dota 2, 730 for CS2). |
searchQueries | array | Keywords to search on the Steam Store. Each query returns up to 20 matching games whose App IDs are then scraped. |
scrapeGameDetails | boolean | When enabled, fetches full game metadata for each app. Default true. |
scrapeReviews | boolean | When enabled, fetches user reviews for each game via Steam's cursor-based review API. Default true. |
maxReviews | integer | Maximum reviews to fetch per game. 0 = unlimited (use with caution on popular games). |
reviewLanguage | string | Review language filter. all for every language, or a Steam language code (english, turkish, german, french, russian, schinese, japanese, koreana, …). Default all. |
reviewFilter | string (enum) | Review sort order: recent, helpful, updated or all (Steam's default weighted sort). Default recent. |
reviewType | string (enum) | Sentiment filter: all, positive or negative. Default all. |
maxGames | integer | Maximum total number of games to scrape across all inputs combined. 0 = unlimited. |
proxyConfiguration | object | Optional proxy settings. Not required for most runs; enable if you encounter rate limiting or blocks. |
startUrls, appIds and searchQueries can all be combined in a single run.
🚀 Example input
{"startUrls": [{ "url": "https://store.steampowered.com/app/570/Dota_2/" }],"appIds": ["730", "1091500"],"searchQueries": ["open world RPG", "indie horror"],"scrapeGameDetails": true,"scrapeReviews": true,"maxReviews": 100,"reviewLanguage": "all","reviewFilter": "recent","reviewType": "all","maxGames": 50}
📦 Output
The Actor produces two record types in the same dataset, distinguished by the type field.
Game records (type: "game")
| Field | Description |
|---|---|
appId | Steam App ID. |
name | Game title. |
url | Steam store page URL. |
gameType | game, dlc or demo. |
shortDescription | Brief game description. |
isFree | Whether the game is free to play. |
priceCurrent | Current price (with currency). |
priceOriginal | Original price before discount. |
discountPercent | Active discount percentage. |
developers | Array of developer names. |
publishers | Array of publisher names. |
genres | Array of genres (RPG, Action, Strategy, …). |
categories | Array of Steam categories (multiplayer, co-op, …). |
releaseDate | Release date string. |
metacriticScore | Metacritic score (0–100). |
platforms | Object indicating Windows / Mac / Linux availability. |
headerImage | Steam header image URL. |
Review records (type: "review")
| Field | Description |
|---|---|
appId | Steam App ID of the reviewed game. |
gameName / gameUrl | Name and store URL of the reviewed game. |
recommendationId | Steam's unique review ID. |
recommended | true = positive, false = negative. |
reviewText | Full review text. |
language | Review language. |
reviewerPlaytimeTotal | Reviewer's total hours played. |
votesHelpful | Helpful vote count. |
timestampCreated | Review date (ISO). |
purchasedOnSteam | Whether the reviewer purchased the game on Steam. |
developerResponse | Developer's reply text, if any. |
scrapedAt | ISO timestamp of when the record was scraped. |
Example output
{"type": "game","appId": "570","name": "Dota 2","isFree": true,"genres": ["Action", "Free to Play", "Strategy"],"releaseDate": "Jul 9, 2013","metacriticScore": 90,"developers": ["Valve"],"platforms": { "windows": true, "mac": true, "linux": true }}
{"type": "review","appId": "570","gameName": "Dota 2","recommended": true,"reviewText": "10 years later and it's still the most rewarding game I've played.","language": "english","reviewerPlaytimeTotal": 4821.5,"votesHelpful": 847,"timestampCreated": "2026-01-15T14:32:00.000Z"}
💡 Use cases
- Game market research — analyze pricing, genre trends, discount patterns and release timing across the catalog.
- Sentiment analysis — build a positive/negative review corpus with playtime context for NLP models.
- AI training data — assemble a large multilingual game-review dataset across 29 Steam languages.
- Competitor analysis — compare reviews, Metacritic scores and pricing across similar games.
- Indie developer intelligence — discover what players love and hate in a specific genre.
- Price tracking — monitor discounts and price changes across a watchlist of games on a schedule.
❓ Frequently Asked Questions
Do I need an API key or login to use this? No. The Actor uses Steam's public JSON API, which requires no authentication, API key or account.
Is it legal to scrape Steam? The Actor collects publicly available store data and user reviews via Steam's public API. You are responsible for complying with Steam's terms of service and applicable law.
Do I need a proxy?
Not for most runs — Steam's public API is accessible without one. Optional proxyConfiguration is available if you encounter rate limiting or access blocks.
How many reviews can I get per game?
As many as the game has. Steam returns up to 100 reviews per API page and the Actor paginates automatically with cursor-based pagination. Set maxReviews to 0 for unlimited, or a smaller number to cap volume.
Can I filter reviews by language or sentiment?
Yes. Use reviewLanguage to filter by a specific Steam language code (or all), reviewType to get only positive or negative reviews, and reviewFilter to sort by recent, helpful or updated.
How do I find a game's App ID?
It's the number in the store URL: store.steampowered.com/app/570 → App ID 570. You can also just paste the full store URL into startUrls or use searchQueries.
Can I schedule it and what formats are supported? Yes — schedule it on Apify to track prices and new reviews over time. Results export to JSON, CSV, Excel or XML, or via the Apify API.
⏰ Scheduling & integration
Schedule this Actor on Apify to run daily or weekly for ongoing price tracking and review monitoring. Export results to JSON, CSV or Excel, pull them via the Apify API, or connect the dataset to Google Sheets, webhooks or your own analytics pipeline.