Skip to content

About

Steam scraper for Python and the command line: search the Steam store or pull full game details by app id (price and discount, genres, developers, publishers, release date, Metacritic, platforms, languages, DLC and achievements) as JSON or CSV. Free and open source; no Steam Web API key or proxies needed.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Steam Scraper

ci python license dependencies

Steam store data from Python or the command line: search games by name, or pull the full store detail of a list of app ids, with price and discount, developers and publishers, genres and categories, release date, Metacritic score, Steam recommendations, platforms, languages, DLC and achievement counts, screenshots and trailer, as JSON or CSV. The code is free and open source (MIT). It runs on the QuanticData Data API, so there is no Steam API key to request and no proxy to rotate: sign in once and run a command.

pip install git+https://github.com/quantumproxies/steam-scraper
steam-scraper login
steam-scraper games portal --max-results 20 -o portal.csv

login opens the QuanticData sign-in page in your browser. New accounts get $2 of free usage every month, no card required: create one.

What it scrapes

Command Input Returns Per run
steam-scraper games search term, or --app-ids Price, discount, genres, developers, release date, Metacritic, platforms, 41 fields per row (fields and price) up to 50

Two modes: steam-scraper games portal searches the store (rank, name, price, Metacritic, platforms, images); steam-scraper games --app-ids 620 400 returns the full store detail of each game. --country sets the storefront for prices and currency.

Sample output

A real row from steam-scraper games portal --max-results 3 (2026-10-23):

{
  "url": "https://store.steampowered.com/app/620",
  "icon": "https://shared.akamai.steamstatic.com/community_assets/images/apps/620/25a5a16b2423bf7487ac5340b5b0948cef48c5f8.jpg",
  "logo": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/620/bd23943dcd0280aa2cdc066e2f86d2185cfd4cce/capsule_231x87.jpg?t=1790187113",
  "name": "Portal 2",
  "rank": 1,
  "type": "app",
  "price": 9.99,
  "app_id": "620",
  "is_free": false,
  "currency": "USD",
  "platforms": [
    "windows",
    "linux"
  ],
  "list_price": 9.99,
  "metacritic": 95,
  "discount_pct": null,
  "controller_support": "full"
}

Python

from quanticdata_steam_scraper import SteamScraper

steam = SteamScraper()  # saved login, or QUANTICDATA_API_KEY

found = steam.games("portal", max_results=10)
for g in found:
    print(g["app_id"], g["name"], g["price"], g["metacritic"])

details = steam.games(app_ids=["620", "400"], country="us")
for g in details:
    print(g["name"], g["release_date"], g["genres"], g["recommendations"])
details.to_csv("portal_details.csv")

Each call returns a Run: iterate it for the rows (plain dicts), take len(), or save it with to_csv(), to_json(), to_jsonl() or to_dataframe() (pandas). Errors are specific: InsufficientCredit, RateLimited, InvalidInput, JobFailed, AuthError.

Examples

  • Price and discount tracking: Check the price, list price and discount of a list of games on every run and keep the history in a CSV, to catch every sale. See examples/price_tracker.py.
  • Game comparison table: Developers, publishers, genres, release date, Metacritic, recommendations, price, DLC and achievement counts of a list of games side by side, in one CSV sorted by Metacritic. See examples/compare_games.py.
  • From search to full detail: Search the store for a few terms, then pull the full detail of every game found, de-duplicated by app id. See examples/search_to_details.py.

Command line

Results print as a table; -o file.csv, -o file.json or -o file.jsonl writes a file. List inputs take a b c, a,b,c, @file.txt (one per line) or - (stdin). --no-wait starts a long run in the background and prints its id; steam-scraper run <id> -o out.csv collects it later.

steam-scraper games

Steam store data: search games by name, or pull the full store detail of a list of app ids (price, discount, genres, developers, publishers, release date, Metacritic, platforms).

steam-scraper games [QUERY] [options]
Option Type Default Description
QUERY string Search term, e.g. "portal". Omit it when you pass --app-ids.
--app-ids string[] Steam app ids (620) or store URLs, for the full store detail of each game.
--country string Storefront country for prices and currency (default us).
--include-reviews boolean True Detail mode: also read Steam's review verdict and totals for each app (one small extra request per app).
--max-results integer 20 How many apps to deliver at most (1–50). You pay only for delivered apps.

Output fields

steam-scraper games: 41 fields
Field Type Description
rank integer 1-based position.
app_id string Steam appid.
name string or null Game/app title.
type string or null game, dlc, demo… (detail mode).
is_free boolean Free-to-play (detail mode).
price number or null Final price (detail mode).
price_formatted string or null Price as shown (detail mode).
discount_pct integer or null Discount % (detail mode).
currency string or null Price currency (detail mode).
developers string[] Developers (detail mode).
publishers string[] Publishers (detail mode).
genres string[] Genres (detail mode).
categories string[] Store categories (detail mode).
release_date string or null Release date as shown (detail mode).
metacritic integer or null Metacritic score (detail mode).
recommendations integer or null Total recommendations (detail mode).
platforms string[] windows/mac/linux (detail mode).
header_image string or null Header image URL.
icon string or null Icon URL (search mode).
short_description string or null Short description (detail mode).
url string Store page URL.
logo string or null Capsule image (search rows).
coming_soon boolean or null Not yet released (detail rows).
required_age integer or null Minimum age (detail rows).
list_price number or null Price before discount.
controller_support string or null full / partial, from the store record or, when that omits it, from its controller-support category.
review_summary string or null Steam's review verdict (Very Positive, Mixed…) — detail rows. Null, with the review counts, when Steam's review summary does not answer for the app; the run notes say how many rows that is.
reviews_total integer or null Total user reviews.
reviews_positive integer or null Positive reviews.
reviews_negative integer or null Negative reviews.
reviews_positive_pct number or null Share of positive reviews (%).
website string or null Official website.
languages string[] or null Supported languages.
dlc_count integer or null Number of DLCs.
achievements integer or null Number of achievements.
age_rating string or null ESRB / PEGI rating.
content_notes string or null Mature-content note from the store page.
screenshots string[] or null Screenshot URLs (up to 5).
trailer string or null First trailer stream URL.
metacritic_url string or null Metacritic page.
support_url string or null Support page.

Sign-in and API keys

  • steam-scraper login signs you in with OAuth 2.1 and PKCE in the browser. The token is stored in ~/.config/quanticdata/credentials.json (readable only by you) and refreshed automatically. One login serves every QuanticData tool on the machine.
  • No browser on the machine (SSH, Docker, Colab): run steam-scraper login --no-browser, open the link anywhere, then paste back the address the browser ends on.
  • Scripts and CI: set QUANTICDATA_API_KEY to a key from the dashboard, or store one with steam-scraper login --api-key.
  • steam-scraper logout revokes the token. The connection is listed under API keys in the dashboard as "API · QuanticData CLI"; deleting that key disconnects every machine that uses it.

Pricing

The code is free and MIT-licensed. Runs are billed to your QuanticData account per delivered row, at the price shown on each collector page linked above; $2 of usage is free every month and failed runs are never billed. Plans with higher limits: pricing.

Other ways to call it

The same data over plain HTTP:

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/steam/run \
  -H "Authorization: Bearer $QUANTICDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": {"query": "portal", "max_results": 3}}'
  • API reference with Python, Node, PHP and curl examples.
  • MCP server to give Claude, Cursor or any MCP client the same tools.
  • n8n node for no-code workflows.

FAQ

Is this Steam scraper free?

The code is free and MIT-licensed. Scraping runs on your QuanticData account: $2 of usage is free every month with no card, then you pay per delivered row at the price shown on each collector page. Failed runs are never billed.

Do I need a Steam API key or proxies?

No. There is no Steam Web API key to request and no proxy to configure: you send a search term or app ids and get rows back; the requests run on QuanticData's side.

Search or app ids: what is the difference?

A search term returns the store's search results with rank, name, price, Metacritic and platforms. --app-ids returns the full store page of each game: developers, publishers, genres, release date, languages, recommendations, DLC and achievements, screenshots and trailer.

How many games can one run return?

Up to 50 per run; ask for fewer with --max-results and you pay only for what is delivered.

Can I export to CSV or Excel?

Add -o games.csv (or .json, .jsonl). Lists such as genres, developers and platforms are joined with '; ', so the CSV opens cleanly in Excel or Google Sheets.

Can I run it on a schedule?

Yes. Set QUANTICDATA_API_KEY in the environment and call the CLI or examples/price_tracker.py from cron, GitHub Actions or any scheduler.

Related scrapers

License

MIT. Built and maintained by QuanticData.

About

Steam scraper for Python and the command line: search the Steam store or pull full game details by app id (price and discount, genres, developers, publishers, release date, Metacritic, platforms, languages, DLC and achievements) as JSON or CSV. Free and open source; no Steam Web API key or proxies needed.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages