Documentation / Guides

Changelog

What changed in the API, newest first.

9 Oct 2026
Point by point, format and the officials' calls

GET /v1/matches/{id}/points gives every score in every game as our live tracking saw it, about every 10 seconds, with who served, for matches followed live from October 2026, on every plan. Every match now carries points_per_game, win_by, utc_offset_min, started_at (the first point), timeouts, cards, video_review, challenges_each and, while live, serving. Events carry utc_offset_min.

8 Oct 2026
World rankings

GET /v1/rankings gives the top 100 of every world ranking list, senior and youth, singles and doubles (by pair or by player), with points and movement, on every plan. GET /v1/players/{id}/rankings gives a player's ranking week by week on the Live, Archive and Complete plans. Ranking history starts with the week of 5 October 2026 and grows every week. GET /v1/players/{id} now carries world_ranks, the player's ranks this week.

7 Oct 2026
Match length from live tracking

When a match card records no length, duration_s is now measured by our live tracking for every match followed from its first point, to about 10 seconds.

7 Oct 2026
Date of birth and playing hand

GET /v1/players/{id} now carries born, hand and height_cm where they are publicly recorded, mostly for senior players, and lost in a player's record no longer counts draws or matches not played.

7 Oct 2026
Every result explained

An official match without a winner now says why in result_note: not played, draw or stopped, beside walkover, retired and disqualified. Team ties list each rubber's game score in games, and a tie level on rubbers in a format played to a games total takes the side with more games as its winner.

7 Oct 2026
Agent skill

One SKILL.md that teaches Claude and other agents to use the API, at /skill.md and found by agents at /.well-known/agent-skills/index.json. See The whole API in one file.

1 Oct 2026
Webhooks

On the Live and Complete plans, add up to 10 addresses on your dashboard and get a signed POST for match.finished, match.live and event.added, with retries over about 3 days. See Webhooks.

1 Oct 2026
Key rotation

Rotate a key from the dashboard: the new key works at once and the old one keeps working for 24 hours while you swap it in.

30 Sep 2026
Our own ids, codes and names everywhere

round is now our own code (final, semi_final, quarter_final, round_of_16 ... group, qualifying_1, bronze), and the round filter takes the same codes. irm is replaced by result_note (walkover, retired or disqualified), table is the table number, and team ties carry rubber. The outside player number and its filter are gone: find players by name or country. Names are in normal casing, such as Wang Chuqin, and event names carry no organiser's brand, such as Champions Macao 2026.

30 Sep 2026
One allowance per account

Calls a minute and calls a day are now counted across all the keys of an account, and /v1/usage reports the account's calls.

30 Sep 2026
The whole API in one file

The documentation as one Markdown file, llms.txt, an OpenAPI 3.1 file and a Postman collection, all generated from the same source as these pages.

30 Sep 2026
History starts December 2024

Coverage and every page now say so. Earlier seasons are not in the API yet.

29 Sep 2026
Version 1 preview

Twelve endpoints: live matches, matches, a match, yesterday's results, events, an event and its matches, players, a player, a player's matches, head to head and usage. Free key, Live, Archive and Complete plans.