openapi: 3.1.0 info: title: Chess.com Published Data Clubs Matches 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: Matches description: Daily and live team match details paths: /player/{username}/matches: get: summary: Get Player Team Matches operationId: getPlayerMatches tags: - Matches parameters: - $ref: '#/components/parameters/Username' responses: '200': description: Team match participation content: application/json: schema: type: object /club/{url-ID}/matches: get: summary: Get Club Matches operationId: getClubMatches tags: - Matches parameters: - $ref: '#/components/parameters/ClubUrlId' responses: '200': description: Team matches for the club content: application/json: schema: type: object /match/{ID}: get: summary: Get Daily Team Match operationId: getDailyMatch tags: - Matches parameters: - $ref: '#/components/parameters/MatchId' responses: '200': description: Daily team match details content: application/json: schema: type: object /match/{ID}/{board}: get: summary: Get Daily Team Match Board operationId: getDailyMatchBoard tags: - Matches parameters: - $ref: '#/components/parameters/MatchId' - $ref: '#/components/parameters/Board' responses: '200': description: Daily team match board content: application/json: schema: type: object /match/live/{ID}: get: summary: Get Live Team Match operationId: getLiveMatch tags: - Matches parameters: - $ref: '#/components/parameters/MatchId' responses: '200': description: Live team match details content: application/json: schema: type: object /match/live/{ID}/{board}: get: summary: Get Live Team Match Board operationId: getLiveMatchBoard tags: - Matches parameters: - $ref: '#/components/parameters/MatchId' - $ref: '#/components/parameters/Board' responses: '200': description: Live team match board content: application/json: schema: type: object components: parameters: MatchId: name: ID in: path required: true description: Numeric team-match ID schema: type: integer Board: name: board in: path required: true description: Board number within the team match schema: type: integer Username: name: username in: path required: true description: All-lowercase Chess.com username schema: type: string ClubUrlId: name: url-ID in: path required: true description: Club URL-ID slug from chess.com/club/{url-ID} schema: type: string