Documentation / Endpoints / Matches
/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
| Name | In | Type | Required | What it does | Example |
|---|---|---|---|---|---|
id | path | id | required | The match id, as returned by any list | mt_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.