How to hit the Chess.com API

Chess.com's Published-Data API at https://api.chess.com/pub is read-only public data: profiles, ratings, and monthly game archives.

Authentication

None — no key, no signup. Every example runs as-is.

Full reference: https://www.chess.com/news/view/published-data-api

Get a player

curl https://api.chess.com/pub/player/hikaru
Run in PostTaco
Example response (trimmed)
{
  "avatar": "https://images.chesscomfiles.com/uploads/v1/user/15448422.88c010c1.200x200o.3c5619f5441e.png",
  "player_id": 15448422,
  "@id": "https://api.chess.com/pub/player/hikaru",
  "url": "https://www.chess.com/member/Hikaru",
  "name": "Hikaru Nakamura",
  "username": "hikaru",
  "title": "GM",
  "followers": 1409527,
  "country": "https://api.chess.com/pub/country/US",
  "location": "Florida",
  "last_online": 1790171001,
  "joined": 1389043258,
  "status": "premium",
  "is_streamer": true,
  "twitch_url": "https://twitch.tv/gmhikaru"
}

Player ratings

Best and current rating per time control.

curl https://api.chess.com/pub/player/hikaru/stats
Run in PostTaco
Example response (trimmed)
{
  "chess_daily": {
    "last": {
      "rating": 2239,
      "date": 1770563021,
      "rd": 103
    },
    "best": {
      "rating": 2464,
      "date": 1397136740,
      "game": "https://www.chess.com/game/daily/84604826"
    },
    "record": {
      "win": 73,
      "loss": 11,
      "draw": 4,
      "time_per_move": 32755,
      "timeout_percent": 0
    }
  },
  "chess960_daily": {
    "last": {
      "rating": 1231,
      "date": 1444458214,
      "rd": 230
    },
    "best": {
      "rating": 1489,
      "date": 1397073007,
      "game": "https://www.chess.com/game/daily/87191830"
    },
    "record": {
      "win": 1,
      "loss": 2,
      "draw": 0,
      "time_per_move": 32755,
      "timeout_percent": 0
    }
  },
  "chess_rapid": {
    "last": {
      "rating": 2838,
      "date": 1786796329,
      "rd": 44
    },
    "best": {
      "rating": 2927,
      "date": 1645902514,
      "game": "https://www.chess.com/game/live/141332265952"
    },
    "record": {
      "win": 205,
      "loss": 69,
      "draw": 220
    }
  },
  "chess_bullet": {
    "last": {
      "rating": 3441,
      "date": 1789840783,
      "rd": 29
    },
    "best": {
      "rating": 3570,
      "date": 1605136047,
      "game": "https://www.chess.com/game/live/5710095242"
    },
    "record": {
      "win": 16927,
      "loss": 2467,
      "draw": 1150
    }
  },
  "chess_blitz": {
    "last": {
      "rating": 3439,
      "date": 1790141825,
      "rd": 31
    },
    "best": {
      "rating": 3469,
      "date": 1785599066,
      "game": "https://www.chess.com/game/live/162034628699"
    },
    "record": {
      "win": 35803,
      "loss": 5529,
      "draw": 4357
    }
  },
  "fide": 2814,
  "tactics": {
    "highest": {
      "rating": 2730,
      "date": 1389043258
    },
    "lowest": {
      "rating": 2730,
      "date": 1389043258
    }
  },
  "puzzle_rush": {
    "best": {
      "total_attempts": 126,
      "score": 123
    }
  }
}

Titled players

Every account with a title, e.g. GM.

curl https://api.chess.com/pub/titled/GM
Run in PostTaco
Example response (trimmed)
{
  "players": [
    "0blivi0usspy",
    "123lt"
  ]
}