# Steam Charts API
> Live Steam concurrent-player counts and the most-played-games charts, with no key. This reads Valve's own public Steam charts and player-count endpoints and returns clean JSON: how many people are playing any game on Steam right now (by app id, with the game name resolved from the Steam store), the live leaderboard of the most-played games ranked by current concurrent players with today's peaks, and the most-played chart with week-over-week movement (current rank, last week's rank and the change). The live-engagement / player-activity layer for gaming dashboards, analytics, esports and games-market tools. Distinct from the Steam store reader, the SteamSpy ownership reader, the review-sentiment reader and the Steam Market price reader — this is the live "who is playing what right now" data. Live from Steam; short cache only.

## 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/steamcharts-api/..."
```

## Pricing
- **Free** (Free) — 12,000 calls/Mo, 3 req/s
- **Starter** ($6/Mo) — 210,000 calls/Mo, 10 req/s
- **Pro** ($23/Mo) — 1,080,000 calls/Mo, 25 req/s
- **Scale** ($67/Mo) — 6,600,000 calls/Mo, 60 req/s

## Endpoints

### Players

#### `GET /v1/players` — Current players for one game

**Parameters:**
- `appid` (query, optional, string) — Steam app id; omit for the #1 most-played Example: `730`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamcharts-api/v1/players?appid=730"
```

**Response:**
```json
{
    "data": {
        "name": "Counter-Strike 2",
        "note": "The number of people playing one Steam game right now. Pass appid (the Steam store id, e.g. 730 for Counter-Strike 2); omit it for the current #1 most-played game.",
        "appid": 730,
        "source": "Steam",
        "store_url": "https://store.steampowered.com/app/730",
        "current_players": 1195420
    },
    "meta": {
        "timestamp": "2026-06-14T17:03:38.549Z",
        "request_id": "c33caf39-119c-4096-a04a-fcc025b42266"
    },
    "status": "ok",
    "message": "Players retrieved successfully",
    "success": true
}
```

### TopGames

#### `GET /v1/topgames` — Live leaderboard by current players

**Parameters:**
- `limit` (query, optional, string) — Rows (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamcharts-api/v1/topgames?limit=20"
```

**Response:**
```json
{
    "data": {
        "note": "The live leaderboard of the most-played games on Steam right now, ranked by current concurrent players — each with its current player count and today's peak. The real-time pulse of what the whole Steam platform is playing.",
        "count": 20,
        "games": [
            {
                "name": "Counter-Strike 2",
                "rank": 1,
                "appid": 730,
                "store_url": "https://store.steampowered.com/app/730",
                "peak_today": 1498445,
                "current_players": 1201278
            },
            {
                "name": "Dota 2",
                "rank": 2,
                "appid": 570,
                "store_url": "https://store.steampowered.com/app/570",
                "peak_today": 703748,
                "current_players": 649470
            },
            {
                "name": "TBH: Task Bar Hero",
                "rank": 3,
                "appid": 3678970,
                "store_url": "https://store.steampowered.com/app/3678970",
                "peak_today": 526596,
                "current_players": 497406
            },
            {
                "name": "PUBG: BATTLEGROUNDS",
                "rank": 4,
                "appid": 578080,
                "store_url": "https://store.steampowered.com/app/578080",
                "peak_today": 735883,
                "current_players": 348861
            },
            {
                "name": "Path of Exile 2",
        
…(truncated, see openapi.json for full schema)
```

### MostPlayed

#### `GET /v1/mostplayed` — Most-played chart with week-over-week movement

**Parameters:**
- `limit` (query, optional, string) — Rows (1-50) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamcharts-api/v1/mostplayed?limit=20"
```

**Response:**
```json
{
    "data": {
        "note": "Steam's most-played-games chart with week-over-week movement — each game's current rank, last week's rank, the resulting change and its peak concurrent players. Track which games are rising and falling across the platform.",
        "count": 20,
        "games": [
            {
                "name": "Counter-Strike 2",
                "rank": 1,
                "appid": 730,
                "store_url": "https://store.steampowered.com/app/730",
                "rank_change": 0,
                "peak_in_game": 1275982,
                "last_week_rank": 1
            },
            {
                "name": "PUBG: BATTLEGROUNDS",
                "rank": 2,
                "appid": 578080,
                "store_url": "https://store.steampowered.com/app/578080",
                "rank_change": 0,
                "peak_in_game": 732248,
                "last_week_rank": 2
            },
            {
                "name": "Dota 2",
                "rank": 3,
                "appid": 570,
                "store_url": "https://store.steampowered.com/app/570",
                "rank_change": 0,
                "peak_in_game": 635321,
                "last_week_rank": 3
            },
            {
                "name": "Wallpaper Engine",
                "rank": 4,
                "appid": 431960,
                "store_url": "https://store.steampowered.com/app/431960",
                "rank_change": 0,
                "peak_in_game": 111342,
 
…(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/steamcharts-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "sample": {
            "players": 1201278,
            "top_game": "Counter-Strike 2"
        },
        "source": "Steam public Web API (api.steampowered.com ISteamChartsService) + store app details, keyless",
        "service": "steamcharts-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/players": "Current players for one game (appid; omit for the #1).",
            "GET /v1/topgames": "Live leaderboard by current concurrent players (limit).",
            "GET /v1/mostplayed": "Most-played chart with week-over-week movement (limit)."
        },
        "description": "Live Steam concurrent-player counts and most-played-games charts with no key: how many people are playing any game right now, the live leaderboard ranked by current players, and the most-played chart with week-over-week movement. Game names resolved from the Steam store. The live-engagement / player-activity layer for gaming dashboards, analytics and esports. Distinct from the Steam store, ownership, review and market readers. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T17:03:39.266Z",
        "request_id": "bb72a465-c100-4a1a-94cb-f8e1ddc52a7b"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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