Documentation / Endpoints / Events
/v1/events
Events: past, running and scheduled, newest first.
GEThttps://api.tabletennisapi.com/v1/events
Plans:Free keyLiveArchiveComplete
Parameters
| Name | In | Type | Required | What it does | Example |
|---|---|---|---|---|---|
from | query | date | optional | Events ending on or after this day (YYYY-MM-DD) | 2026-09-13 |
to | query | date | optional | Events starting on or before this day (YYYY-MM-DD) | 2026-09-13 |
q | query | string | optional | Words in the event name, such as "Champions" or "Doha" | Harimoto |
country | query | string | optional | Host country, three letters (CHN, QAT) | CHN |
tier | query | int | optional | 1 the top senior events, 2 other senior events, 3 feeders, 4 youth, 5 other | 1 |
Run it live
GET /v1/eventsA 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/events
Not run yet
Press Run it to see the answer here.
Response
A real answer from the data, two rows shown. Every field is described in the manual.
200 OKapplication/json
{
"data": [
{
"id": "ev_c9k4098k",
"name": "Contender Panagyurishte 2026 Presented by ASAREL",
"start_date": "2026-09-08",
"end_date": "2026-09-13",
"venue": "Arena Asarel",
"city": "Panagyurishte",
"country": "BUL",
"tier": 2,
"utc_offset_min": 180,
"matches": 225
},
{
"id": "ev_w5hw10am",
"name": "Champions Macao 2026 Presented by Galaxy Entertainment Group",
"start_date": "2026-09-08",
"end_date": "2026-09-13",
"venue": "Macao East Asian Games Dome",
"city": "Macao",
"country": "MAC",
"tier": 1,
"utc_offset_min": 480,
"matches": 62
}
],
"meta": {
"count": 2,
"next_cursor": null,
"page": 1,
"per_page": 2,
"total": 2,
"total_pages": 1,
"next_page": null,
"prev_page": null
}
}Example
curl
curl https://api.tabletennisapi.com/v1/events \
-H "Authorization: Bearer $TT_KEY"Python
import os, requests res = requests.get("https://api.tabletennisapi.com/v1/events", headers={"Authorization": "Bearer " + os.environ["TT_KEY"]}).json()
Answers come back as data and meta; errors as error. See Errors and Pagination.