# ProtonDB Steam Deck & Linux Compatibility API
> Live Linux and Steam Deck compatibility plus popularity for Steam games, from the public ProtonDB and Steam feeds — no key, nothing stored. The "can I play it on Linux / Steam Deck, and is anyone playing it" view of a game: the crowd-sourced ProtonDB compatibility tier together with the live concurrent-player count, distinct from the other game and platform APIs in the catalogue. The game endpoint returns a full picture for a title — its Steam name, genres and release date, the ProtonDB compatibility tier (platinum, gold, silver, bronze or borked) with the community confidence, score and report count, the trending and best-reported tiers, and the live player count. The search endpoint resolves a game name to its Steam app id and other matches, so you can find the id to query. The players endpoint returns just the live concurrent-player count for a game. Build Steam Deck compatibility checkers, Linux gaming dashboards, "is it playable" widgets and game-popularity trackers on top of real ProtonDB and Steam data. Look up a game by Steam app id (appid=1245620) or by name (name=elden ring); ProtonDB tiers run from platinum (flawless) down to borked, and player counts are live.

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

## Pricing
- **Free** (Free) — 21,000 calls/Mo, 3 req/s
- **Starter** ($5/Mo) — 290,000 calls/Mo, 10 req/s
- **Pro** ($16/Mo) — 1,200,000 calls/Mo, 25 req/s
- **Scale** ($36/Mo) — 4,200,000 calls/Mo, 55 req/s

## Endpoints

### Game

#### `GET /v1/game` — Full game picture — ProtonDB tier, genres, live players

**Parameters:**
- `appid` (query, optional, string) — Steam app id Example: `1245620`
- `name` (query, optional, string) — Game name (resolved via Steam search) Example: `elden ring`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/protondb-api/v1/game?appid=1245620&name=elden+ring"
```

### Search

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

**Parameters:**
- `q` (query, required, string) — Search query Example: `portal`
- `limit` (query, optional, string) — Max results (default 10, max 25) Example: `10`

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

### Players

#### `GET /v1/players` — Live concurrent-player count for a game

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

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/protondb-api/v1/players?appid=730&name=dota+2"
```

### Meta

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

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


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