openapi: 3.1.0 info: title: Chess.com Published Data Clubs 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: Clubs description: Club profiles, members, and team matches paths: /player/{username}/clubs: get: summary: Get Player Club Memberships operationId: getPlayerClubs tags: - Clubs parameters: - $ref: '#/components/parameters/Username' responses: '200': description: Clubs the player belongs to content: application/json: schema: type: object /club/{url-ID}: get: summary: Get Club Profile operationId: getClub tags: - Clubs parameters: - $ref: '#/components/parameters/ClubUrlId' responses: '200': description: Club profile content: application/json: schema: $ref: '#/components/schemas/Club' /club/{url-ID}/members: get: summary: Get Club Members operationId: getClubMembers tags: - Clubs parameters: - $ref: '#/components/parameters/ClubUrlId' responses: '200': description: Club members grouped by activity level content: application/json: schema: type: object properties: weekly: type: array items: $ref: '#/components/schemas/ClubMember' monthly: type: array items: $ref: '#/components/schemas/ClubMember' all_time: type: array items: $ref: '#/components/schemas/ClubMember' /club/{url-ID}/matches: get: summary: Get Club Matches operationId: getClubMatches tags: - Clubs parameters: - $ref: '#/components/parameters/ClubUrlId' responses: '200': description: Team matches for the club content: application/json: schema: type: object /country/{iso}/clubs: get: summary: List Clubs By Country operationId: listCountryClubs tags: - Clubs parameters: - $ref: '#/components/parameters/Iso' responses: '200': description: Clubs for the given country content: application/json: schema: type: object properties: clubs: type: array items: type: string components: schemas: ClubMember: type: object properties: username: type: string joined: type: integer Club: type: object properties: '@id': type: string name: type: string club_id: type: integer country: type: string average_daily_rating: type: integer members_count: type: integer created: type: integer last_activity: type: integer admin: type: array items: type: string visibility: type: string join_request: type: string description: type: string parameters: 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 Iso: name: iso in: path required: true description: ISO 3166-1 alpha-2 country code (e.g. US, RU, IN) schema: type: string minLength: 2 maxLength: 2