Chess.com Puzzles API

Daily and random puzzles

OpenAPI Specification

chess-com-puzzles-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Chess.com Published Data Clubs Puzzles API
  description: 'Public, read-only REST API exposing Chess.com data: player profiles and stats, monthly game

    archives (JSON and PGN), clubs and members, daily and live team matches, Swiss and round-robin

    tournaments, titled-player lists, country rosters, the daily puzzle, the streamer list, and

    live leaderboards.


    The API is unauthenticated; rate limiting applies to parallel requests (429 Too Many Requests).

    Responses use JSON-LD with ETag, Last-Modified, gzip, and JSONP support. Most endpoints refresh

    at most every 12-24 hours. Clients are encouraged to send a recognizable User-Agent including a

    contact email or URL.

    '
  version: '2026-05-25'
  contact:
    name: Chess.com Support
    url: https://support.chess.com
  x-logo:
    url: https://www.chess.com/favicon.ico
servers:
- url: https://api.chess.com/pub
  description: Chess.com Published Data API
tags:
- name: Puzzles
  description: Daily and random puzzles
paths:
  /puzzle:
    get:
      summary: Get Daily Puzzle
      operationId: getDailyPuzzle
      tags:
      - Puzzles
      responses:
        '200':
          description: The daily puzzle
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Puzzle'
  /puzzle/random:
    get:
      summary: Get Random Daily Puzzle
      operationId: getRandomPuzzle
      tags:
      - Puzzles
      responses:
        '200':
          description: A randomly selected past daily puzzle
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Puzzle'
components:
  schemas:
    Puzzle:
      type: object
      properties:
        title:
          type: string
        url:
          type: string
          format: uri
        publish_time:
          type: integer
        fen:
          type: string
        pgn:
          type: string
        image:
          type: string
          format: uri