# Game Deals API
> PC video-game prices and discounts across 30+ digital stores as an API — Steam, GOG, Epic Games, Humble, GreenManGaming, Fanatical and more, powered by CheapShark. Search games by title to get the cheapest current price; look up a game to see every store's deal side by side (price, retail price, % off and a buy link) plus its lowest-ever price; or browse the current best deals filtered by store or maximum price and sorted by deal rating, savings, price, recency or Metacritic score. Ideal for game-deal sites, price-tracker bots, gaming dashboards, browser extensions and Discord bots. Prices in USD. Open data from CheapShark.

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

## Pricing
- **Free** (Free) — 3,720 calls/Mo, 2 req/s
- **Starter** ($5/Mo) — 50,100 calls/Mo, 8 req/s
- **Pro** ($13/Mo) — 245,500 calls/Mo, 20 req/s
- **Mega** ($34/Mo) — 1,208,000 calls/Mo, 50 req/s

## Endpoints

### Game Deals

#### `GET /v1/deals` — Browse current deals

**Parameters:**
- `sort` (query, optional, string) — deal_rating | price | savings | recent | metacritic | title
- `title` (query, optional, string) — Filter by title
- `store` (query, optional, string) — Store id (see /v1/meta), e.g. 1 = Steam
- `max_price` (query, optional, string) — Maximum sale price in USD
- `limit` (query, optional, string) — Results (1-60, default 20) Example: `20`
- `page` (query, optional, string) — Page number (0-based) Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gamedeals-api/v1/deals?limit=20&page=0"
```

**Response:**
```json
{
    "data": {
        "page": 0,
        "sort": "Deal Rating",
        "count": 20,
        "limit": 20,
        "results": [
            {
                "store": "Steam",
                "title": "Phonopolis",
                "game_id": "323026",
                "deal_url": "https://www.cheapshark.com/redirect?dealID=8CH%2B1wDG7J2Nx4ujxnA047AbZy5EdKb6sBkx7rYQh1Q%3D",
                "store_id": "1",
                "thumbnail": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/1206070/eaf4088286084079a50063faf920ccd330de15ed/capsule_231x87.jpg?t=1780064912",
                "metacritic": 86,
                "sale_price": 20.38,
                "normal_price": 35.98,
                "savings_percent": 43,
                "steam_rating_percent": 92
            },
            {
                "store": "Steam",
                "title": "Cheap Car Repair",
                "game_id": "323476",
                "deal_url": "https://www.cheapshark.com/redirect?dealID=j1aOXs1hCdQdeLCS25iCB1S920G7ifHcQMKYflm9KW8%3D",
                "store_id": "1",
                "thumbnail": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/2904040/9304517f41be9f792616594aa964d08c9c07455b/capsule_231x87.jpg?t=1779977714",
                "metacritic": 0,
                "sale_price": 14.22,
                "normal_price": 31.21,
                "savings_percent": 54,
                "steam_rating_percent": 90
            },
            {
                "sto
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/game` — A game's deals across stores + lowest-ever price

**Parameters:**
- `id` (query, required, string) — Numeric gameID, e.g. 112330 (The Witcher 3) Example: `112330`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gamedeals-api/v1/game?id=112330"
```

**Response:**
```json
{
    "data": {
        "game": {
            "deals": [
                {
                    "price": 39.99,
                    "store": "GOG",
                    "deal_id": "xU4%2BM7nUC4PAlQ64lVq1yohkA8%2FhDvM3rscityhvcOA%3D",
                    "deal_url": "https://www.cheapshark.com/redirect?dealID=xU4%2BM7nUC4PAlQ64lVq1yohkA8%2FhDvM3rscityhvcOA%3D",
                    "store_id": "7",
                    "retail_price": 39.99,
                    "savings_percent": 0
                },
                {
                    "price": 39.99,
                    "store": "Steam",
                    "deal_id": "zm2ORJ1RIWrq7UFFCs9J4ps4rgsNUV7FTSnWxzxxj8Q%3D",
                    "deal_url": "https://www.cheapshark.com/redirect?dealID=zm2ORJ1RIWrq7UFFCs9J4ps4rgsNUV7FTSnWxzxxj8Q%3D",
                    "store_id": "1",
                    "retail_price": 39.99,
                    "savings_percent": 0
                },
                {
                    "price": 39.99,
                    "store": "Humble Store",
                    "deal_id": "xp5saYR8o00pMpc%2Bb9jKjHOt69exT8tP%2BtvyFlH92g8%3D",
                    "deal_url": "https://www.cheapshark.com/redirect?dealID=xp5saYR8o00pMpc%2Bb9jKjHOt69exT8tP%2BtvyFlH92g8%3D",
                    "store_id": "11",
                    "retail_price": 39.99,
                    "savings_percent": 0
                }
            ],
            "title": "The Witcher 3: Wild Hunt",
            "game_id": "112330",
           
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/games` — Search games + cheapest price

**Parameters:**
- `title` (query, required, string) — Game title, e.g. witcher Example: `witcher`
- `limit` (query, optional, string) — Results (1-60, default 20) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gamedeals-api/v1/games?title=witcher&limit=20"
```

**Response:**
```json
{
    "data": {
        "count": 11,
        "title": "witcher",
        "results": [
            {
                "title": "Reigns: The Witcher",
                "game_id": "316791",
                "thumbnail": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/1651600/939baf0210951e4e6304422e2a41cdfe20d18598/capsule_231x87.jpg?t=1772038304",
                "steam_app_id": "1651600",
                "cheapest_price": 5.33,
                "cheapest_deal_id": "L41NEWRV2mxycnzzz7bgZZJw1l4hW3Qh1789xXyOIo0%3D"
            },
            {
                "title": "The Witcher 3: Wild Hunt",
                "game_id": "112330",
                "thumbnail": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/292030/abf6e7b3b01ed20c35a8dc0a009a8f9fc3e57b93/capsule_231x87.jpg?t=1768303991",
                "steam_app_id": "292030",
                "cheapest_price": 39.99,
                "cheapest_deal_id": "xU4%2BM7nUC4PAlQ64lVq1yohkA8%2FhDvM3rscityhvcOA%3D"
            },
            {
                "title": "The Witcher Adventure Game",
                "game_id": "136929",
                "thumbnail": "https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/303800/capsule_231x87.jpg?t=1749200728",
                "steam_app_id": "303800",
                "cheapest_price": 9.99,
                "cheapest_deal_id": "MxLPz2HWHmYzmNJnSvpw%2BPEadDhyPjjapZyi7rkTdBE%3D"
            },
            {
                "title": "Thronebreaker:
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Stores & sort options

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

**Response:**
```json
{
    "data": {
        "note": "Live PC video-game deals across 30+ digital stores. /v1/games?title= searches games; /v1/game?id= returns a game's deals across all stores plus its lowest-ever price; /v1/deals browses current deals (filter by title, store, max_price; sort by deal_rating, price, savings, recent, metacritic). Prices in USD.",
        "source": "CheapShark (PC game prices & deals)",
        "stores": [
            {
                "id": "1",
                "name": "Steam"
            },
            {
                "id": "2",
                "name": "GamersGate"
            },
            {
                "id": "3",
                "name": "GreenManGaming"
            },
            {
                "id": "7",
                "name": "GOG"
            },
            {
                "id": "11",
                "name": "Humble Store"
            },
            {
                "id": "13",
                "name": "Uplay"
            },
            {
                "id": "15",
                "name": "Fanatical"
            },
            {
                "id": "21",
                "name": "WinGameStore"
            },
            {
                "id": "23",
                "name": "GameBillet"
            },
            {
                "id": "25",
                "name": "Epic Games Store"
            },
            {
                "id": "27",
                "name": "Gamesplanet"
            },
            {
                "id": "28",
           
…(truncated, see openapi.json for full schema)
```


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