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.
pip install requestsYou need the app id, the number in the store URL store.steampowered.com/app/<appid>/.
1. Page through a game’s reviews
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
- No key is needed; without one the rate limit is shared and the answer can be cached for up to 10 minutes. Back off on 429.
- The cursor is opaque; stop when it repeats or a page comes back short.
- Read-only: there is no API to post or edit a developer response. Write them in Steamworks; they appear in
developer_responseon the next read.
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.
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.
2 locations free. Test keys return sample reviews from every platform.