# Steam Reviews API
> Live Steam user-review sentiment as an API — what players really think of any game on Steam, served from Steam's public review data. For any game, looked up by its Steam app id or by name, it returns the aggregate review summary (total reviews, positive and negative counts, the positive percentage and Steam's own rating label such as "Very Positive" or "Mixed"), plus a sample of recent reviews with their text, whether the author recommends the game, helpful and funny votes, the author's playtime and the review language. Get the full reviews feed, the lightweight sentiment summary, or search Steam to resolve a game name to its app id. The community-sentiment layer for gaming, review and dashboard apps. Live, no key. Distinct from a Steam store-catalogue API — this returns the user reviews and rating sentiment, not the store listing.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/steamreviews-api/..."
```

## Pricing
- **Free** (Free) — 11,000 calls/Mo, 5 req/s
- **Starter** ($8/Mo) — 140,000 calls/Mo, 15 req/s
- **Pro** ($19/Mo) — 720,000 calls/Mo, 40 req/s
- **Scale** ($45/Mo) — 3,600,000 calls/Mo, 100 req/s

## Endpoints

### Reviews

#### `GET /v1/reviews` — Review summary + sample reviews for a game

**Parameters:**
- `appid` (query, optional, string) — Steam app id Example: `730`
- `game` (query, optional, string) — Game name (resolved via search) Example: `Portal 2`
- `filter` (query, optional, string) — recent|updated|all Example: `recent`
- `type` (query, optional, string) — all|positive|negative Example: `all`
- `limit` (query, optional, string) — Reviews to return (1-50) Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamreviews-api/v1/reviews?appid=730&game=Portal+2&filter=recent&type=all&limit=10"
```

**Response:**
```json
{
    "data": {
        "name": null,
        "appid": 730,
        "count": 10,
        "filter": "recent",
        "reviews": [
            {
                "id": "227526172",
                "text": "GG!",
                "created": "2026-06-08T23:44:02.000Z",
                "comments": 0,
                "language": "russian",
                "votes_up": 0,
                "recommends": true,
                "votes_funny": 0,
                "early_access": false,
                "playtime_hours": 35.4,
                "steam_purchase": true
            },
            {
                "id": "227526153",
                "text": "oyun hep hile dolu",
                "created": "2026-06-08T23:43:41.000Z",
                "comments": 0,
                "language": "turkish",
                "votes_up": 1,
                "recommends": false,
                "votes_funny": 0,
                "early_access": false,
                "playtime_hours": 183.2,
                "steam_purchase": true
            },
            {
                "id": "227526132",
                "text": "good gme",
                "created": "2026-06-08T23:43:04.000Z",
                "comments": 0,
                "language": "norwegian",
                "votes_up": 0,
                "recommends": true,
                "votes_funny": 0,
                "early_access": false,
                "playtime_hours": 142.2,
                "steam_purchase": true
            },
            {
              
…(truncated, see openapi.json for full schema)
```

### Summary

#### `GET /v1/summary` — Aggregate review sentiment for a game

**Parameters:**
- `appid` (query, optional, string) — Steam app id Example: `730`
- `game` (query, optional, string) — Game name Example: `Counter-Strike 2`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamreviews-api/v1/summary?appid=730&game=Counter-Strike+2"
```

**Response:**
```json
{
    "data": {
        "name": null,
        "appid": 730,
        "summary": {
            "rating": "Very Positive",
            "negative": 1339108,
            "positive": 8309286,
            "positive_pct": 86.1,
            "review_score": 8,
            "total_reviews": 9648394
        }
    },
    "meta": {
        "timestamp": "2026-06-09T03:02:34.305Z",
        "request_id": "f145c3c0-5566-41a9-be95-881f976c1ab0"
    },
    "status": "ok",
    "message": "Summary retrieved successfully",
    "success": true
}
```

### Search

#### `GET /v1/search` — Resolve a game name to its Steam app id

**Parameters:**
- `q` (query, required, string) — Game name query Example: `portal`
- `limit` (query, optional, string) — Max results (1-25) Example: `10`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamreviews-api/v1/search?q=portal&limit=10"
```

**Response:**
```json
{
    "data": {
        "count": 10,
        "games": [
            {
                "name": "Portal 2",
                "appid": 620,
                "image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/620/capsule_231x87.jpg?t=1745363004"
            },
            {
                "name": "Portal",
                "appid": 400,
                "image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/400/capsule_231x87.jpg?t=1745368554"
            },
            {
                "name": "Portal Knights",
                "appid": 374040,
                "image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/374040/capsule_231x87.jpg?t=1696604379"
            },
            {
                "name": "Portal Worlds",
                "appid": 4327940,
                "image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4327940/ef142efa2df2bcfd2f44185774aa17516836ef59/capsule_231x87.jpg?t=1777889435"
            },
            {
                "name": "Bridge Constructor Portal",
                "appid": 684410,
                "image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/684410/capsule_231x87.jpg?t=1717674640"
            },
            {
                "name": "Bridge Constructor Portal - Portal Proficiency",
                "appid": 1113550,
                "image": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1113550/capsule_2
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamreviews-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "source": "Steam public appreviews + storesearch (live)",
        "service": "steamreviews-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/search": "Resolve a game name to its Steam app id (q=portal).",
            "GET /v1/reviews": "Review summary + sample reviews (appid=730 or game=Counter-Strike; filter=recent|updated|all, type=all|positive|negative, limit).",
            "GET /v1/summary": "Aggregate review sentiment only (appid or game)."
        },
        "description": "Live Steam user-review sentiment: for any game (by Steam app id or name), the aggregate review summary (total, positive/negative counts, positive percentage and Steam's rating label like \"Very Positive\") plus a sample of recent reviews with text, recommendation, helpful/funny votes, author playtime and language. Get the reviews feed, the sentiment summary, or search Steam to resolve a name to an app id. Live, no key. Distinct from a Steam store-catalogue API — this is the user reviews and rating sentiment layer.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-09T03:02:34.970Z",
        "request_id": "3a7566e0-c5fb-4c3e-bec1-5b7d0fcd31a0"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/steamreviews-api
OpenAPI spec: https://www.oanor.com/api/steamreviews-api/openapi.json
