Skip to content

v1.3.0 — the tape, statistics, rankings, rally & charting, push feed

Choose a tag to compare

@bensynapse bensynapse released this 07 Aug 00:54
· 1 commit to main since this release

Full typed coverage of the 2026-08 API surface, on both clients.

Added

  • Point-by-point tapeget_match_tape(match_id, sequence=) (BASIC, or any History plan); works on live matches. TapeRow = Score + point_winner (clean rows only); per-set tiebreak finals in tiebreaks; typed TapeMeta coverage.
  • In-play statisticsget_match_statistics() (ULTRA): derived vs measured families, per-family freshness; measured fields omitted when absent, never zero-filled.
  • Point-in-time rankingslist_rankings(): full published table for one system (PRO) or per-player as-of records via player= (ULTRA). RankingRecord carries previous_rank, rank_movement, rating.
  • Rally construction & charting (ULTRA) — list_rally_matches / get_rally_match / get_match_rally (404 not_charted distinguishable), get_charting_player / get_charting_match.
  • Bulk packageslist_history_packages(kind=, year=) / get_history_package() (PRO; non-tape kinds and year= are ULTRA).
  • Push feedget_ws_token() (ULTRA): ws_url, match_channel(id), slate_channel (slate:all).
  • Usageget_usage(), quota-exempt.
  • ErrorsAbuseThrottled (a RateLimited; .retry_at_epoch, never auto-retried) and daily-cap 429s surfacing .scope / .limit_per_day / .resets_at (parsed; not auto-retried). Parameter-aware required_tier on 403s.

Changed

  • WebSocket score frames carry the ULTRA model fields (win_probability_p1, danger) exactly as REST does.
  • README: current quota grid (FREE 100/day), full endpoint/tier table, five-tour coverage (ATP, WTA, Challenger, ITF and juniors).

Fully backwards compatible.