/v1/matches/{id}/points

Point by point: 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.

GEThttps://api.tabletennisapi.com/v1/matches/{id}/points
Plans:Free keyLiveArchiveComplete

Parameters

NameInTypeRequiredWhat it doesExample
idpathidrequiredThe match id, as returned by any listmt_fs5ttbe2

Run it live

GET /v1/matches/{id}/pointsA real call to the API, from your browser
Your key stays in this page: it is sent only to api.tabletennisapi.com and never stored. Left empty, the call runs on a free key with its dates and fields, 20 calls a minute.
GEThttps://api.tabletennisapi.com/v1/matches/{id}/points
Not run yet
Press Run it to see the answer here.

Response

A real answer from the data. Every field is described in the manual.

200 OKapplication/json
{
    "data": [],
    "meta": {
        "count": 0,
        "followed_live": false,
        "poll_seconds": 10
    }
}

Example

curl
curl https://api.tabletennisapi.com/v1/matches/mt_fs5ttbe2/points \
  -H "Authorization: Bearer $TT_KEY"
Python
import os, requests
res = requests.get("https://api.tabletennisapi.com/v1/matches/mt_fs5ttbe2/points",
    headers={"Authorization": "Bearer " + os.environ["TT_KEY"]}).json()

Answers come back as data and meta; errors as error. See Errors and Pagination.