---
title: "Fetch atomic selected-item changes"
method: GET
path: "/api/v1/selected/changes"
---

# Fetch atomic selected-item changes

`GET /api/v1/selected/changes`

## Request

- Base URL: `https://gameshot.games`
- URL: `https://gameshot.games/api/v1/selected/changes`
- Auth: none declared

Adds, edits and removals since your cursor, so a local copy stays correct without re-downloading anything. Apply a page, then save the returned cursor — never the other way round. The cursor is a ledger watermark, not a session: it does not expire on a timer, so a client may go offline for days and resume exactly where it stopped. On 409 snapshot_required, re-bootstrap from /api/v1/selected/snapshot; that response is the only signal that resuming is no longer safe.

## Query parameters

- `cursor` string, required
- `limit` integer

## Headers

- `User-Agent` string
- `If-None-Match` string

## Response `200`

OK

- union
  - object
    - `schemaVersion` unknown, required
    - `fields` 'default', required
    - `cursor` string, required
    - `count` integer, required
    - `hasMore` boolean, required
    - `changes` union[], required
      - union
        - SelectedUpsert
          - `op` 'upsert', required
          - `changedAt` string, date-time, required
          - `item` Item, required
            - `id` string, required
            - `title` string, required
            - `originalTitle` string, nullable, required
            - `summary` string, nullable, required
            - `source` object, required
              - …
            - `links` object, required
              - …
            - `publishedAt` string, date-time, nullable, required
            - `discoveredAt` string, date-time, required
            - `category` string, nullable, required: Current values: release, industry, leak, review, esports, deal. Clients must tolerate future string values.
            - `score` number, nullable, required
            - `selected` boolean, required
            - `reason` string, nullable: Reader-facing recommendation reason, the same text shown as 推荐理由 on the website. Always present on /api/v1/items; null when the item is not selected or has no reader-facing reason. Selected snapshot and changes do not include this field yet.
            - `attribution` Attribution: Machine-readable Gameshot provenance for traceability. Retain it where technically feasible. Attribution alone is not authorization; see the public terms.
              - …
        - SelectedRemove
          - `op` 'remove', required
          - `changedAt` string, date-time, required
          - `id` string, required
  - object
    - `schemaVersion` unknown, required
    - `fields` 'minimal', required
    - `cursor` string, required
    - `count` integer, required
    - `hasMore` boolean, required
    - `changes` union[], required
      - union
        - SelectedUpsertMinimal
          - `op` 'upsert', required
          - `changedAt` string, date-time, required
          - `item` ItemMinimal, required
            - `id` string, required
            - `title` string, required
            - `source` object, required
              - …
            - `links` object, required
              - …
            - `publishedAt` string, date-time, nullable, required
            - `discoveredAt` string, date-time, required
            - `category` string, nullable, required: Current values: release, industry, leak, review, esports, deal. Clients must tolerate future string values.
            - `score` number, nullable, required
            - `selected` boolean, required
        - SelectedRemove
          - `op` 'remove', required
          - `changedAt` string, date-time, required
          - `id` string, required

## Other responses

- `304`: Not Modified
- `400`: Machine-readable problem response.
- `403`: Machine-readable problem response.
- `405`: Machine-readable problem response.
- `409`: Machine-readable problem response.
- `429`: Machine-readable problem response.
- `503`: Machine-readable problem response.

---

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