---
title: "Get multiple puzzles at once"
method: GET
path: "/api/puzzle/batch/{angle}"
tags: ["Puzzles"]
---

# Get multiple puzzles at once

`GET /api/puzzle/batch/{angle}`

Get a batch of random Lichess puzzles in JSON format.

If authenticated, only returns puzzles that the user has never seen before.

**DO NOT** use this endpoint to enumerate puzzles for mass download. Instead, download the [full public puzzle database](https://database.lichess.org/#puzzles).

## Path parameters

- `angle` string, required

## Query parameters

- `difficulty` 'easiest' | 'easier' | 'normal' | 'harder' | 'hardest'
- `nb` integer
- `color` 'white' | 'black'

## Response `200`

The requested puzzles.

- PuzzleBatchSelect
  - `puzzles` PuzzleAndGame[]
    - `game` object, required
      - `clock` string, required
      - `id` string, required
      - `perf` object, required
        - `key` 'ultraBullet' | 'bullet' | 'blitz' | 'rapid' | 'classical' | 'correspondence' | 'chess960' | 'crazyhouse' | 'antichess' | 'atomic' | 'horde' | 'kingOfTheHill' | 'racingKings' | 'threeCheck', required
        - `name` string, required
      - `pgn` string, required
      - `players` object[], required
        - `color` 'white' | 'black', required
        - `flair` string — See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair)
        - `id` string, required
        - `name` string, required
        - `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
        - `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
      - `rated` boolean, required
    - `puzzle` object, required
      - `id` string, required
      - `initialPly` integer, required
      - `plays` integer, required
      - `rating` integer, required
      - `fen` string
      - `lastMove` string — In UCI format, e.g. "e2e4"
      - `solution` string[], required
      - `themes` string[], required
  - `glicko` PuzzleGlicko
    - `rating` number
    - `deviation` number
    - `provisional` boolean

---

[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)
