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.
/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.urls | Destination |
|---|---|
api_detail | This JSON profile. |
api_bio | Biography, structured sections, quotes, and sources. |
api_notable_games | Complete ordered notable-game selection. |
api_games | Paginated game archive. |
api_pgn | Archive PGN export, capped at 300 games. |
html_about, html_games | Public website pages, intended for a browser. |
/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 field | Shape |
|---|---|
epithet, lifespan, crown, lede, legacy | Text; empty strings mean unavailable. |
vitals | Array of {label, value}. |
sections | Array of {heading, body: [paragraphs]}. |
numbers | Array of {value, label}. |
quotes_by, quotes_about | Arrays of {text, source}. |
sources | Array of {label, url}. |
Render biography and editorial strings as text. They are content fields, not trusted HTML. Keep source attribution available in your app.
/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.