Steam Store Scraper
Pricing
from $0.79 / 1,000 games
Steam Store Scraper
Scrape Steam games: metadata, multi-country prices, reviews and more.
Pricing
from $0.79 / 1,000 games
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share

Extract games from store.steampowered.com at scale, in a clean, consistent structure ready for price monitoring, market research, catalogue analysis and resale tooling. No API key required.
Why this scraper?
🎯 Built for store.steampowered.com
A dedicated global scraper tuned for store.steampowered.com — its categories, price formats and currency (USD), not a generic tool pointed at it.
📄 Full item content
Complete description and title for every record, with a direct link back to the source.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | array | ["elden ring"] | Keywords to search the Steam store (e.g. "elden ring", "roguelike"). Each term is searched and the matching games are scraped. |
browseSection | string | "none" | Instead of (or in addition to) keywords, pull games from a Steam storefront section. |
startUrls | array | (empty) | Direct Steam app URLs (e.g. https://store.steampowered.com/app/1245620/). App IDs are extracted automatically. |
appIds | array | (empty) | Steam numeric app IDs to scrape directly (e.g. 1245620). |
maxResults | integer | 5 | Maximum number of games to scrape. |
country | string | "us" | Storefront whose local currency prices are returned. Used when no multi-country selection is made. |
countries | array | (empty) | Select several storefronts to get each game's price in every chosen currency in a single run. The first selected country is the primary store. |
allCountries | boolean | false | Fetch every supported storefront's price for each game in one run (44 currencies). Overrides the country selections. |
language | string | "en" | Language for game name, description and supported-languages text. |
includeReviews | boolean | true | Add aggregate review score, sentiment label, total/positive/negative counts and positive %. |
includeDescription | boolean | true | Add short + full description as HTML, plain text and clean Markdown (LLM-ready). |
includeMedia | boolean | true | Add screenshots and trailer/video URLs. |
includeSteamSpy | boolean | false | Add owner estimate, concurrent players (CCU), average playtime and community tags from SteamSpy. |
platforms | array | (empty) | Keep only games supporting any selected OS. |
priceFilter | string | "all" | Keep only games matching this price status. |
minPrice | integer | (empty) | Minimum price (in the primary currency's major units) based on the lowest selected-country price. |
maxPrice | integer | (empty) | Maximum price (in the primary currency's major units) based on the lowest selected-country price. |
minMetacritic | integer | (empty) | Keep only games with a Metacritic score at or above this value. Games without a score are kept. |
minReviewScore | integer | (empty) | Steam review score band (0=none … 9=Overwhelmingly Positive). Requires reviews enabled. |
minPositivePercent | integer | (empty) | Keep only games whose positive review share is at or above this percentage. Requires reviews enabled. |
genres | array | (empty) | Keep only games matching any of these genres (substring match, case-insensitive). |
releasedAfter | string | (empty) | Keep only games released on/after this date (YYYY-MM-DD). Undated games are kept. |
releasedBefore | string | (empty) | Keep only games released on/before this date (YYYY-MM-DD). Undated games are kept. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given item are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
appId | number | Steam app ID |
name | string | Game title |
type | string | game, dlc, demo, etc. |
url | string | Steam store page |
primaryCountry | string | Primary country. |
isFree | boolean | Free-to-play |
comingSoon | boolean | Unreleased |
releaseDate | string | Release date |
requiredAge | number | Minimum age |
developers | array | Developers. |
publishers | array | Publishers. |
genres | array | Filter: genres |
categories | array | Categories. |
platforms | array | windows / mac / linux |
controllerSupport | string | Controller level |
currency | string | Primary-country currency |
initialPrice | number | Initial price. |
finalPrice | number | Final price. |
discountPercent | number | Discount on primary store |
isOnSale | boolean | On sale in primary store |
priceUnavailable | boolean | True when a paid game exposes no standalone Steam price (edition-only listings) |
prices | array | Per-country price blocks |
priceByCountry.us | number | Us. |
countriesPriced | number | How many storefronts priced |
isOnSaleAnywhere | boolean | On sale in any selected store |
lowestPriceValue | number | Cheapest selected-store price |
metacriticScore | string | Metacritic score |
metacriticUrl | string | Metacritic url. |
recommendationsTotal | number | Steam recommendations |
ageRatings | array | Per-board ratings (ESRB, PEGI…) |
headerImage | string | Header image. |
capsuleImage | string | Capsule image. |
background | string | Background. |
website | string | Official site |
supportedLanguagesRaw | string | Supported languages |
supportedLanguages | array | Parsed clean list of supported languages |
dlcCount | number | Dlc count. |
dlcAppIds | array | Dlc app ids. |
fullgame | string | Parent game (for DLC) |
scrapedAt | string | ISO timestamp |
reviewScore | number | Review score. |
reviewScoreDesc | string | Review score desc. |
totalReviews | number | Total reviews. |
totalPositive | number | Total positive. |
totalNegative | number | Total negative. |
positivePercent | number | Positive percent. |
shortDescription | string | Short description. |
descriptionHtml | string | Full item description in HTML. |
descriptionText | string | Description text. |
descriptionMarkdown | string | Description markdown. |
screenshots | array | Screenshots. |
movies | array | Movies. |
Example record
{"appId": 4704690,"name": "MECCHA CHAMELEON","type": "game","url": "https://store.steampowered.com/app/4704690/","primaryCountry": "us","isFree": false,"comingSoon": false,"releaseDate": "Jun 9, 2026","requiredAge": 0,"developers": ["lemorion_1224"],"publishers": ["lemorion_1224"],"genres": ["Casual"],"categories": ["Multi-player","PvP","Online PvP","Camera Comfort"],"platforms": ["windows"],"controllerSupport": "none","currency": "USD","initialPrice": 5.99,"finalPrice": 5.99,"discountPercent": 0,"isOnSale": false,"priceUnavailable": false,"prices": [{"country": "us","currency": "USD","initialPrice": 5.99,"finalPrice": 5.99,"discountPercent": 0,"isOnSale": false,"finalFormatted": "$5.99"}],"priceByCountry": {"us": 5.99},"countriesPriced": 1,"isOnSaleAnywhere": false,"lowestPriceValue": 5.99,"metacriticScore": null,"metacriticUrl": null,"recommendationsTotal": 21756,"ageRatings": [{"board": "dejus","rating": "14","descriptors": null},{"board": "steam_germany","rating": "12","descriptors": null},{"board": "igrs","rating": "18","descriptors": "Interaksi Daring"}],"headerImage": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4704690/163e2a742e5fb8e1f5d1e3a890da98f04ab809d4/header.jpg?t=1781108224","capsuleImage": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4704690/18d14b8bd834e30a6a25df5ccd7f0a6e644f1577/capsule_231x87.jpg?t=1781108224","background": "https://store.akamai.steamstatic.com/images/storepagebackground/app/4704690?t=1781108224","website": null,"supportedLanguagesRaw": "English, Japanese, Spanish - Spain, Simplified Chinese, Korean, French, Italian, German, Arabic, Portuguese - Brazil, Russian, Traditional Chinese","supportedLanguages": ["English","Japanese","Spanish - Spain","Simplified Chinese"],"dlcCount": 0,"dlcAppIds": [],"fullgame": null,"scrapedAt": "2026-06-24T16:34:46.375Z","reviewScore": 8,"reviewScoreDesc": "Very Positive","totalReviews": 24496,"totalPositive": 20401,"totalNegative": 4095,"positivePercent": 83.3,"shortDescription": "Paint yourself to blend in! \"Meccha Chameleon\" is a new-sensation hide-and-seek game where you paint your white body to mimic the stage. Spot, pose, and \"artistic skill\" are keys to survival. Deceive …","descriptionHtml": "<p class=\"bb_paragraph\" >Paint your own body! Blend in like a chameleon in this hide-and-seek game!</p><h2 class=\"bb_tag\" ><strong>yeah! Mechcha "Hide and Seek"</strong></h2><p class=\"bb_par …","descriptionText": "Paint your own body! Blend in like a chameleon in this hide-and-seek game!\nyeah! Mechcha \"Hide and Seek\"\n The rules are simple. Split into the Seeker team and the Hider team to play hide-and-seek. The …","descriptionMarkdown": "Paint your own body! Blend in like a chameleon in this hide-and-seek game!\n\n## **yeah! Mechcha \"Hide and Seek\"**\n The rules are simple. Split into the Seeker team and the Hider team to play hide-and-s …","screenshots": ["https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4704690/6c0a47cc2fba1b160901d1553637a764198bdc98/ss_6 …","https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4704690/0383a711ed93bf8edd848df4b63b331fc44f3ad5/ss_0 …","https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4704690/51b0a906d1767b1b5abde623350dec64c6877c93/ss_5 …","https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4704690/0a8a562016b13a349349e685f7a4d5a6cbccef3e/ss_0 …"],"movies": [{"name": "TR2","thumbnail": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/257336777/50fa43f687913f0d5295148f5b8f2892ec3d8b08/mo …","mp4": null,"webm": null}]}
Examples
Search for strategy:
{"searchTerms": ["strategy"],"maxResults": 100}
Cap the price:
{"searchTerms": ["strategy"],"maxResults": 100,"maxPrice": 39.99}
Scrape a specific search URL:
{"startUrls": [{"url": "https://store.steampowered.com/app/1245620/ELDEN_RING/"}],"maxResults": 200}
Daily monitoring (run on a schedule):
{"searchTerms": ["strategy"],"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler to track prices, stock and new items over time.
💰 Pricing
$0.99 per 1,000 results — you only pay for successfully retrieved games. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.10 |
| 1,000 | ~$0.99 |
| 10,000 | ~$9.9 |
| 100,000 | ~$99 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.69 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Some fields (brand, condition, shipping) are only returned when the seller or source publishes them — expect
nullon a share of records. - Prices and stock change constantly; records reflect the moment of scraping.
- Very large result sets are bounded by the source's own paging limits.
- Items can sell or be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: store.steampowered.com
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl