get_player
5 creditsStats + aggregationPOST /v1/get_player
Profile, ranking, ratings, career record, titles and recent matches
Use it when you are profiling a player: bio, ranking, ratings by surface, career record, titles and recent form.
Parameters
player_idstringrequired- Player id from search_players.
Notes
- Over MCP, ask for it in plain English and the client calls
get_playeritself. Point any MCP client athttps://mcp.acesapi.com/mcp?key=YOUR_API_KEY. - Each call costs 5 credits, 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/get_player \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"player_id": "3623"
}'Response
json
{
"tour": "ATP",
"player": {
"player_id": "3623",
"name": "Jannik Sinner",
"first_name": "Jannik",
"last_name": "Sinner",
"country": "ITA",
"country_name": "Italy",
"date_of_birth": "2001-08-16",
"birth_place": "San Candido, Italy",
"height_in": 75,
"weight_lbs": 170,
"plays": "right",
"debut_year": 2018
},
"ranking": {
"season": 2026,
"week": 40,
"ranking_date": "2026-10-01",
"rank": 1,
"points": 11000
},
"rating": {
"overall": 2407,
"peak": 2417,
"as_of": "2026-07-12T15:05:00.000Z",
"by_surface": {
"clay": {
"rating": 2209,
"matches": 106
},
"grass": {
"rating": 2119,
"matches": 44
},
"hard": {
"rating": 2367,
"matches": 284
}
}
},
"record": {
"wins": 356,
"losses": 91,
"win_pct": 0.796,
"sets_won": 860,
"sets_lost": 303,
"games_won": 6504,
"games_lost": 4774,
"games_won_pct": 0.577,
"tiebreaks_won": 114,
"tiebreaks_lost": 61,
"deciding_sets": 108,
"deciding_sets_won": 73,
"sets_won_6_0": 21,
"sets_lost_0_6": 7,
"wins_by_retirement": 6,
"retired_or_lost_to_ret": 7,
"titles": 30,
"finals_lost": 9,
"grand_slam_titles": 5,
"first_match": "2019-04-24",
"last_match": "2026-07-12"
},
"by_surface": [
{
"surface": "hard",
"wins": 236,
"losses": 56,
"win_pct": 0.808,
"sets_won": 553,
"sets_lost": 182,
"games_won": 4135,
"games_lost": 3018,
"games_won_pct": 0.578,
"tiebreaks_won": 81,
"tiebreaks_lost": 30,
"deciding_sets": 68,
"deciding_sets_won": 47,
"sets_won_6_0": 10,
"sets_lost_0_6": 3,
"wins_by_retirement": 3,
"retired_or_lost_to_ret": 5
},
{
"surface": "clay",
"wins": 84,
"losses": 25,
"win_pct": 0.771,
"sets_won": 204,
"sets_lost": 80,
"games_won": 1553,
"games_lost": 1124,
"games_won_pct": 0.58,
"tiebreaks_won": 16,
"tiebreaks_lost": 19,
"deciding_sets": 30,
"deciding_sets_won": 20,
"sets_won_6_0": 10,
"sets_lost_0_6": 4,
"wins_by_retirement": 2,
"retired_or_lost_to_ret": 1
},
{
"surface": "grass",
"wins": 36,
"losses": 10,
"win_pct": 0.783,
"sets_won": 103,
"sets_lost": 41,
"games_won": 816,
"games_lost": 632,
"games_won_pct": 0.564,
"tiebreaks_won": 17,
"tiebreaks_lost": 12,
"deciding_sets": 10,
"deciding_sets_won": 6,
"sets_won_6_0": 1,
"sets_lost_0_6": 0,
"wins_by_retirement": 1,
"retired_or_lost_to_ret": 1
}
],
"recent_matches": [
{
"match_id": "177491",
"tournament_id": "188-2026",
"tournament": "Wimbledon",
"season": 2026,
"surface": "grass",
"indoor": false,
"starts_at": "2026-07-12T15:05:00.000Z",
"match_date": "2026-07-12",
"draw": "main",
"round": "Final",
"round_order": 22,
"court": "Centre Court",
"player1_id": "3623",
"player1": "Jannik Sinner",
"player1_country": "ITA",
"seed1": 1,
"player2_id": "2375",
"player2": "Alexander Zverev",
"player2_country": "GER",
"seed2": 2,
"winner_id": "3623",
"status": "final",
"outcome": "completed",
"score": "6-7(7) 7-6(2) 6-3 6-4",
"sets1": 3,
"sets2": 1,
"games1": 25,
"games2": 20
},
{
"match_id": "177490",
"tournament_id": "188-2026",
"tournament": "Wimbledon",
"season": 2026,
"surface": "grass",
"indoor": false,
"starts_at": "2026-07-10T15:20:00.000Z",
"match_date": "2026-07-10",
"draw": "main",
"round": "Semifinal",
"round_order": 21,
"court": "Centre Court",
"player1_id": "3623",
"player1": "Jannik Sinner",
"player1_country": "ITA",
"seed1": 1,
"player2_id": "296",
"player2": "Novak Djokovic",
"player2_country": "SER",
"seed2": 7,
"winner_id": "3623",
"status": "final",
"outcome": "completed",
"score": "6-4 6-4 6-4",
"sets1": 3,
"sets2": 0,
"games1": 18,
"games2": 12
},
{
"match_id": "177483",
"tournament_id": "188-2026",
"tournament": "Wimbledon",
"season": 2026,
"surface": "grass",
"indoor": false,
"starts_at": "2026-07-07T12:05:00.000Z",
"match_date": "2026-07-07",
"draw": "main",
"round": "Quarterfinal",
"round_order": 20,
"court": "No. 1 Court",
"player1_id": "3623",
"player1": "Jannik Sinner",
"player1_country": "ITA",
"seed1": 1,
"player2_id": "2337",
"player2": "Jan-Lennard Struff",
"player2_country": "GER",
"seed2": null,
"winner_id": "3623",
"status": "final",
"outcome": "completed",
"score": "7-5 7-6(4) 6-3",
"sets1": 3,
"sets2": 0,
"games1": 20,
"games2": 14
}
]
}Response fields
tourstringplayerobjectplayer.player_idstringplayer.namestringplayer.first_namestringplayer.last_namestringplayer.countrystringplayer.country_namestringplayer.date_of_birthstringplayer.birth_placestringplayer.height_innumberplayer.weight_lbsnumberplayer.playsstringplayer.debut_yearnumberrankingobjectranking.seasonnumberranking.weeknumberranking.ranking_datestringranking.ranknumberranking.pointsnumberratingobjectrating.overallnumberrating.peaknumberrating.as_ofstringrating.by_surfaceobjectrating.by_surface.clayobjectrating.by_surface.grassobjectrating.by_surface.hardobjectrecordobjectrecord.winsnumberrecord.lossesnumberrecord.win_pctnumberrecord.sets_wonnumberrecord.sets_lostnumberrecord.games_wonnumberrecord.games_lostnumberrecord.games_won_pctnumberrecord.tiebreaks_wonnumberrecord.tiebreaks_lostnumberrecord.deciding_setsnumber
Related endpoints
list_tournaments1 cr
Returns the player_id this one takes.
A season's tournaments with dates, surface, status and champion
search_players1 cr
Returns the player_id this one takes.
Find players by name or country
get_head_to_head3 cr
Takes the player_id this one returns.
Two players' meetings, wins by surface and in finals
get_surface_splits3 cr
Takes the player_id this one returns.
A player's record by surface: sets, games, tiebreaks, deciding sets
Try it
500 credits free on signup: 100 calls to get_player, and no card.