Steam Store Scraper
Search Steam Store games, fetch one app's public store metadata, or collect a bounded page of public user reviews through Steam's public JSON surfaces.
Overview
Steam Store Scraper gives agents a bounded, structured route into public Steam Store data. Search by keyword, fetch one Steam app's store metadata, or pull a page of public user reviews using Steam's JSON store and review surfaces. The tool normalizes app IDs, names, store URLs, prices, discounts, genres, categories, supported platforms, developers, publishers, release dates, recommendation counts, Metacritic fields, screenshots, review summaries, review text, vote direction, helpful votes, timestamps, and playtime fields. It is designed for game-market research, price and discount monitoring, review triage, competitive catalog analysis, launch watchlists, ecommerce intelligence, and LLM-ready gaming datasets.
Last validated: Jul 3, 2026
Playground
Input
mode"search" | "details" | "reviews"default: "search"search = keyword search; details = one Steam app's store page metadata; reviews = one page of public user reviews.
limitintegerdefault: 10Maximum search results or reviews to return. Details mode returns one app and at most 10 reviews when include_reviews is true.
querystringKeyword query for search mode, such as portal or farming simulator.
app_idstringSteam app ID or Steam app URL for details and reviews modes, e.g. 620 or https://store.steampowered.com/app/620/Portal_2/.
cursorstringSteam review cursor. Use * for the first page or pass next_cursor from a previous run.
countrystringdefault: "US"Two-letter country code for localized pricing, such as US, GB, or AU.
languagestringdefault: "en"Steam store language code for search/details.
review_type"all" | "positive" | "negative"default: "all"Review sentiment filter.
purchase_type"all" | "steam" | "non_steam_purchase"default: "all"Purchase-source filter for reviews.
review_filter"recent" | "updated" | "all"default: "recent"Steam review filter for reviews mode or include_reviews.
include_reviewsbooleandefault: falseIn details mode, also fetch a bounded page of reviews and review summary fields.
review_languagestringdefault: "english"Steam review language, such as english or all.
Output
appobjectSteam app details
app.namestringApp name
app.typestringApp type
app.pricestringFormatted price overview
app.app_idintegerSteam app ID
app.genresstringComma-separated genres
app.is_freebooleanFree-to-play flag
app.websitestringPublisher/developer website
app.platformsstringComma-separated supported platforms
app.store_urlstringSteam Store URL
app.categoriesstringComma-separated store categories/features
app.developersstringComma-separated developers
app.publishersstringComma-separated publishers
app.coming_soonbooleanComing-soon flag
app.screenshotsstringComma-separated screenshot URLs
app.header_imagestringSteam header image
app.release_datestringLocalized release date
app.required_ageintegerRequired age
app.capsule_imagestringSteam capsule image
app.metacritic_urlstringMetacritic URL
app.metacritic_scoreintegerMetacritic score
app.short_descriptionstringShort store description
app.recommendations_totalintegerSteam recommendation count
modestringrequiredMode used for this run
countintegerrequiredNumber of game rows, app records, or reviews returned
gamesobject[]Search results
querystringSearch query used
app_idintegerSteam app ID used
countrystringrequiredCountry code used for store requests
reviewsobject[]Public Steam user reviews
languagestringrequiredStore language code used
source_urlstringrequiredSteam URL fetched for the primary request
next_cursorstringCursor for the next page of reviews
reviews_urlstringSteam reviews URL fetched when include_reviews is true
review_summaryobjectSteam review summary totals
review_summary.num_reviewsintegerReviews returned in this response
review_summary.review_scoreintegerSteam review score bucket
review_summary.total_reviewsintegerTotal matching reviews
review_summary.total_negativeintegerTotal negative reviews
review_summary.total_positiveintegerTotal positive reviews
review_summary.review_score_descstringReview score description
Examples
portal-search
{
"mode": "search",
"limit": 3,
"query": "portal",
"country": "US",
"language": "en"
}portal-details
{
"mode": "details",
"app_id": "620",
"country": "US",
"language": "en"
}portal-reviews
{
"mode": "reviews",
"limit": 2,
"app_id": "620",
"review_language": "english"
}Use cases
FAQ
Does Steam Store Scraper require a Steam login or API key?
No. Version 0.1 uses public Steam Store JSON and public Steam review endpoints. It only returns data visible through those public surfaces.
Can it download all reviews for a game?
No. This release fetches one bounded review page and returns the next cursor. Full pagination, scheduled monitoring, and large exports are future work.
Is this tool affiliated with Steam or Valve?
No. Better Fetch is not affiliated with Valve, Steam, or Steamworks. The Steam logo mark is used only to identify the public target service.
Use it anywhere
MCP (Claude, Cursor, any client)
# Add the Better Fetch MCP connector (or paste the URL into # Claude → Settings → Connectors → Add custom connector): claude mcp add --transport http better-fetch https://betterfetch.co/api/mcp \ --header "Authorization: Bearer bf_your_key_here" # Then ask for the tool by name: steam_store_scraper
REST
curl -sS -X POST "https://betterfetch.co/api/tools/steam_store_scraper/run" \
-H "Authorization: Bearer bf_your_key_here" \
-H "Content-Type: application/json" \
-d '{"input": {"mode":"search","limit":3,"query":"portal","country":"US","language":"en"}}'Run locally
git clone https://github.com/better-fetch/tools/tree/main/tools/steam-store-scraper && cd steam-store-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"search","limit":3,"query":"portal","country":"US","language":"en"}'