list_tournaments
1 creditStatic referencePOST /v1/list_tournaments
A season's tournaments with dates, surface, status and champion
Use it when you need tournament ids for a season, or the calendar with surfaces and champions.
Parameters
seasonstring | numberoptional- Year, e.g. 2025 (default this year).
surfaceenum: hard | clay | grass | carpetoptional- Only tournaments on this surface.
statusenum: scheduled | live | finaloptional- Only upcoming, in-progress or completed tournaments.
limitintegeroptional- Max tournaments (default 100).
offsetintegeroptional- Page offset; use next_offset.
Notes
- Over MCP, ask for it in plain English and the client calls
list_tournamentsitself. Point any MCP client athttps://mcp.acesapi.com/mcp?key=YOUR_API_KEY. - Each call costs 1 credit, taken before it runs and refunded if the server errors.
- Not the call you need? Find the right call by what you are trying to answer.
Request
curl -X POST https://mcp.acesapi.com/v1/list_tournaments \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"season": 2025,
"surface": "grass",
"limit": 3
}'Response
json
{
"tour": "ATP",
"season": 2025,
"tournaments": [
{
"tournament_id": "415-2025",
"espn_tournament_id": 415,
"name": "Libéma Open",
"season": 2025,
"start_date": "2025-06-07",
"end_date": "2025-06-16",
"city": "'s-Hertogenbosch",
"country": "Netherlands",
"major": false,
"surface": "grass",
"indoor": false,
"status": "final",
"main_draw_matches": 27,
"champion": {
"player_id": "3885",
"name": "Gabriel Diallo"
}
},
{
"tournament_id": "49-2025",
"espn_tournament_id": 49,
"name": "Boss Open",
"season": 2025,
"start_date": "2025-06-07",
"end_date": "2025-06-16",
"city": "Stuttgart",
"country": "Germany",
"major": false,
"surface": "grass",
"indoor": false,
"status": "final",
"main_draw_matches": 27,
"champion": {
"player_id": "2946",
"name": "Taylor Fritz"
}
},
{
"tournament_id": "129-2025",
"espn_tournament_id": 129,
"name": "HSBC Championships",
"season": 2025,
"start_date": "2025-06-14",
"end_date": "2025-06-23",
"city": "London",
"country": "Great Britain",
"major": false,
"surface": "grass",
"indoor": false,
"status": "final",
"main_draw_matches": 31,
"champion": {
"player_id": "3782",
"name": "Carlos Alcaraz"
}
}
],
"count": 3,
"next_offset": 3
}Response fields
tourstringseasonnumbertournaments[]array- List of objects
tournaments[].tournament_idstringtournaments[].espn_tournament_idnumbertournaments[].namestringtournaments[].seasonnumbertournaments[].start_datestringtournaments[].end_datestringtournaments[].citystringtournaments[].countrystringtournaments[].majorbooleantournaments[].surfacestringtournaments[].indoorbooleantournaments[].statusstringtournaments[].main_draw_matchesnumbertournaments[].championobjecttournaments[].champion.player_idstringtournaments[].champion.namestringcountnumbernext_offsetnumber
Related endpoints
get_head_to_head3 cr
Takes the player_id this one returns.
Two players' meetings, wins by surface and in finals
get_ratings2 cr
Filters by the same surface and limit.
Our Elo ratings, overall or by surface
get_match2 cr
Also basic lookup.
One match: sets, tiebreak points, seeds, ratings and what the score says
get_schedule2 cr
Also basic lookup.
Upcoming and in-progress matches for the next days
Try it
500 credits free on signup: 500 calls to list_tournaments, and no card.