Steam Scraper (Pay-Per-Event)
Pricing
Pay per event
Steam Scraper (Pay-Per-Event)
Scrape Steam Store search results for prices, discounts, review summaries, positive percentages, review counts, platforms, and release dates. Pay-per-event pricing — only pay for the games you actually scrape.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Arnas
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape Steam Store search results for prices, discounts, review summaries, positive percentages, review counts, platforms, and release dates.
What does Steam Scraper do?
Steam Scraper extracts game data from Steam Store search results. For every keyword you provide, it returns one structured record per unique game including the Steam app ID, title, store URL, release date, review summary (e.g., Overwhelmingly Positive), positive percentage, review count, current price, original price, discount percentage, platform support (Windows / Mac / Linux / Steam Deck / VR), and the capsule thumbnail.
Use it for game price monitoring, deal tracking, market research, competitive analysis, and gaming industry analytics — without writing your own HTML parser or running a browser.
Run it once on demand or schedule it during Steam sales (Summer, Winter, Halloween) to track price drops automatically. Results download as JSON, CSV, or Excel, or stream live via the Apify API.
Who is it for?
- Game developers and publishers monitoring competitor pricing, review scores, and market positioning
- Deal aggregator sites tracking Steam discounts and price drops for their audience
- Market researchers analyzing gaming trends, pricing strategies, and genre popularity
- Data analysts building game databases, price trackers, or recommendation engines
- Gamers and content creators discovering top-rated games and tracking wishlisted titles
Use cases
- Price monitoring — track game prices and discounts across Steam. Compare prices over time with scheduled runs.
- Deal tracking — find games on sale with discount percentages and original prices. Monitor seasonal sales.
- Game discovery — search by keyword and sort by reviews to find top-rated titles in any genre.
- Market research — analyze pricing strategies, review distributions, and platform availability across categories.
- Competitive analysis — research competitors' games, pricing, review scores, and release timelines.
- Gaming industry analytics — build databases for trend analysis, genre popularity, and pricing patterns.
Why use Steam Scraper?
- Rich data extraction — appId, title, URL, release date, review summary, positive percentage, review count, price, original price, discount percent, free/paid flag, platform list, thumbnail.
- Consistent US/English locale — every search request forces
cc=us&l=englishso prices and review text are stable across runs regardless of the runner's IP region (other Steam scrapers serve EUR or local currency depending on where they happen to run). - Age-gated titles visible — mature/age-restricted games appear in results automatically. No manual age-gate bypass needed.
- Per-keyword deduplication — Steam search occasionally repeats the same appId across adjacent pages; we write each unique game once and bill once.
- Charge-after-push — pricing events fire only after a successful dataset write, so a transient write failure never costs you.
- Robust review parsing — the tooltip's percent and count parse first; the visible class (
mixed,very_positive, …) is the fallback so the summary field is rarely null when reviews exist. - Multiple sort options — relevance, user reviews, release date, name, price ascending, price descending.
- Pay-per-event pricing — only pay for games written to the dataset. No monthly subscription.
What data can you extract?
Each game in the output includes:
| Field | Description |
|---|---|
appId | Steam application ID (stable; used for deduplication) |
title | Game title |
url | Canonical Steam Store URL (tracking params stripped) |
releaseDate | Release date string (e.g., "22 Apr, 2025") — null for unreleased titles |
reviewSummary | Steam's review category (e.g., "Overwhelmingly Positive", "Mixed") — null if unreviewed |
reviewPositivePercent | Percentage of positive reviews (integer 0–100) — null if unreviewed |
reviewCount | Total user reviews — null if unreviewed |
price | Current price string (e.g., "$9.99", "Free") — null if unpriced |
originalPrice | Original price before discount, when on sale |
discountPercent | Discount label (e.g., "-50%") when on sale |
isFree | true for free-to-play, free demos, and free media |
platforms | Supported platforms (["Windows", "Mac", "Linux", "Steam Deck (Verified)", "VR"]) |
thumbnail | Game capsule image URL (231×87) |
scrapedAt | ISO timestamp when the row was extracted |
Output example
{"appId": "1091500","title": "Cyberpunk 2077","url": "https://store.steampowered.com/app/1091500/Cyberpunk_2077/","releaseDate": "10 Dec, 2020","reviewSummary": "Very Positive","reviewPositivePercent": 88,"reviewCount": 367343,"price": "$29.99","originalPrice": "$59.99","discountPercent": "-50%","isFree": false,"platforms": ["Windows"],"thumbnail": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/1091500/capsule_231x87.jpg","scrapedAt": "2026-05-22T12:23:09.226Z"}
You can download the dataset in various formats such as JSON, CSV, HTML, or Excel.
How to use Steam Scraper
- Go to Steam Scraper on the Apify Store.
- Enter one or more search keywords in
searchQueries(e.g.,cyberpunk,horror,roguelike). - Choose a sort order:
relevance,reviews,release_date,name,price_asc, orprice_desc. - Set
maxResultsPerSearch(default100) andmaxSearchPages(default5, max20). - Click Start and wait for the run to finish.
- Download the dataset as JSON, CSV, or Excel — or pull it via API.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array | — | Required. Keywords to search on Steam. Each keyword runs a separate search. |
sort | string | "relevance" | One of relevance, reviews, release_date, name, price_asc, price_desc. |
maxResultsPerSearch | integer | 100 | Maximum unique games per keyword (1–1000). |
maxSearchPages | integer | 5 | Maximum pages per keyword (1–20). ~50 games per page. |
maxRequestRetries | integer | 3 | Retry attempts for failed requests (1–10). |
proxyConfiguration | object | Apify proxy (shared) | Standard Apify proxy editor. Switch to RESIDENTIAL if you encounter rate-limits. |
How much does it cost to scrape Steam?
Steam Scraper uses pay-per-event pricing — you only pay for what you scrape.
| Event | Price |
|---|---|
| Actor start | $0.001 per run |
| Game scraped | $2.30 per 1,000 games ($0.0023 / game) |
Cost examples
| Run | Games scraped | Approx. cost |
|---|---|---|
| Single keyword, 1 page | 50 | ~$0.12 |
| Single keyword, default | 100 | ~$0.24 |
| Single keyword, max | 1,000 | ~$2.30 |
| 5 keywords × 100 games | 500 | ~$1.16 |
No monthly subscription. Platform compute is included in the per-event price.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/steam-scraper').call({searchQueries: ['cyberpunk'],sort: 'reviews',maxResultsPerSearch: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((game) => {console.log(`${game.reviewSummary} (${game.reviewPositivePercent}%) — ${game.title} — ${game.price}`);});
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('YOUR_USERNAME/steam-scraper').call(run_input={'searchQueries': ['cyberpunk'],'sort': 'reviews','maxResultsPerSearch': 50,})for game in client.dataset(run['defaultDatasetId']).list_items().items:print(f"{game['reviewSummary']} ({game['reviewPositivePercent']}%) — {game['title']} — {game['price']}")
cURL
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~steam-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["roguelike"],"sort": "reviews","maxResultsPerSearch": 50}'
Integrations
Steam Scraper works with every standard Apify integration:
- Webhooks — get notified when a run finishes.
- API — start runs and fetch results programmatically.
- Scheduling — run daily during Steam sales to track price changes.
- Storage — export as JSON, CSV, or Excel. Pipe to Google Sheets, Slack, or email.
- Zapier / Make / n8n — connect Steam data to thousands of apps.
Tips and best practices
- Sort by reviews —
sort: "reviews"surfaces the highest-rated games for any genre. - Track discounts — check
discountPercentandoriginalPriceto find sale prices. - Schedule during seasonal sales — Summer, Winter, Halloween, Lunar New Year.
- Filter free games — post-process the dataset for
isFree: true. - Multiple genres in one run —
["horror", "survival", "roguelike"]runs all three concurrently. - Platform filter — use
platformsto find games supporting Mac, Linux, Steam Deck, or VR.
FAQ, disclaimers, and support
Why are some games missing reviews?
Games with fewer than ~10 user reviews show no review summary on Steam. The corresponding fields (reviewSummary, reviewPositivePercent, reviewCount) are returned as null for those rows.
Why are all prices in USD?
The URL builder forces cc=us&l=english so prices and locale are consistent across runs. To get a different region, override proxyConfiguration with apifyProxyCountry: "GB" (or your target country code) — Steam reads the requesting IP to pick a region when cc= is overridden.
Legality
Scraping publicly available data is generally legal in the United States (hiQ Labs v. LinkedIn). This actor only accesses public Steam Store pages and does not require authentication. Always review and comply with the target website's Terms of Service before scraping.
Limitations
- Returns up to 50 games per page, up to 20 pages = 1,000 games per keyword.
- Does not scrape individual game detail pages, DLC details, or user-review text.
- Age-restricted content is included by default (the mature-content cookie is set automatically).
- Does not support filtering by tags, genres, or price ranges through the input — use keyword search.
Support
Open an issue on the actor's Issues tab for bug reports or feature requests. Custom scraping solutions are available on request.