---
title: "Get Game History"
method: GET
path: "/api/games/{slug}/history"
tags: ["catalog"]
---

# Get Game History

`GET /api/games/{slug}/history`

## Request

- Base URL: `https://api.getcheapgames.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getcheapgames.com/api/games/{slug}/history`
- Auth: none declared

The price chart's data: per store, per platform, per day.

A separate request from the game itself, deliberately. The page can paint
its answer — title, cheapest total, the offer table — before this arrives,
and a 90-day series across several stores is several times the size of
everything else on the page. Folding it into `GET /games/{slug}` would
delay the part a buyer came for behind the part they scroll to.

## Path parameters

- `slug` string, required

## Query parameters

- `country` string, nullable: ISO country code; its currency is used
- `currency` string, nullable: One of EUR, GBP, USD, CAD, CHF, DKK, SEK, NOK, PLN, CZK, HUF, BRL, MXN, CLP, COP, PEN, CRC, UYU, GTQ

## Response `200`

Successful Response

- PriceHistoryOut
  - `currency` string, required
  - `today` string, date, required
  - `windowDays` integer, required
  - `platforms` string[], required
  - `best` BestPointOut[], required
    - `day` string, date, required
    - `lowCents` integer, required
    - `highCents` integer, required
    - `closeCents` integer, required
    - `bestStore` string, nullable
    - `converted` boolean
  - `series` HistorySeriesOut[], required
    - `store` StoreRefOut, required: The store fields a client needs to render an offer. Embedded in each offer rather than referenced by id: it removes a client-side join and a second request, and six short records across a response is nothing next to the round trip it saves.
      - `code` string, required
      - `name` string, required
      - `accent` string, required
      - `kind` string, required
    - `platform` string, required
    - `role` string, required
    - `converted` boolean, required
    - `quotedCurrency` string, required
    - `points` DailyPointOut[], required
      - `day` string, date, required
      - `lowCents` integer, required
      - `highCents` integer, required
      - `closeCents` integer, required
  - `foreign` ForeignTrackOut: Series we hold but cannot express in the visitor's currency. Never merged into the main panel: they get their own axis in their own money. This is the designed state for the six currencies the ECB does not publish — CLP, COP, CRC, GTQ, PEN, UYU — not an error path.
    - `currency` string, required
    - `reason` string, required
    - `series` HistorySeriesOut[], required
      - `store` StoreRefOut, required: The store fields a client needs to render an offer. Embedded in each offer rather than referenced by id: it removes a client-side join and a second request, and six short records across a response is nothing next to the round trip it saves.
        - `code` string, required
        - `name` string, required
        - `accent` string, required
        - `kind` string, required
      - `platform` string, required
      - `role` string, required
      - `converted` boolean, required
      - `quotedCurrency` string, required
      - `points` DailyPointOut[], required
        - `day` string, date, required
        - `lowCents` integer, required
        - `highCents` integer, required
        - `closeCents` integer, required
  - `conversion` ConversionOut
    - `source` string, required
    - `base` string, required
    - `rate` number, required
    - `rateDay` string, date, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getcheapgames/apis/getcheapgames-api.md) · [All operations](https://skmtc.dev/getcheapgames/apis/getcheapgames-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getcheapgames/apis/getcheapgames-api/revisions/962824bb76da?raw)
