---
title: "Export your bookmarked games"
method: GET
path: "/api/games/export/bookmarks"
tags: ["Games"]
---

# Export your bookmarked games

`GET /api/games/export/bookmarks`

Download all games bookmarked by you, in PGN or [ndjson](#description/streaming-with-nd-json) format.
Games are sorted by reverse chronological order (most recent first).
We recommend streaming the response, for it can be very long.

## Query parameters

- `since` integer
- `until` integer
- `max` integer
- `moves` boolean
- `pgnInJson` boolean
- `tags` boolean
- `clocks` boolean
- `evals` boolean
- `accuracy` boolean
- `opening` boolean
- `division` boolean
- `literate` boolean
- `lastFen` boolean
- `sort` 'dateAsc' | 'dateDesc'

## Headers

- `Accept` 'application/x-chess-pgn' | 'application/x-ndjson'

## Response `200`

The bookmarked games of the user.

- union
  - string
  - GameJson
    - `id` string, required
    - `rated` boolean, required
    - `variant` 'standard' | 'chess960' | 'crazyhouse' | 'antichess' | 'atomic' | 'horde' | 'kingOfTheHill' | 'racingKings' | 'threeCheck' | 'fromPosition', required
    - `speed` 'ultraBullet' | 'bullet' | 'blitz' | 'rapid' | 'classical' | 'correspondence', required
    - `perf` string, required
    - `createdAt` integer, required
    - `lastMoveAt` integer, required
    - `status` 'created' | 'started' | 'aborted' | 'mate' | 'resign' | 'stalemate' | 'timeout' | 'draw' | 'outoftime' | 'cheat' | 'noStart' | 'unknownFinish' | 'insufficientMaterialClaim' | 'variantEnd', required
    - `source` string
    - `players` GamePlayers, required
      - `white` GamePlayerUser, required
        - `user` LightUser, required
          - `id` string, required
          - `name` string, required
          - `flair` string — See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair)
          - `title` 'GM' | 'WGM' | 'IM' | 'WIM' | 'FM' | 'WFM' | 'NM' | 'CM' | 'WCM' | 'WNM' | 'LM' | 'BOT' — only appears if the user is a titled player or a bot user
          - `patron` boolean — Use patronColor value instead to determine if player is a patron.
          - `patronColor` integer — Players can choose a color for their Patron wings. See [here for the color mappings](https://github.com/lichess-org/lila/blob/master/ui/lib/css/abstract/_patron-colors.scss). The presence of this field indicates the player is an active Patron.
        - `rating` integer, required
        - `ratingDiff` integer
        - `name` string
        - `provisional` boolean
        - `aiLevel` integer
        - `analysis` object
          - `inaccuracy` integer, required
          - `mistake` integer, required
          - `blunder` integer, required
          - `acpl` integer, required
          - `accuracy` integer
        - `team` string
      - `black` GamePlayerUser, required
        - `user` LightUser, required
          - `id` string, required
          - `name` string, required
          - `flair` string — See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair)
          - `title` 'GM' | 'WGM' | 'IM' | 'WIM' | 'FM' | 'WFM' | 'NM' | 'CM' | 'WCM' | 'WNM' | 'LM' | 'BOT' — only appears if the user is a titled player or a bot user
          - `patron` boolean — Use patronColor value instead to determine if player is a patron.
          - `patronColor` integer — Players can choose a color for their Patron wings. See [here for the color mappings](https://github.com/lichess-org/lila/blob/master/ui/lib/css/abstract/_patron-colors.scss). The presence of this field indicates the player is an active Patron.
        - `rating` integer, required
        - `ratingDiff` integer
        - `name` string
        - `provisional` boolean
        - `aiLevel` integer
        - `analysis` object
          - `inaccuracy` integer, required
          - `mistake` integer, required
          - `blunder` integer, required
          - `acpl` integer, required
          - `accuracy` integer
        - `team` string
    - `initialFen` string
    - `winner` 'white' | 'black'
    - `opening` GameOpening
      - `eco` string, required
      - `name` string, required
      - `ply` integer, required
    - `moves` string
    - `pgn` string
    - `daysPerTurn` integer
    - `analysis` GameMoveAnalysis[]
      - `eval` integer — Evaluation in centipawns
      - `mate` integer — Number of moves until forced mate
      - `best` string — Best move in UCI notation (only if played move was inaccurate)
      - `variation` string — Best variation in SAN notation (only if played move was inaccurate)
      - `judgment` object — Judgment annotation (only if played move was inaccurate)
        - `name` 'Inaccuracy' | 'Mistake' | 'Blunder'
        - `comment` string
    - `arenaTour` object — The arena tournament the game is from
      - `id` string
      - `name` string
    - `swissTour` object — The swiss tournament the game is from
      - `id` string
    - `clock` object
      - `initial` integer, required
      - `increment` integer, required
      - `totalTime` integer, required
    - `clocks` integer[]
    - `division` object
      - `middle` integer — Ply at which the middlegame begins
      - `end` integer — Ply at which the endgame begins

---

[API](https://skmtc.net/lichess/apis/lichess-org-api-reference.md) · [All operations](https://skmtc.net/lichess/apis/lichess-org-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lichess/lichess-org-api-reference/versions/1425db81eb3b/schema)
