Skip to main content

Download Steam Reviews

PyPI status Build status Code coverage Code Quality

This repository contains Python code to download every Steam review for the games of your choice.

Requirements

  • Install the latest version of Python 3.X (at least version 3.11).

Installation

The code is packaged for PyPI, so that the installation consists in running:

pip install steamreviews

Usage

The Steam API is rate-limited so you should be able to download about 10 reviews per second.

NB: If you do not know the appID of a game, look for it on the Steam store. The appID is a unique number in the URL.

For instance, for SpyParty, the appID is 329070.

appID for SpyParty

Process a batch of appIDs

import steamreviews

app_ids = [329070, 573170]
steamreviews.download_reviews_for_app_id_batch(app_ids)

Process a batch of appIDs, written down in a text file

  • For every game of interest, write down its appID in a text file named idlist.txt. There should be an appID per line.
  • Then proceed as follows:
import steamreviews

steamreviews.download_reviews_for_app_id_batch()

Load reviews for one appID

import steamreviews

app_id = 329070
review_dict = steamreviews.load_review_dict(app_id)

Download reviews for one appID

import steamreviews

app_id = 573170
review_dict, query_count = steamreviews.download_reviews_for_app_id(app_id)

Download reviews for one appID, with specific request parameters (language, sentiment, store)

Caveat: the following parameters do not appear in the output filename, so make sure that you start the download from scratch (instead of updating existing JSON review data) if you ever decide to change them, e.g the value of the review_type (set to all, positive or negative).

Caveat²: if review_type is set to positive (or negative), then the value of total_reviews can be misleading. It is indeed arbitrarily set to total_positive (respectively total_negative). In this case, if you need the total number of reviews, compute it as the sum of total_positive and total_negative.

import steamreviews

request_params = dict()
# Reference: https://partner.steamgames.com/doc/store/localization#supported_languages
request_params['language'] = 'english'
# Reference: https://partner.steamgames.com/doc/store/getreviews
request_params['review_type'] = 'positive'
request_params['purchase_type'] = 'steam'

app_id = 573170
review_dict, query_count = steamreviews.download_reviews_for_app_id(app_id,
                                                                    chosen_request_params=request_params)

Download a few of the most helpful reviews for one appID, which were created in a time-window

Caveat: with filter set to all, you will only be able to download a few reviews within the specified time-window.

import steamreviews

request_params = dict()
# Reference: https://partner.steamgames.com/doc/store/getreviews
request_params['filter'] = 'all'  # reviews are sorted by helpfulness instead of chronology
request_params['day_range'] = '28'  # focus on reviews which were published during the past four weeks

app_id = 573170
review_dict, query_count = steamreviews.download_reviews_for_app_id(app_id,
                                                                    chosen_request_params=request_params)

Download reviews for one appID, which were created within a specific time-window

import steamreviews

request_params = dict()
request_params['filter'] = 'recent'
request_params['day_range'] = '28'

app_id = 573170
review_dict, query_count = steamreviews.download_reviews_for_app_id(app_id,
                                                                    chosen_request_params=request_params)

Download reviews for one appID, which were updated within a specific time-window

import steamreviews

request_params = dict()
request_params['filter'] = 'updated'
request_params['day_range'] = '28'

app_id = 573170
review_dict, query_count = steamreviews.download_reviews_for_app_id(app_id,
                                                                    chosen_request_params=request_params)

References

Metadata

Release files for steamreviews 0.9.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for steamreviews 0.9.6.1
File Size Uploaded Provenance Actions
steamreviews-0.9.6.1.tar.gz 10.2 kB Without provenance Details for steamreviews-0.9.6.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for steamreviews 0.9.6.1
File Interpreter ABI Platform Actions
steamreviews-0.9.6.1-py3-none-any.whl Python 3 none any Details for steamreviews-0.9.6.1-py3-none-any.whl

Total release size: 19.4 kB

Release files / steamreviews-0.9.6.1.tar.gz

Download URL steamreviews-0.9.6.1.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
883692712b7f3cfef78ac88576c96ca08db92727b197528169473cc2801beec8
BLAKE2b-256 checksum
How to use checksums
e3a74458d7cec61ece3588619c29e44c665171b5773e1882832598eede4b5c02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / steamreviews-0.9.6.1-py3-none-any.whl

Download URL steamreviews-0.9.6.1-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb8e1978f727818922b166d462a2847f22427dc7cd00091d0c45f16329bfee2f
BLAKE2b-256 checksum
How to use checksums
102ca4818f19496043517769f6837e1bd730df345d84c05f9e98408dda30e5b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Security for steamreviews 0.9.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page