get_game
Retrieve a stored chess game move by move from cached analysis, including evaluations, win chances, move classes and flagged mistakes; filter by ply range to review key positions.
Instructions
One cached game move by move, from the stored analysis (no engine is run).
game is a game_id or a chess.com game link. Pass username so meta.my_color is set.
ply_from/ply_to are an inclusive range. only_flagged keeps just inaccuracies, mistakes and
blunders of either side, plus the ply before and after each (marked "context": true).
Conventions:
ply 1 is White's first move, ply 2 Black's first; Black's n-th move is ply 2n.
eval_before/eval_after are always from WHITE's point of view: {"cp", "mate"}. cp is clipped to +-1000. When a mate is known, cp is null and mate is the number of moves (positive = White mates). mate 0 = the position is checkmate ("mated" names the loser).
win_chance_before/after and wp_loss (0-100 scale) are from the point of view of the side that MADE the move, the same as worst_moments. class is best/good/inaccuracy/mistake/ blunder, using the same thresholds as the reports. No opening-book detection exists.
Every win chance, loss and percentage in every tool is rounded to 1 decimal, halves up, so the same move reads the same everywhere. Classes use the unrounded value.
mate_before_mover: N when the mover had a forced mate in N before moving. missed_mate: N when the move left no mate for the mover (class is NOT changed by this, a missed mate can still read "good"). mate_lengthened: {"from": N, "to": M} when a mate survives but takes more than N-1 moves. All null when there was no mate or the mate data is unknown (see meta.mate_data and the note). only_flagged also keeps a missed mate of 5 moves or fewer.
motifs: why a costly move (mistake, blunder, or a mate of 5 moves or fewer let go) was costly, e.g. ["moved_piece_hangs"], ["untagged"] when no rule fits. [] = not costly enough to tag; null = costly but not tagged yet (run tag_motifs). motif_details carries extras such as {"allowed_fork": {"with_check": true}}.
best_san/best_uci are null when the move played was the engine's best; best_pv_san (up to 5 plies, starts with the best move) is still given, or null if not stored.
clock_after is seconds left after the move; time_spent includes the increment. Both are null when the game has no clock data.
An unanalysed game returns SAN/UCI/FEN/clock with all evaluation fields null.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| game | Yes | ||
| ply_to | No | ||
| ply_from | No | ||
| username | No | ||
| include_pv | No | ||
| only_flagged | No |