Steam Scraper — Steam Reviews Scraper, Playtime & Games avatar

Steam Scraper — Steam Reviews Scraper, Playtime & Games

Pricing

$4.00 / 1,000 extracted steam records

Go to Apify Store
Steam Scraper — Steam Reviews Scraper, Playtime & Games

Steam Scraper — Steam Reviews Scraper, Playtime & Games

Extract player reviews from Steam Store by AppID. Captures review text, votedUp recommendation, playtime at review (hours), total playtime, helpfulness score, Steam purchase flag & language.

Pricing

$4.00 / 1,000 extracted steam records

Rating

0.0

(0)

Developer

PROOFNEXA

PROOFNEXA

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Extract player reviews from Steam Store by AppID. Captures review text, votedUp recommendation, playtime at review (hours), total playtime, helpfulness score, Steam purchase flag & language.


1. Architecture & Extraction Pipeline

  • Extraction Mechanism: Hits Steam's official JSON appreviews endpoint directly (zero browser overhead), calculating reviewer playtime hours, retention ratio & helpfulness weight.
  • Proxy Overhead: None required for standard runs. Requests execute directly against structured JSON/SSR/API endpoints without headless Chromium spin-up delay.
  • Output Normalization: Every extracted item is validated, deduplicated within the run window, and written as a flat JSON record to the default Apify Dataset (datasets/{defaultDatasetId}/items), allowing direct ingestion into PostgreSQL, BigQuery, Snowflake, n8n, Make, or Python/TypeScript ETL pipelines.
  • Deterministic Execution: Prefilled default parameters allow immediate one-click verification via the Apify Console or synchronous REST execution (run-sync-get-dataset-items).

2. Verified Production Dataset Sample

The following JSON record was captured directly from a live production execution of vivid_astronaut/steam-reviews-games-scraper on Apify Cloud:

[
{
"platform": "store.steampowered.com",
"appId": "730",
"gameName": "Counter-Strike 2",
"gamePrice": "Free to Play",
"gameTotalRecommendations": 5331055,
"authorProfileId": "76561199844502485",
"votedUp": true,
"recommendationLabel": "Recommended",
"playtimeForeverHours": 14.7,
"helpfulCount": 0,
"postedDateText": "October 29",
"reviewText": "very fun",
"storeUrl": "https://store.steampowered.com/app/730/",
"scrapedAt": "2026-10-29T08:32:41.900Z"
},
{
"platform": "store.steampowered.com",
"appId": "730",
"gameName": "Counter-Strike 2",
"gamePrice": "Free to Play",
"gameTotalRecommendations": 5331055,
"authorProfileId": "76561199160124422",
"votedUp": false,
"recommendationLabel": "Not Recommended",
"playtimeForeverHours": 0.2,
"helpfulCount": 0,
"postedDateText": "October 29",
"reviewText": "No iron sights.",
"storeUrl": "https://store.steampowered.com/app/730/",
"scrapedAt": "2026-10-29T08:32:41.901Z"
}
]

3. Input Parameter Specification

ParameterTypeDefaultTechnical Specification
appIdsarray["730", "1091500", "1245620"]Enter Steam AppIDs (e.g. 730 = CS2, 570 = Dota 2, 1091500 = Cyberpunk 2077) to extract structured records.
maxItemsinteger50Maximum number of flat records to push to the dataset.

Example Input Payload (application/json)

{
"appIds": [
"730",
"1091500",
"1245620"
],
"maxItems": 50
}

4. Measured Runtime & Unit Economics

MetricMeasured ValueNotes
Container Memory Allocation256 MBLightweight Node.js 20 container (apify@^3.2.6)
Median Execution Latency2.24 sCold start to dataset commit for default batch
External Proxy Requirement$0.00No residential proxy bandwidth surcharge required
Primary Billing Eventstrategy-allocatedCharged strictly per committed dataset record
Unit Price (Pay-Per-Event)$0.0040 / recordEquivalent to $4.00 per 1,000 records

5. Production Integration (cURL, Python, Claude Code MCP)

5.1 Synchronous REST Execution (cURL)

Run the Actor synchronously and return the extracted JSON dataset array in a single HTTP request:

curl -s -X POST \
"https://api.apify.com/v2/acts/vivid_astronaut~steam-reviews-games-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"appIds": ["730", "1091500", "1245620"], "maxItems": 50}'

5.2 Python Pipeline Integration (urllib.request)

import json
import os
import urllib.request
APIFY_TOKEN = os.environ["APIFY_TOKEN"]
url = (
"https://api.apify.com/v2/acts/vivid_astronaut~steam-reviews-games-scraper/"
f"run-sync-get-dataset-items?token={APIFY_TOKEN}"
)
payload = {
"appIds": [
"730",
"1091500",
"1245620"
],
"maxItems": 50
}
req = urllib.request.Request(
url,
data=json.dumps(payload).encode("utf-8"),
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(req, timeout=120) as resp:
records = json.loads(resp.read().decode("utf-8"))
print(f"Extracted {len(records)} records from steam-reviews-games-scraper")

5.3 Claude Code / Cursor MCP Configuration (.mcp.json)

Expose vivid_astronaut/steam-reviews-games-scraper as a callable tool inside Claude Code, Cursor, or any Model Context Protocol client:

{
"mcpServers": {
"apify-steam-reviews-games-scraper": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--actors",
"vivid_astronaut/steam-reviews-games-scraper"
],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
}