---
title: Game & category endpoints
slug: games
eyebrow: Games
nav_group: Games
nav_label: Games
nav_order: 120
nav_expanded: true
---

# Game & category endpoints

Performance metrics for a single game (category), and ranked, filterable lists of games. The same rules as channels apply — specify the platform with `platform={name}` and the reporting window with `time={value}`.

## Single game stats {#game-single}

Aggregate viewership and channel metrics for one game or category over a time window, on a given platform.

```endpoint
GET /api/v2/games/{slug}?platform={platform}
```

| Set of metrics | Availability | Cost / request |
| --- | --- | --- |
| Standard | All platforms | 1 |

```curl REQUEST
curl -X GET https://streamscharts.com/api/v2/games/league-of-legends?platform=twitch&time=30-days \
  -H 'Client-ID: XXXXXXXXXXXX' -H 'Token: YYYYYYYYYYYYYY'
```

```json RESPONSE
{
  "data": {
    "platform": "twitch",
    "category_name": "League of Legends",
    "category_id": "1",
    "category_avatar_url": "https://static-cdn.jtvnw.net/.../300x300.png",
    "hours_watched": 16657487,
    "peak_viewers": 414141,
    "average_viewers": 104110,
    "peak_channels": 2668,
    "average_channels": 1902,
    "viewers_per_channel": 155,
    "unique_channels": 7749
  }
}
```

### Response fields

| Field | Type | Description |
| --- | --- | --- |
| category_name | string | Display name of the game/category. |
| category_id | string | Platform category identifier. |
| category_avatar_url | string | Category cover image URL. |
| hours_watched | integer | Total hours watched in the category. |
| peak_viewers | integer | Highest concurrent viewers across all channels. |
| average_viewers | integer | Average concurrent viewers. |
| peak_channels | integer | Highest concurrent channels broadcasting. |
| average_channels | integer | Average concurrent channels. |
| viewers_per_channel | integer | Average viewers divided by average channels. |
| unique_channels | integer | Distinct channels that streamed the category. |

### Supported time periods

Use `time={value}` — default `30-days`. Presets: `today`, `7-days`, `30-days`, `90-days`, `this-month`, `last-month`, `this-year`, `last-year`, or a custom range `YYYY-MM-DD,YYYY-MM-DD`.

> [!INFO] Game windows are whole days
> Game metrics have no intraday granularity. An exact-time window is not supported here: `time=2026-09-07 12:00,2026-09-07 18:00` answers `404 not_found` with `This game is not in our database for the given platform and time period` and is not charged. Read that `404` as "this window is not supported", not as "no data for this game" — pass plain dates or a preset instead.

## List of games {#game-list}

A ranked, filterable list of games/categories for one platform, sorted by Hours Watched by default — 100 rows per page, time windows up to 365 days. Each row carries the same metric set as single game stats.

```endpoint
GET /api/v2/games?platform={platform}
```

| Filter | Filter tier | Cost / page |
| --- | --- | --- |
| No filter (overall top by platform) | Light | 5 |
| Language | Light | 5 |
| Publisher | Segment | 10 |

```curl REQUEST
curl -X GET https://streamscharts.com/api/v2/games?platform=twitch&time=30-days&publisher=riot \
  -H 'Client-ID: XXXXXXXXXXXX' -H 'Token: YYYYYYYYYYYYYY'
```

```json RESPONSE
{
  "data": [
    {
      "platform": "twitch",
      "category_name": "League of Legends",
      "category_id": "1",
      "category_avatar_url": "https://static-cdn.jtvnw.net/.../300x300.png",
      "hours_watched": 16657487,
      "peak_viewers": 414141,
      "average_viewers": 104110,
      "peak_channels": 2668,
      "average_channels": 1902,
      "viewers_per_channel": 155,
      "unique_channels": 7749
    }
  ],
  "links": { "next": ".../games?platform=twitch&time=30-days&page=2" },
  "meta": { "current_page": 1, "per_page": 100, "to": 100 }
}
```

### Filters

| Filter | Parameter | Accepted values |
| --- | --- | --- |
| Language | `lang={code}` | ISO 639-1, e.g. `en`, `es` |
| Publisher | `publisher={slug}` | Publisher slug — see below |

Sort with `sortBy={value}` (`peak_viewers`, `average_viewers`, `peak_channels`, `average_channels`), paginate with `page={n}`, and combine with `time={value}` for the reporting window.

### Publishers {#game-publishers}

Filter the games list to a single publisher with `publisher={slug}`. Publisher viewership is aggregated across every platform except Rumble. The current top publishers by hours watched are below; the full list is on [Streams Charts publishers](https://streamscharts.com/games/publishers).

| # | Publisher | Slug |
| --- | --- | --- |
| 1 | Riot | `riot` |
| 2 | Rockstar Games | `rockstar-games` |
| 3 | Take-Two Interactive | `take-two-interactive` |
| 4 | Tencent Games | `tencent-games` |
| 5 | Valve | `valve` |
| 6 | Blizzard Entertainment | `blizzard-entertainment` |
| 7 | Mojang Studios | `mojang-studios` |
| 8 | Electronic Arts | `electronic-arts` |
| 9 | Activision | `activision` |
| 10 | Epic Games | `epic-games` |

> [!INFO]
> Language is a light filter (5 credits/page); **publisher is a segment filter (10 credits/page)**. Combining them charges the higher tier (10).