Documentation / Endpoints / Matches
/v1/matches/{id}
One match: players, score, every game, length, table, format, real start, timeouts and cards.
GEThttps://api.tabletennisapi.com/v1/matches/{id}
Plans:Free keyLiveArchiveComplete On the free key, games, duration_s and table come back as null
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}A 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}
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": {
"id": "mt_fs5ttbe2",
"event": {
"id": "ev_w5hw10am",
"name": "Champions Macao 2026 Presented by Galaxy Entertainment Group"
},
"date": "2026-09-13",
"start_time": "2026-09-13T10:30:00Z",
"discipline": "WS",
"age_group": null,
"para_class": null,
"round": "final",
"round_name": "Final",
"rubber": null,
"status": "finished",
"best_of": 7,
"points_per_game": 11,
"win_by": 2,
"utc_offset_min": 480,
"sides": [
{
"side": "a",
"name": "Harimoto Miwa",
"country": "JPN",
"players": [
{
"id": "pl_51t63nz3",
"name": "Harimoto Miwa",
"country": "JPN"
}
]
},
{
"side": "b",
"name": "Chen Yi",
"country": "CHN",
"players": [
{
"id": "pl_yp1ww51h",
"name": "Chen Yi",
"country": "CHN"
}
]
}
],
"score": {
"a": 4,
"b": 3
},
"winner": "a",
"result_note": null,
"games": [
{
"a": 11,
"b": 7
},
{
"a": 11,
"b": 7
},
{
"a": 9,
"b": 11
},
{
"a": 8,
"b": 11
},
{
"a": 11,
"b": 13
},
{
"a": 11,
"b": 9
},
{
"a": 12,
"b": 10
}
],
"duration_s": 4103,
"table": 1,
"started_at": null,
"timeouts": {
"a": 1,
"b": 1
},
"cards": {
"a": [],
"b": []
},
"video_review": false,
"challenges_each": 99,
"serving": null
},
"meta": []
}Example
curl
curl https://api.tabletennisapi.com/v1/matches/mt_fs5ttbe2 \
-H "Authorization: Bearer $TT_KEY"Python
import os, requests res = requests.get("https://api.tabletennisapi.com/v1/matches/mt_fs5ttbe2", headers={"Authorization": "Bearer " + os.environ["TT_KEY"]}).json()
Answers come back as data and meta; errors as error. See Errors and Pagination.