DataSportAPI
Docs
Your first call in one line

The free key reads yesterday for every sport, 50 calls a day. No card.

Get a free key
Table tennis: Results
Results/v1/table-tennis/results
Table tennis: Search
Search/v1/table-tennis/search
Every sport, one key

Complete reads all sixteen sports for $249 a month.

Take Complete
Ask in plain words

"Who won at Kempton yesterday?" Your assistant picks the tool and answers from your plan.

Connect in two minutes
Showing
Documentation / Table tennis / Competitions

Table tennis tournaments API

Tournaments
Free key reads yesterdayMCP tool: competitionsKept 6 hours

Every tournament or competition held.

A list you will want once and then keep: it changes rarely. Ids in it open their own endpoints.

GET/v1/table-tennis/tournaments

Try it

Your key stays in this browser and is filled in on every docs page.

GET
200 OK1896 ms2 rows shownReal answer from 2026-11-03, trimmed
{
    "data": [
        {
            "id": "tt_95wpr4gac7",
            "name": "Finals Hong Kong 2027",
            "start_date": "2027-12-07",
            "end_date": "2027-12-12",
            "venue": null,
            "city": null,
            "country": "HKG",
            "tier": 1,
            "utc_offset_min": 480,
            "matches": 0
        },
        {
            "id": "tt_p7bdwkzz7b",
            "name": "Youth Contender Gaborone 2027",
            "start_date": "2027-12-06",
            "end_date": "2027-12-09",
            "venue": "Gaborone International Commerce Park, Choppies Building",
            "city": "Gaborone",
            "country": "BOT",
            "tier": 4,
            "utc_offset_min": null,
            "matches": 0
        }
    ],
    "meta": {
        "sport": "table-tennis",
        "endpoint": "/tournaments",
        "count": 50,
        "page": 1,
        "per_page": 50,
        "total": 657,
        "total_pages": 14,
        "next_cursor": "eyJvIjo1MCwicCI6NTB9",
        "next_page": 2,
        "prev_page": null,
        "cached": false,
        "age_seconds": 0
    }
}
No key yet? Get a free key: it reads yesterday for every sport and is filled in here once made.

Parameters

Query values this call takes. Anything else is refused with bad_param and the list it accepts.

NameTypeWhat it does
seasonstringoptionalThe season, by the id or starting year shown in Competitions.
pageintegeroptionalWhich page of rows, from 1.
per_pageintegeroptionalRows per page, up to 100 on most lists.

Returns

Each row of data, from a real answer. Every id is ours and opens its own endpoint.

FieldTypeWhat it holds
ididOur id for this record
namestringIts name
start_datedateStart date
end_datedateEnd date
venuenullThe venue
citynullThe city
countrystringThe country
tierintegerTier
utc_offset_minintegerUtc offset in metresin
matchesintegerMatches played
metaWhat it holds
sport, endpointWhat you asked
countRows in this answer
page, per_page, total, next_cursorWhere you are in a paged list, when it is paged
as_ofWhen the data was built
cached, age_secondsWhether this is a stored copy, and its age
accessOn the free key: what it reads, and the plan that opens the rest

Errors

Codes this call can give. Each is explained in Errors.

StatusCodeWhen
401no_keyNo key sent, or not in a form we read
401bad_keyA key we do not know
403planThe free key asked for a date other than yesterday
422bad_paramA value this call does not take
429rateOver the calls a minute for your plan
503upstreamThe data is not answering; retry after Retry-After

The free key reads yesterday. The Table tennis plan opens live, fixtures and every date held, for $19 a month.

Add Table tennis