Steam Game & Reviews Scraper avatar

Steam Game & Reviews Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Steam Game & Reviews Scraper

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

Logiover

Maintained by Community

Actor 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

Steam Game & Reviews Scraper

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 all languages 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 maxReviews and maxGames.
  • No proxy needed — Steam's public API is accessible without one; optional proxy support is available if you hit rate limits.

🔍 Input

FieldTypeDescription
startUrlsarraySteam store page URLs to scrape. The App ID is extracted automatically from each URL.
appIdsarraySteam App IDs to scrape directly (e.g. 570 for Dota 2, 730 for CS2).
searchQueriesarrayKeywords to search on the Steam Store. Each query returns up to 20 matching games whose App IDs are then scraped.
scrapeGameDetailsbooleanWhen enabled, fetches full game metadata for each app. Default true.
scrapeReviewsbooleanWhen enabled, fetches user reviews for each game via Steam's cursor-based review API. Default true.
maxReviewsintegerMaximum reviews to fetch per game. 0 = unlimited (use with caution on popular games).
reviewLanguagestringReview language filter. all for every language, or a Steam language code (english, turkish, german, french, russian, schinese, japanese, koreana, …). Default all.
reviewFilterstring (enum)Review sort order: recent, helpful, updated or all (Steam's default weighted sort). Default recent.
reviewTypestring (enum)Sentiment filter: all, positive or negative. Default all.
maxGamesintegerMaximum total number of games to scrape across all inputs combined. 0 = unlimited.
proxyConfigurationobjectOptional 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")

FieldDescription
appIdSteam App ID.
nameGame title.
urlSteam store page URL.
gameTypegame, dlc or demo.
shortDescriptionBrief game description.
isFreeWhether the game is free to play.
priceCurrentCurrent price (with currency).
priceOriginalOriginal price before discount.
discountPercentActive discount percentage.
developersArray of developer names.
publishersArray of publisher names.
genresArray of genres (RPG, Action, Strategy, …).
categoriesArray of Steam categories (multiplayer, co-op, …).
releaseDateRelease date string.
metacriticScoreMetacritic score (0–100).
platformsObject indicating Windows / Mac / Linux availability.
headerImageSteam header image URL.

Review records (type: "review")

FieldDescription
appIdSteam App ID of the reviewed game.
gameName / gameUrlName and store URL of the reviewed game.
recommendationIdSteam's unique review ID.
recommendedtrue = positive, false = negative.
reviewTextFull review text.
languageReview language.
reviewerPlaytimeTotalReviewer's total hours played.
votesHelpfulHelpful vote count.
timestampCreatedReview date (ISO).
purchasedOnSteamWhether the reviewer purchased the game on Steam.
developerResponseDeveloper's reply text, if any.
scrapedAtISO 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.