Tennis stats API: box scores, serve and return.
Match box scores with aces, double faults, first-serve %, points won and break points; career and surface splits for every player; and season leaderboards computed from every box score. 365,299 matches carry full stats.
- 365,299 matches with box scores
- Career and surface splits
- Season stat leaderboards
{ "success": true, "player_name": "Jannik Sinner", "career_summary": { "matches_played": 565, "matches_won": 437, "win_percentage": 77.35, "titles_count": 36, "grand_slam_titles": 5 }, "surface_breakdown": { "hard": { "matches": 365, "won": 291, "win_pct": 79.7 }, "clay": { "matches": 150, "won": 108, "win_pct": 72 }, "grass": { "matches": 50, "won": 38, "win_pct": 76 } }, "serving_stats": { "total_aces": 3016, "first_serve_in_pct": 60.2, "first_serve_points_won_pct": 75.5, "break_points_saved_pct": 66.3 }}Seamless Integration with our MCP Server
Give Claude, Cursor, and ChatGPT the CS2 data. One command writes the MCP config; agents call live scoreboard, team map stat, opening duel, and transfer tools instead of inventing match IDs, and your key stays on your machine.
MCPInstall the Cito MCP serverThe numbers behind every match
Box scores, player splits and leaders, built from the same match archive. Stats sit next to live scores and rankings in the tennis API, on the same match and player ids.
Match box scores
Aces, double faults, first-serve %, first-serve points won, break points and points won, for both players.
Career stats
Matches, wins, titles and serve stats for a whole career or filtered by surface, level and years.
Surface splits
Hard, clay, grass and carpet records per player, with titles on each.
Season leaderboards
Aces, first-serve points won, break conversion, tiebreaks and comeback wins.
Form
A player's recent results and win rate, for previews and models.
Head-to-head
Two players' record by surface, finals and Grand Slams, or a matrix for a group.
Endpoints you can ship with
Players and leaderboards first; every stat comes from the same box scores.
Live scores
Every match in progress with the set scores, the game score, who is serving, and live match stats. Open one match for its full state.
- GET
/api/v1/tennis/matches/liveMatches in progress: sets, game score, server, and live stats.
- GET
/api/v1/tennis/matches/live/{match_id}One live match: every set, the current game, and both players' stats.
- GET
/api/v1/tennis/matches/{match_id}/statusScheduled, in progress, or finished, with the result once decided.
- GET
/api/v1/tennis/scheduleThe day's order of play across tours.
- GET
/api/v1/tennis/matches/upcomingScheduled matches, soonest first.
Results
Finished matches with the score of every set, the winner and loser, and the serve and return box score behind them.
- GET
/api/v1/tennis/matches/recentFinished matches, newest first, with set scores.
- GET
/api/v1/tennis/matches/completedEvery match completed on a given day.
- GET
/api/v1/tennis/matches/{match_id}One match: tournament, round, surface, score, and box score.
- GET
/api/v1/tennis/matches/{match_id}/statsAces, double faults, first-serve %, points won, break points.
- GET
/api/v1/tennis/matches?player_id=&year=&surface=The archive, filtered by player, opponent, year, surface, level or round.
Players
Player profiles with country, hand and birth date, career serve and return stats, recent form, and every match played.
- GET
/api/v1/tennis/players/search?q={name}Find a player by name and get their id.
- GET
/api/v1/tennis/players/{player_id}Name, country, hand, height, birth date and ranking.
- GET
/api/v1/tennis/players/{player_id}/statsCareer and season serve, return and win-loss stats.
- GET
/api/v1/tennis/players/{player_id}/formRecent results and win rate.
- GET
/api/v1/tennis/players/{player_id}/matchesThe player's match log, newest first.
Head-to-head
The full record between two players, split by surface and level, or a grid of records across a group of players.
- GET
/api/v1/tennis/h2h?player1_id=&player2_id=Wins, losses and every meeting between two players.
- GET
/api/v1/tennis/h2h/{player1_id}/{player2_id}The same record in path form.
- GET
/api/v1/tennis/h2h/matrix?player_ids=A head-to-head grid for several players at once.
Rankings
Weekly ATP and WTA singles rankings with points and movement, back through the decades, and any player's ranking history.
- GET
/api/v1/tennis/rankingsA full weekly ranking table for ATP or WTA.
- GET
/api/v1/tennis/rankings/topThe top N players of the latest list.
- GET
/api/v1/tennis/rankings/moversBiggest risers and fallers between two lists.
- GET
/api/v1/tennis/rankings/history/{player_id}One player's ranking, week by week.
- GET
/api/v1/tennis/rankings/datesEvery ranking date on file.
Tournaments
Tournaments from Grand Slams to ITF events, the season calendar, and the draw of any edition as a bracket.
- GET
/api/v1/tennis/tournamentsTournaments filtered by tour, level, surface and year.
- GET
/api/v1/tennis/tournaments/calendar?year=2026One season's tournament calendar.
- GET
/api/v1/tennis/tournaments/{tournament_id}One tournament: level, surface, location and editions.
- GET
/api/v1/tennis/tournaments/{tournament_id}/drawThe draw of the latest edition.
- GET
/api/v1/tennis/tournaments/{tournament_id}/editions/{year}/drawThe draw of any past edition.
Leaderboards
Season leaders for the stats that decide matches, computed from every match box score.
- GET
/api/v1/tennis/leaderboards/acesMost aces in the season.
- GET
/api/v1/tennis/leaderboards/1st-serve-wonBest first-serve points won %.
- GET
/api/v1/tennis/leaderboards/break-conversionBest break-point conversion.
- GET
/api/v1/tennis/leaderboards/tiebreak-win-pctBest tiebreak record.
- GET
/api/v1/tennis/leaderboards/comeback-winsMost wins after losing the first set.
Coverage
What the dataset holds: tours, levels, ITF and junior coverage, and the years on file.
- GET
/api/v1/tennis/coverageTours, levels, year range, ITF and junior event counts.
- GET
/api/v1/tennis/competitionsEvery competition with its tour and level.
More tennis APIs
The rest of the tennis data on the same key.
- Tennis APILive scores, results, rankings and head-to-head on one key.
- Tennis live score APISet, game and server for every match in progress.
- ATP APIATP rankings, results, players and draws.
- WTA APIWTA rankings, results, players and draws.
- ITF results APIITF World Tennis Tour results and junior Grand Slams.
- Tennis API docsEvery endpoint, its parameters, and a real response.
Build prediction models
Create a free key and read your first tennis box score in a minute.