# SteamSpy Game Analytics API
> Steam game ownership and player analytics as an API, powered by SteamSpy — clean JSON, no key. Look up any Steam game by app id for its estimated owners, current concurrent players, average and median playtime (all-time and last two weeks), price and discount, positive/negative review counts and review score, developer, publisher, genre, languages and top community tags. Pull the top-100 lists — games by current players, by all-time playtime and by estimated owners — and list the top games in any genre or with any tag. Live market data straight from SteamSpy. Distinct from the Steam store: this is the ownership and engagement layer — ideal for game-market research, indie-dev competitor analysis, trend dashboards and charts. 6 data endpoints. Authenticated with an x-oanor-key; fair-use rate limits per plan.

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

## Pricing
- **Free** (Free) — 3,000 calls/Mo, 5 req/s
- **Starter** ($7/Mo) — 52,000 calls/Mo, 15 req/s
- **Pro** ($29/Mo) — 280,000 calls/Mo, 30 req/s
- **Mega** ($92/Mo) — 1,180,000 calls/Mo, 80 req/s

## Endpoints

### Apps

#### `GET /v1/app` — Game stats by app id

**Parameters:**
- `appid` (query, required, string) — Steam app id Example: `730`

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

**Response:**
```json
{
    "data": {
        "app": {
            "name": "Counter-Strike: Global Offensive",
            "tags": [
                {
                    "name": "FPS",
                    "votes": 91172
                },
                {
                    "name": "Shooter",
                    "votes": 65634
                },
                {
                    "name": "Multiplayer",
                    "votes": 62536
                },
                {
                    "name": "Competitive",
                    "votes": 53536
                },
                {
                    "name": "Action",
                    "votes": 47634
                },
                {
                    "name": "Team-Based",
                    "votes": 46549
                },
                {
                    "name": "e-sports",
                    "votes": 43682
                },
                {
                    "name": "Tactical",
                    "votes": 41468
                },
                {
                    "name": "First-Person",
                    "votes": 39540
                },
                {
                    "name": "PvP",
                    "votes": 34587
                },
                {
                    "name": "Online Co-Op",
                    "votes": 34056
                },
                {
                    "name": "Co-op",
                    "votes": 30342
                }
            ],
            "appid": 730,
     
…(truncated, see openapi.json for full schema)
```

### Top

#### `GET /v1/top/owned` — Top games by estimated owners

**Parameters:**
- `limit` (query, optional, string) — Max results Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamspy-api/v1/top/owned?limit=100"
```

**Response:**
```json
{
    "data": {
        "apps": [
            {
                "name": "Counter-Strike",
                "appid": 10,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 97.4,
                "concurrent_users": 7323,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Half-Life",
                "appid": 70,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 96.5,
                "concurrent_users": 634,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Counter-Strike: Condition Zero",
                "appid": 100,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 89.8,
                "concurrent_users": 83,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Half-Life 2",
                "appid": 220,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 97.6,
                "concurrent_users": 1555,
                "average_playtime_2weeks_min": 0
            },
            {
                "
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/top/players` — Top games by current players

**Parameters:**
- `limit` (query, optional, string) — Max results (1–200) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamspy-api/v1/top/players?limit=100"
```

**Response:**
```json
{
    "data": {
        "apps": [
            {
                "name": "Counter-Strike",
                "appid": 10,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 97.4,
                "concurrent_users": 7323,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Half-Life",
                "appid": 70,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 96.5,
                "concurrent_users": 634,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Counter-Strike: Condition Zero",
                "appid": 100,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 89.8,
                "concurrent_users": 83,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Half-Life 2",
                "appid": 220,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 97.6,
                "concurrent_users": 1555,
                "average_playtime_2weeks_min": 0
            },
            {
                "
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/top/playtime` — Top games by all-time playtime

**Parameters:**
- `limit` (query, optional, string) — Max results Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamspy-api/v1/top/playtime?limit=100"
```

**Response:**
```json
{
    "data": {
        "apps": [
            {
                "name": "Counter-Strike",
                "appid": 10,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 97.4,
                "concurrent_users": 7323,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Half-Life",
                "appid": 70,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 96.5,
                "concurrent_users": 634,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Counter-Strike: Condition Zero",
                "appid": 100,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 89.8,
                "concurrent_users": 83,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Half-Life 2",
                "appid": 220,
                "owners": "10,000,000 .. 20,000,000",
                "developer": "Valve",
                "price_cents": 999,
                "review_score": 97.6,
                "concurrent_users": 1555,
                "average_playtime_2weeks_min": 0
            },
            {
                "
…(truncated, see openapi.json for full schema)
```

### Discover

#### `GET /v1/genre` — Top games in a genre

**Parameters:**
- `genre` (query, required, string) — Genre (Action, RPG, Indie…) Example: `RPG`
- `limit` (query, optional, string) — Max results Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamspy-api/v1/genre?genre=RPG&limit=100"
```

**Response:**
```json
{
    "data": {
        "apps": [
            {
                "name": "ELDEN RING NIGHTREIGN",
                "appid": 2622380,
                "owners": "2,000,000 .. 5,000,000",
                "developer": "FromSoftware, Inc.",
                "price_cents": 3999,
                "review_score": 74.5,
                "concurrent_users": 163599,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Rust",
                "appid": 252490,
                "owners": "20,000,000 .. 50,000,000",
                "developer": "Facepunch Studios",
                "price_cents": 3999,
                "review_score": 87.2,
                "concurrent_users": 143870,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "DELTARUNE",
                "appid": 1671210,
                "owners": "1,000,000 .. 2,000,000",
                "developer": "tobyfox",
                "price_cents": 2499,
                "review_score": 98.9,
                "concurrent_users": 83936,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Baldur's Gate 3",
                "appid": 1086940,
                "owners": "20,000,000 .. 50,000,000",
                "developer": "Larian Studios",
                "price_cents": 5999,
                "review_score": 96.8,
                "concurrent_users": 54771,
                "average_playtime_2weeks_min": 0
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/tag` — Top games with a tag

**Parameters:**
- `tag` (query, required, string) — Tag (Roguelike, Open World…) Example: `Roguelike`
- `limit` (query, optional, string) — Max results Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/steamspy-api/v1/tag?tag=Roguelike&limit=100"
```

**Response:**
```json
{
    "data": {
        "tag": "Roguelike",
        "apps": [
            {
                "name": "Grand Theft Auto IV: The Complete Edition",
                "appid": 12210,
                "owners": "5,000,000 .. 10,000,000",
                "developer": "Rockstar North, Rockstar Toronto",
                "price_cents": 599,
                "review_score": 82.5,
                "concurrent_users": 2122,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Pool 2D - Poolians",
                "appid": 891040,
                "owners": "500,000 .. 1,000,000",
                "developer": "Poolians.com",
                "price_cents": 0,
                "review_score": 87.1,
                "concurrent_users": 262,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "FlatOut 2",
                "appid": 2990,
                "owners": "500,000 .. 1,000,000",
                "developer": "Bugbear Entertainment, ZOOM Platform Media, Jordan Freeman Group",
                "price_cents": 199,
                "review_score": 96.1,
                "concurrent_users": 85,
                "average_playtime_2weeks_min": 0
            },
            {
                "name": "Cricket 22",
                "appid": 1701380,
                "owners": "50,000 .. 100,000",
                "developer": "Big Ant Studios",
                "price_cents": 4499,
                "review_score": 81,
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

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

**Response:**
```json
{
    "data": {
        "service": "steamspy-api",
        "endpoints": {
            "GET /v1/app": "Game stats by Steam appid (e.g. 730).",
            "GET /v1/tag": "Top games with a tag (tag=).",
            "GET /v1/meta": "This document.",
            "GET /v1/genre": "Top games in a genre (genre=).",
            "GET /v1/top/owned": "Top games by estimated owners.",
            "GET /v1/top/players": "Top games by current players (2 weeks).",
            "GET /v1/top/playtime": "Top games by all-time playtime."
        },
        "description": "SteamSpy: Steam game ownership & player analytics — per-game stats (estimated owners, concurrent users, playtime, price, review score, tags), the top-100 lists (current players, playtime, owners) and games by genre or tag. Real data, no key."
    },
    "meta": {
        "timestamp": "2026-06-07T16:46:03.744Z",
        "request_id": "b98cdfdc-6c4b-437d-893e-9acbd4de2c37"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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