Updated Oct 2026

Steam reviews API in Python: GetAppReviews, after the appreviews feed was retired

For years every Steam reviews script hit store.steampowered.com/appreviews/<appid>?json=1. On 22 October 2026 that feed stopped: it now redirects to the store’s home page. The Web API method IUserReviewsService/GetAppReviews does the same job, with a slightly odd calling convention (a JSON object in the input_json query parameter). Prisma’s Steam connector moved to it on 29 October and this guide is what we checked live that day. No key, read-only, cursor paging. The app-store picture across Steam, the App Store, Google Play and Microsoft is on app reviews API.

Shell
pip install requests

You need the app id, the number in the store URL store.steampowered.com/app/<appid>/.

1. Page through a game’s reviews

Python
import json, time, requests

API = "https://api.steampowered.com/IUserReviewsService/GetAppReviews/v1/"
APP_ID = 620            # Portal 2, for the example

def reviews(appid, num_per_page=100):
    cursor = "*"
    while True:
        inp = {"appid": appid, "filter": 2, "languages": ["all"], "purchase_type": 1, "num_per_page": num_per_page, "cursor": cursor, "filter_offtopic_activity": False}
        r = requests.get(API, params={"input_json": json.dumps(inp)}, timeout=30)
        if r.status_code == 429:
            time.sleep(10); continue
        r.raise_for_status()
        body = r.json().get("response", {})
        batch = body.get("reviews", [])
        if not batch:
            break
        yield from batch
        nxt = body.get("cursor")
        if not nxt or nxt == cursor or len(batch) < num_per_page:
            break
        cursor = nxt

for rev in reviews(APP_ID):
    stars = 5 if rev["voted_up"] else 1
    print(rev["recommendationid"], "up" if rev["voted_up"] else "down", stars, rev.get("language"), rev["timestamp_updated"], (rev.get("review") or "")[:80],
          "| dev responded" if rev.get("developer_response") else "")

Values we found by trying them: filter 2 returns reviews most recently updated first (1 is “most helpful”), purchase_type 1 includes every purchase type, languages: ["all"] avoids the English default. Each review has recommendationid, voted_up, review (text), language, timestamp_created, timestamp_updated, author.steamid (no name), and, when the developer answered in Steamworks, developer_response with timestamp_dev_responded. The permalink is https://steamcommunity.com/profiles/<steamid>/recommended/<appid>/.

2. Limits and manners

3. The same job through Prisma

Prisma connects a game with its store page URL (no Steam login), reads the public reviews through this method on a schedule, maps thumbs to 5 and 1 stars next to the original, returns the Steamworks response as the reply, and sends a review.created webhook per new review in the same JSON as the App Store, Google Play and 50+ other platforms.

Python
import os
H = {"Authorization": f"Bearer {os.environ['PRISMA_API_KEY']}"}
r = requests.get("https://api.prismareviews.com/v1/reviews", headers=H, params={"platform": "steam", "limit": 100}, timeout=30)
for rev in r.json()["data"]:
    print(rev["rating"], rev["language"], rev["text"], rev["url"])

Steam is read-only in Prisma, like on Steam. Connection: POST /v1/connections with platform: "steam" and the listing_url (Steam on Platforms). A test key returns sample reviews so the code runs now.

FAQ

Is store.steampowered.com/appreviews still working?

No. As of 22 October 2026 the appreviews feed redirects to the store’s home page. The replacement is the Web API method IUserReviewsService/GetAppReviews on api.steampowered.com, which takes the same ideas (appid, filter, language, cursor) as an input_json parameter and needs no key.

Can a developer reply to Steam reviews by API?

No. Developer responses are written in Steamworks; the API returns them in the developer_response field with timestamp_dev_responded, but there is no endpoint to post one.

How are Steam reviews rated?

Thumbs up or down, in the voted_up boolean. For a 5-star feed map up to 5 and down to 1, and keep voted_up for Steam-specific reporting.

Steam, App Store and Google Play reviews, one JSON.

Get API key

2 locations free. Test keys return sample reviews from every platform.

Get your API key in a minute

Free Spark plan: 2 locations, no card. Test keys return sample data on all 63 platforms, so you can build before connecting a real one.