The durable record of every score state we withdrew on this match (ULTRA)

Added 2026-09-25. One row per refused sequence, oldest first, each carrying the score_withdrawn frame exactly as the push feed sent it.

This is the RECOVERY PATH for a missed frame. The verdict object on GET /matches/{matchId}/score is recomputed on every read over the newest state, so it returns null again as soon as the next state is accepted, which in a live match is seconds. The record here is written when the judgement is made, before the frame is delivered, so a consumer that was disconnected can still learn that a sequence it holds was taken back. GET /matches?withdrawn_since= says which matches to ask about; ?sequence=N on the score read answers for one sequence without fetching the list.

ULTRA, the tier that receives the frame on the push feed and the native WebSocket. An empty data is the ordinary answer and means nothing was withdrawn on that match. Records are kept 90 days from the withdrawal.

get/matches/{matchId}/withdrawals

Request

  • Base URL: https://api.livetennisapi.com/api/public/v1
  • URL: https://api.livetennisapi.com/api/public/v1/matches/{matchId}/withdrawals
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Path parameters

matchIdinteger required

The match id. Every match route shares ONE id space, so the same value works everywhere matchId appears.

Get it from any match list, where it is the id field of each match object: GET /matches?status=live (in progress), GET /matches?status=upcoming or GET /fixtures (scheduled), GET /matches?status=completed or GET /history/matches (finished).

Ids are stable for the life of a match, so one captured before it starts still resolves after it finishes.

Response

Withdrawals on this match, oldest first

match_idinteger

Changes

No recorded changes to this operation across all 1 revision of this API.