Classic Chess · REST API

Player profiles

Start with the curated player catalog and follow its urls object. A display name is for presentation; the returned slug identifies the archive. MasterDB player identities are a separate source, resolved by the player resolver.

GET/api/v1/public/players/{player_slug}/

One profile under player, with name, slug, game count, archive era and year span, selection criteria, portrait URLs, approved bio, and links. bookmarked is false anonymously and reflects the caller's bookmark when authenticated.

Link in player.urlsDestination
api_detailThis JSON profile.
api_bioBiography, structured sections, quotes, and sources.
api_notable_gamesComplete ordered notable-game selection.
api_gamesPaginated game archive.
api_pgnArchive PGN export, capped at 300 games.
html_about, html_gamesPublic website pages, intended for a browser.
GET/api/v1/public/players/{player_slug}/bio/

Returns source, player name and slug, and bio. The same approved biography is also included in the JSON catalog and profile. Missing or withheld biographies consistently return bio: null; apps should show a profile without biography content.

Biography fieldShape
epithet, lifespan, crown, lede, legacyText; empty strings mean unavailable.
vitalsArray of {label, value}.
sectionsArray of {heading, body: [paragraphs]}.
numbersArray of {value, label}.
quotes_by, quotes_aboutArrays of {text, source}.
sourcesArray of {label, url}.

Render biography and editorial strings as text. They are content fields, not trusted HTML. Keep source attribution available in your app.

GET/api/v1/public/players/{player_slug}/notable-games/

A complete list with count and results. Preserve the returned order. Each entry contains a one-based position, editorial title, a short annotation explaining the selection, and a game summary with canonical detail and PGN URLs.

This selection is separate from move-by-move book annotations. A valid player without a notable selection returns count: 0, results: []. Unknown player slugs, or players without an available game archive, return HTTP 404 with error.code: not_found.