Steam Game Reviews Scraper
Pricing
$0.50 / 1,000 results
Go to Apify Store
Steam Game Reviews Scraper
Fetch user reviews for any Steam game from Steam's public official store review API, with filtering, sorting, and date range support.
Steam Game Reviews Scraper
Pricing
$0.50 / 1,000 results
Fetch user reviews for any Steam game from Steam's public official store review API, with filtering, sorting, and date range support.
You can access the Steam Game Reviews Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "blDsCaNgb6yOdU72w" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/zerahdata~steam-reviews-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-zerahdata-steam-reviews-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/zerahdata~steam-reviews-scraper/runs": { "post": { "operationId": "runs-sync-zerahdata-steam-reviews-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/zerahdata~steam-reviews-scraper/run-sync": { "post": { "operationId": "run-sync-zerahdata-steam-reviews-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "games": { "title": "Games", "type": "array", "description": "Steam games to fetch reviews for. Enter a Steam store URL (e.g. https://store.steampowered.com/app/730/CounterStrike_2/) or a plain numeric app ID (e.g. 730).", "items": { "type": "string" } }, "gameNames": { "title": "Search by game name", "type": "array", "description": "Optional. Game titles to resolve automatically via Steam's public store search (e.g. 'Stardew Valley'). Each name is resolved to one app ID; if nothing matches, you'll get a SEARCH_NO_MATCH error row for that name instead of a silent gap.", "items": { "type": "string" } }, "maxReviewsPerGame": { "title": "Max reviews per game", "minimum": 0, "type": "integer", "description": "Maximum number of reviews to fetch per game. Set to 0 for unlimited (fetch all available reviews).", "default": 100 }, "sort": { "title": "Sort by", "enum": [ "recent", "updated", "helpful" ], "type": "string", "description": "How Steam should order the reviews. 'Most recent' and 'Last updated' page reliably through all reviews. 'Most helpful' widens the day-range window until it finds results and does not reliably page through full history.", "default": "recent" }, "languages": { "title": "Languages", "type": "array", "description": "Review languages to include, using Steam's API language codes (e.g. 'english', 'german', 'schinese'). Leave empty or include 'all' for every language.", "default": [ "all" ], "items": { "type": "string" } }, "reviewType": { "title": "Review type", "enum": [ "all", "positive", "negative" ], "type": "string", "description": "Filter reviews by recommendation.", "default": "all" }, "purchaseType": { "title": "Purchase type", "enum": [ "all", "steam", "non_steam_purchase" ], "type": "string", "description": "Filter reviews by how the game was obtained.", "default": "all" }, "includeOffTopicActivity": { "title": "Include off-topic review bombs", "type": "boolean", "description": "Steam filters out review bombs (off-topic activity bursts) by default. Enable this to include them in the results.", "default": false }, "steamDeckOnly": { "title": "Steam Deck only", "type": "boolean", "description": "Only include reviews whose author played primarily on Steam Deck when they wrote the review.", "default": false }, "playtimeMinHours": { "title": "Minimum playtime at review (hours)", "minimum": 0, "type": "integer", "description": "Optional. Only include reviews whose author had at least this many hours played when they wrote the review." }, "playtimeMaxHours": { "title": "Maximum playtime at review (hours)", "minimum": 0, "type": "integer", "description": "Optional. Only include reviews whose author had at most this many hours played when they wrote the review." }, "dateFrom": { "title": "Date from", "type": "string", "description": "Optional. Only include reviews created on or after this date (ISO format, e.g. 2024-01-01). Filtered by Steam's API itself, so it works with any sort order and never fetches or charges for reviews outside the window." }, "dateTo": { "title": "Date to", "type": "string", "description": "Optional. Only include reviews created on or before this date (ISO format, e.g. 2024-12-31)." }, "dayRange": { "title": "Day range (Most helpful sort only)", "minimum": 0, "maximum": 365, "type": "integer", "description": "Only used when 'Sort by' is 'Most helpful'. How many days back Steam should search for helpful reviews. 0 means no limit.", "default": 0 }, "includeGameSummary": { "title": "Include game summary row", "type": "boolean", "description": "If enabled, pushes one extra row per game with Steam's overall review score, totals, and the number of reviews matching your filters. Summary rows are counted and charged as results.", "default": true }, "includeInsights": { "title": "Include game insights row", "type": "boolean", "description": "If enabled, pushes one extra 'gameInsights' row per game with rule-based analytics computed from the fetched reviews: positive % overall/last 30 days/by month, top keyword counts for positive vs negative reviews (English only, simple stopword-filtered word/bigram counts - not AI), share of reviews from players with under 2 hours playtime, average playtime for positive vs negative reviews, language breakdown, early-access share, and refund/free-key share. Insight rows are counted and charged as results.", "default": true }, "trackChanges": { "title": "Track changes between runs (monitoring)", "type": "boolean", "description": "If enabled, the actor remembers the newest review it has seen per game in a named key-value store and, on the next run with the same 'Monitor name', fetches only reviews newer than that - a cheap way to check for new reviews since your last run. Forces sort to 'Most recent' internally so new reviews can be detected reliably.", "default": false }, "monitorName": { "title": "Monitor name", "type": "string", "description": "Name of the key-value store used to persist last-seen review state when 'Track changes' is enabled. Use the same name across scheduled runs to keep monitoring the same games; use a different name to start a fresh monitor." }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Optional proxy configuration. Steam's review API has no anti-bot protection, so a proxy is rarely needed - it can help if you're fetching very large volumes across many games.", "default": { "useApifyProxy": false } }, "maxConcurrency": { "title": "Max concurrency", "minimum": 1, "maximum": 3, "type": "integer", "description": "Maximum number of games to fetch reviews for in parallel.", "default": 3 } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Steam Game Reviews Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: