StatsRead the stats endpoints

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
GET /tennis/players/atp_206173/stats200 OK
$ curl "https://api.citoapi.com/api/v1/tennis/players/atp_206173/stats" \ -H "x-api-key: $CITO_API_KEY"
{  "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 server
Claude
Cursor
OpenAI
Python
Cito API
Next.js
Discord
Slack
GitHub

The 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.

Players

Player profiles with country, hand and birth date, career serve and return stats, recent form, and every match played.

View docs
  • 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}/stats

    Career and season serve, return and win-loss stats.

  • GET/api/v1/tennis/players/{player_id}/form

    Recent results and win rate.

  • GET/api/v1/tennis/players/{player_id}/matches

    The player's match log, newest first.

FAQs

What the stats cover

Can't find what you're looking for? Contact our customer support team

Read the tennis docs

Build prediction models

Create a free key and read your first tennis box score in a minute.