Skip to content
GET /v1/reviews

Steam community reviews + sentiment summary

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/protondb-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/protondb-api/v1/reviews" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/protondb-api/v1/reviews", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/protondb-api/v1/reviews");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/protondb-api/v1/reviews",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "name": "ELDEN RING",
        "appid": 1245620,
        "count": 10,
        "filter": "recent",
        "source": "Steam",
        "reviews": [
            {
                "review": "Look majestic tree is there",
                "created": "2026-06-13T12:37:57.000Z",
                "voted_up": true,
                "votes_up": 0,
                "votes_funny": 0,
                "on_steam_deck": false,
                "playtime_hours": 121,
                "steam_purchase": false,
                "playtime_at_review_hours": 121
            },
            {
                "review": "[h1]Open world yay...or nay[/h1] Here we go another entry in dark/demon souls series. But it's elden souls now. So this time they made dark souls open world. Story? As always there's none, just some nonsensical characters around speaking in riddles and rubbish in general. Open world is very static and feels dead. There are enemies copy pasted everywhere though. With some stationary npc's who apparently are immortal and not afraid of any danger. Oh wait you can kill them so they're mortal but not",
                "created": "2026-06-13T12:18:39.000Z",
                "voted_up": false,
                "votes_up": 1,
                "votes_funny": 0,
                "on_steam_deck": false,
                "playtime_hours": 116,
                "steam_purchase": false,
                "playtime_at_review_hours": 116
            },
            {
                "review": "Best game ever made",
                "created": "2026-06-13T12:13:08.000Z",
                "voted_up": true,
                "votes_up": 0,
                "votes_funny": 0,
                "on_steam_deck": false,
                "playtime_hours": 313,
                "steam_purchase": true,
                "playtime_at_review_hours": 313
            },
            {
                "review": "uuuuuuuhhhhhhhhhhh I guess",
                "created": "2026-06-13T12:02:44.000Z",
                "voted_up": true,
                "votes_up": 0,
                "votes_funny": 0,
                "on_steam_deck": true,
                "playtime_hours": 186,
                "steam_purchase": false,
                "playtime_at_review_hours": 186
            },
            {
                "review": "Greatest Game OAT",
                "created": "2026-06-13T11:38:14.000Z",
                "voted_up": true,
                "votes_up": 0,
                "votes_funny": 0,
                "on_steam_deck": false,
                "playtime_hours": 419,
                "steam_purchase": true,
                "playtime_at_review_hours": 418
            },
            {
                "review": "What are you looking at? Buy it",
                "created": "2026-06-13T11:25:47.000Z",
                "voted_up": true,
                "votes_up": 0,
                "votes_funny": 0,
                "on_steam_deck": false,
                "playtime_hours": 347,
                "steam_purchase
…