---
title: "List News"
method: GET
path: "/api/news"
tags: ["news"]
---

# List News

`GET /api/news`

## 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/news`
- Auth: none declared

Live posts, newest first, `news.PAGE_SIZE` to a page; a page past the last
is empty. Each in `locale` where it has a current translation into it.

## Query parameters

- `page` integer: From 1
- `tag` 'news' | 'guide' | 'review' | 'deals' | 'video', nullable: Only posts filed under this
- `locale` string, nullable: The reader's language, as the app names it

## Response `200`

Successful Response

- NewsListOut
  - `items` NewsCardOut[], required
    - `slug` string, required
    - `title` string, required
    - `dek` string, required
    - `tag` string, required
    - `author` string, required
    - `publishedAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `readingMinutes` integer, required
    - `cover` NewsCoverOut: A post's picture: `src` a 960-wide WebP, the two `srcset`s the widths in AVIF and WebP (`url 480w, url 960w, url 1600w` for a stored cover; a game's own widths when it is borrowed), and the frame's size for the box a page reserves. Pages crop it to 16:9. Site-relative, like `coverBase`.
      - `src` string, required
      - `srcsetAvif` string, required
      - `srcsetWebp` string, required
      - `width` integer, required
      - `height` integer, required
    - `videoId` string, nullable
    - `lang` string
  - `page` integer, required
  - `pageSize` integer, required
  - `total` integer, 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)
