---
title: "Get Store Page"
method: GET
path: "/api/stores/{code}"
tags: ["catalog"]
---

# Get Store Page

`GET /api/stores/{code}`

## 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/stores/{code}`
- Auth: none declared

A listed store's page, in the requested market's currency.

Answers 404 while `catalog.STORE_PAGES_LIVE` is off, exactly as it does for
a code no listed store has: the page is not public until its copy is.

## Path parameters

- `code` 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

- StorePageOut: One store's page (`catalog.store_page`): its identity, the stores table's figures for it, and the games it is cheapest on. Declared beside its one route rather than in gcg/schemas.py, and mirrored by `StorePageData` in app/src/lib/storePage.ts.
  - `code` string, required
  - `name` string, required
  - `domain` string, required
  - `accent` string, required
  - `kind` string, required
  - `currency` string, nullable, required
  - `offers` integer, required
  - `games` integer, required
  - `wins` integer, required
  - `winsOf` integer, required
  - `lastCheckedAt` string, date-time, nullable, required
  - `checkOk` boolean, required
  - `fees` integer, required
  - `couponCode` string, nullable, required
  - `couponDiscount` string, nullable, required
  - `couponOffers` integer, required
  - `cheapest` GameCardOut[], required
    - `slug` string, required
    - `title` string, required
    - `releaseYear` integer, nullable, required
    - `releaseDate` string, date, nullable
    - `publisher` string, required
    - `genres` string[], required
    - `steamAppId` integer, nullable
    - `coverBase` string, nullable
    - `priceHistory` integer[]
    - `kind` string
    - `isFree` boolean
    - `freeToKeep` boolean
    - `giveaway` GcgSchemasGiveawayOut: A giveaway on another store than Steam: what the claim button says and where it goes (`catalog.GIVEAWAY_ELSEWHERE`). Steam's own is the game's `free_to_keep`, whose link the client builds from the appid.
      - `platform` string, required
      - `claimUrl` string, nullable
      - `endsAt` string, date-time, nullable
    - `playUrl` string, nullable
    - `edition` string, nullable
    - `franchise` string, nullable
    - `offers` OfferCardOut[]
      - `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
      - `currency` string, required
      - `listPriceCents` integer, nullable, required
      - `feeCents` integer, required
      - `totalCents` integer, required
      - `platform` string, required
      - `inStock` boolean, 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/57333a690301?raw)
