Steam Store Search — review scores you can actually rank by
Pricing
$3.00 / 1,000 game scrapeds
Steam Store Search — review scores you can actually rank by
Search the Steam store and get one row per game: price and discount in a currency you choose, release date, platforms, and the review score together with the review count and a Wilson lower bound — so a 100%-positive game with 12 reviews stops outranking a 92% game with 40,000. Unofficial.
Pricing
$3.00 / 1,000 game scrapeds
Rating
0.0
(0)
Developer
Entrogix Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Search the Steam store and get one row per game, with the two things store listings make hard: a price you can compare between runs, and a review score you can sort on without being fooled.
The review score problem
Steam shows "Very Positive". So does a game with 12 reviews and a game with 40,000. Sorting on the raw positive percentage puts the 12-review game first, every time.
Every row therefore carries all four pieces:
| Field | What it is |
|---|---|
reviewSummary | Steam's own label — "Very Positive", "Mixed", … |
positivePercent | The raw percentage. Do not sort on this |
reviewCount | How many reviews that percentage is built on |
positiveLowerBound | The Wilson 95% lower bound on the positive rate. This is the one to sort on |
reviewsEnoughToRank | true at 30 reviews or more |
A game at 88% from 72 reviews has a lower bound of 77.9%. A game at 84% from 2,622 reviews has 82.5%. The second one is the safer bet, and only the lower bound says so.
The score is language-scoped. Steam calculates it from reviews written in the viewer's language — its own tooltip says as much. This actor pins the language to English on every request so the number means the same thing on every run. It is English-language reviews, not all reviews.
The price problem
Steam prices differ by region, and without a region pinned they follow wherever the request came
from. The same search returned $11.99, ¥1,300 and 11,99€ on 2026-08-23. Pick a
Price region and every row comes back in that currency, with currency and country
attached so nothing gets summed across regions by accident.
Three states are kept apart rather than collapsed into a number:
- A price —
priceis a number,currencyis set - Free to play —
isFreeistrue,priceis0 - No price yet —
priceUnavailableistrueandpriceisnull, not0. Pre-release and region-unavailable titles land here. In one 50-result sample, 22 of them did. If they were0, they would fill the top of any cheapest-first sort.
Fields
appId, title, url (tracking parameters stripped), releasedText / releasedAt
(ISO date, or null for "Coming soon" and "To be announced"), platforms
(win / mac / linux), the five review fields above, price, priceText,
originalPriceText, discountPercent, currency, country, isFree, priceUnavailable.
Input
{"term": "roguelike","country": "us","sort": "reviews","onlyDiscounted": false,"maxItems": 50}
Results come 25 per page. Rankings shift while a run is in progress, so rows are de-duplicated
by appId — a run asking for 50 returns 50 distinct games, not 50 slots.
Output
One dataset row per game, plus a SEARCH_SUMMARY record: how many games had enough reviews to
rank, how many have no price yet, how many are discounted and the deepest discount, the price
region used, and the currencies actually seen — if more than one shows up, the region setting
did not take, and you should know that rather than find it in the data later.
Pacing
Requests are serialised with a minimum interval of 3 seconds. Please do not lower minIntervalMs.
Unofficial. Not affiliated with Valve or Steam.