# CheapShark

> Track PC game prices with CheapShark: find deals across Steam, GOG, Fanatical, Green Man Gaming and dozens of other stores, search the game catalogue, and see the cheapest a game has ever been. No account or API key required.

App · Gaming · 6 actions. Web page: https://docs.lodol.com/docs/integrations/cheapshark

## Actions

### Get a deal

Look up one deal by its id and get the game's full details, every store selling it for less right now, and the lowest price it has ever been. No API key required.

**Inputs**

- Deal ID (`deal_id`, text, required): The CheapShark deal id, as returned by List deals. Deal ids change as prices update, so look one up fresh rather than saving it.

**Outputs**

- `cheaper_stores` (list): Stores selling the same game for less right now, cheapest first. Empty when this is the best price.
- `cheapest_price` (object): The lowest price the game has ever been, across all stores.
- `deal_id` (text): The deal id that was looked up.
- `deal_url` (text): CheapShark redirect link for this deal. Always send users here rather than to the store directly: it is CheapShark's condition for the API being free.
- `game_info` (object): The game, priced at this deal's store.

**Example output**

```json
{
  "cheaper_stores": [
    {
      "deal_id": "vb3EqB4KpKbSyV83DXQYAZCSBS60LaOMgLCXSt8pQxw%3D",
      "deal_url": "https://www.cheapshark.com/redirect?dealID=vb3EqB4KpKbSyV83DXQYAZCSBS60LaOMgLCXSt8pQxw%3D",
      "retail_price": 29.99,
      "sale_price": 5.89,
      "store_id": "23"
    }
  ],
  "cheapest_price": {
    "date": "2023-04-26T22:33:45+00:00",
    "price": 4.49
  },
  "deal_id": "X8sebHhbc1Ga0dTkgg59WgyM506af9oNZZJLU9uSrX8%3D",
  "deal_url": "https://www.cheapshark.com/redirect?dealID=X8sebHhbc1Ga0dTkgg59WgyM506af9oNZZJLU9uSrX8%3D",
  "game_info": {
    "game_id": "93503",
    "metacritic_score": 94,
    "metacritic_url": "https://www.metacritic.com/game/pc/bioshock-infinite",
    "name": "BioShock Infinite",
    "publisher": "2K Games",
    "release_date": "2013-03-25T00:00:00+00:00",
    "retail_price": 29.99,
    "sale_price": 29.99,
    "steam_app_id": "8870",
    "steam_rating_count": 98477,
    "steam_rating_percent": 93,
    "steam_rating_text": "Very Positive",
    "steamworks": true,
    "store_id": "1",
    "thumb": "https://cdn.cloudflare.steamstatic.com/steam/apps/8870/capsule_sm_120.jpg"
  }
}
```

### Get a game

Look up one game by its CheapShark id and get every store selling it right now with their prices, plus the lowest price it has ever been. No API key required.

**Inputs**

- Game ID (`game_id`, text, required): The CheapShark game id, for example 612. Search games first if you only have the title.

**Outputs**

- `cheapest_price_ever` (object): The lowest price the game has ever been, across all stores.
- `deals` (list): Every live deal for the game, cheapest first.
- `info` (object): The game's title and artwork.

**Example output**

```json
{
  "cheapest_price_ever": {
    "date": "2021-05-13T00:00:00+00:00",
    "price": 3.29
  },
  "deals": [
    {
      "deal_id": "OeAvw%2FSuIQBRlqCJZ4ijGmvOKn3Ic7zvV1EMWAvXqbY%3D",
      "deal_url": "https://www.cheapshark.com/redirect?dealID=OeAvw%2FSuIQBRlqCJZ4ijGmvOKn3Ic7zvV1EMWAvXqbY%3D",
      "price": 4.24,
      "retail_price": 19.99,
      "savings": 78.789394,
      "store_id": "1"
    }
  ],
  "info": {
    "steam_app_id": "35140",
    "thumb": "https://cdn.cloudflare.steamstatic.com/steam/apps/35140/capsule_sm_120.jpg",
    "title": "Batman: Arkham Asylum Game of the Year Edition"
  }
}
```

### Get several games

Look up many games at once by their CheapShark ids and get each one's live deals and lowest price ever, one request instead of one per game. No API key required.

**Inputs**

- Game IDs (`game_ids`, list, required): The CheapShark game ids to look up, for example 612 and 613. Search games first if you only have titles.

**Outputs**

- `count` (number): How many games were found.
- `games` (list): One entry per id CheapShark knew, in the order the ids were given. Unknown ids are left out.

**Example output**

```json
{
  "count": 1,
  "games": [
    {
      "cheapest_price_ever": {
        "date": "2021-05-13T00:00:00+00:00",
        "price": 3.29
      },
      "deals": [
        {
          "deal_id": "OeAvw%2FSuIQBRlqCJZ4ijGmvOKn3Ic7zvV1EMWAvXqbY%3D",
          "deal_url": "https://www.cheapshark.com/redirect?dealID=OeAvw%2FSuIQBRlqCJZ4ijGmvOKn3Ic7zvV1EMWAvXqbY%3D",
          "price": 4.24,
          "retail_price": 19.99,
          "savings": 78.789394,
          "store_id": "1"
        }
      ],
      "game_id": "612",
      "info": {
        "steam_app_id": "35140",
        "thumb": "https://cdn.cloudflare.steamstatic.com/steam/apps/35140/capsule_sm_120.jpg",
        "title": "Batman: Arkham Asylum Game of the Year Edition"
      }
    }
  ]
}
```

### List deals

Find current PC game deals across Steam, GOG, Fanatical, Green Man Gaming and dozens of other stores, filtered by title, store, price, discount, Metacritic score, or Steam rating. Each deal comes with a CheapShark link to send users to. No API key required.

**Inputs**

- Title contains (`title`, text): Optional. Only deals whose game title contains this text, for example "tomb raider".
- Exact title match (`exact`, true/false): Optional. Require the title to match exactly instead of matching anywhere in the name. Off by default. Default: `false`.
- Stores (`store_ids`, list): Optional. Only deals at these stores. All stores are included when nothing is chosen.
- Minimum price (`lower_price`, number): Optional. Only deals priced above this, in USD. At least 0.
- Maximum price (`upper_price`, number): Optional. Only deals priced at or below this, in USD. CheapShark treats 50 as no limit. At least 0.
- On sale only (`on_sale`, true/false): Optional. Only games discounted right now. Off by default, which also includes full-price listings. Default: `false`.
- AAA titles only (`aaa`, true/false): Optional. Only games with a retail price above $29. Off by default. Default: `false`.
- Redeems on Steam only (`steamworks`, true/false): Optional. Only deals that redeem on Steam. Off by default. Default: `false`.
- Minimum Metacritic score (`metacritic`, number): Optional. Only games scoring at least this, out of 100. From 0 to 100.
- Minimum Steam rating (`steam_rating`, number): Optional. Only games whose Steam reviews are at least this percent positive. From 0 to 100.
- Minimum Steam reviews (`minimum_review_count`, number): Optional. Only games with at least this many Steam reviews, useful for filtering out barely-rated titles. At least 0.
- Found within (hours) (`max_age`, number): Optional. Only deals first seen in the last this many hours, between 1 and 2500. From 1 to 2500.
- Steam App IDs (`steam_app_ids`, text): Optional. Only deals for these Steam games, as a comma-separated list of Steam App IDs, e.g. "8190,6980".
- Sort by (`sort_by`, text): Optional. How to order the results. Defaults to deal rating, CheapShark's own measure of how good a deal is. One of: `DealRating` (Deal rating), `Title`, `Savings`, `Price`, `Metacritic` (Metacritic score), `Reviews` (Steam review score), `ReviewCount` (Steam review count), `Release` (Release date), `Store`, `Recent` (Recently updated). Default: `DealRating`.
- Reverse order (`desc`, true/false): Optional. Sort descending instead of ascending. Off by default. Default: `false`.
- Page (`page_number`, number): Optional. Which page of results to read, counting from 0. The result's total_page_count says how many there are. At least 0. Default: `0`.
- Deals per page (`page_size`, number): Optional. How many deals to return, up to 60. Defaults to 60. From 1 to 60. Default: `60`.

**Outputs**

- `count` (number): How many deals this page returned.
- `deals` (list): The matching deals, in the requested order.
- `page_number` (number): Which page this is, counting from 0.
- `total_page_count` (number): How many pages the filter matched in total.

**Example output**

```json
{
  "count": 1,
  "deals": [
    {
      "deal_id": "HhzMJAgQYGZ%2B%2BFPpBG%2BRFcuUQZJO3KXvlnyYYGwGUfU%3D",
      "deal_rating": 9.6,
      "deal_url": "https://www.cheapshark.com/redirect?dealID=HhzMJAgQYGZ%2B%2BFPpBG%2BRFcuUQZJO3KXvlnyYYGwGUfU%3D",
      "game_id": "102249",
      "internal_name": "DEUSEXHUMANREVOLUTIONDIRECTORSCUT",
      "is_on_sale": true,
      "last_change": "2021-05-20T18:47:00+00:00",
      "metacritic_score": 91,
      "metacritic_url": "https://www.metacritic.com/game/pc/deus-ex-human-revolution---directors-cut",
      "normal_price": 19.99,
      "release_date": "2013-10-22T00:00:00+00:00",
      "sale_price": 2.99,
      "savings": 85.042521,
      "steam_app_id": "238010",
      "steam_rating_count": 17993,
      "steam_rating_percent": 92,
      "steam_rating_text": "Very Positive",
      "store_id": "1",
      "thumb": "https://cdn.cloudflare.steamstatic.com/steam/apps/238010/capsule_sm_120.jpg",
      "title": "Deus Ex: Human Revolution - Director's Cut"
    }
  ],
  "page_number": 0,
  "total_page_count": 42
}
```

### List stores

List every store CheapShark tracks, with the id used to filter deals, the store name, whether it is still tracked, and its logo. No API key required.

**Inputs**: None.

**Outputs**

- `count` (number): How many stores were returned.
- `stores` (list): Every store, by ascending store id.

**Example output**

```json
{
  "count": 1,
  "stores": [
    {
      "banner_url": "https://www.cheapshark.com/img/stores/banners/0.png",
      "icon_url": "https://www.cheapshark.com/img/stores/icons/0.png",
      "is_active": true,
      "logo_url": "https://www.cheapshark.com/img/stores/logos/0.png",
      "store_id": "1",
      "store_name": "Steam"
    }
  ]
}
```

### Search games

Search CheapShark's game catalogue by title or Steam App ID and get each match with its game id and cheapest price right now. Use the game id with Get a game. No API key required.

**Inputs**

- Title (`title`, text): The game title to search for, for example "batman". Matches anywhere in the name unless Exact match is on. Required unless a Steam App ID is given.
- Steam App ID (`steam_app_id`, text): Optional. Find the game with this Steam App ID, for example 35140. Use instead of a title when you have it.
- Exact title match (`exact`, true/false): Optional. Require the title to match exactly instead of matching anywhere in the name. Off by default. Default: `false`.
- Maximum results (`limit`, number): Optional. How many games to return, up to 60. Defaults to 60. From 1 to 60. Default: `60`.

**Outputs**

- `count` (number): How many games were returned.
- `games` (list): Matching games, best match first.

**Example output**

```json
{
  "count": 1,
  "games": [
    {
      "cheapest_deal_id": "OeAvw%2FSuIQBRlqCJZ4ijGmvOKn3Ic7zvV1EMWAvXqbY%3D",
      "cheapest_deal_url": "https://www.cheapshark.com/redirect?dealID=OeAvw%2FSuIQBRlqCJZ4ijGmvOKn3Ic7zvV1EMWAvXqbY%3D",
      "cheapest_price": 4.24,
      "game_id": "612",
      "internal_name": "BATMANARKHAMASYLUMGAMEOFTHEYEAREDITION",
      "steam_app_id": "35140",
      "thumb": "https://cdn.cloudflare.steamstatic.com/steam/apps/35140/capsule_sm_120.jpg",
      "title": "Batman: Arkham Asylum Game of the Year Edition"
    }
  ]
}
```
