A tennis scores API that keeps up with the serve
Live scoreboards over REST, per-match detail for second screens, and results that land the moment a match finishes — backed by 58 years of history for instant context.
$ curl "https://api.citoapi.com/api/v1/tennis/matches/live" \
-H "x-api-key: YOUR_API_KEY"
{ "items": [ { "match_id": "…", "sets": [[6,4],[3,2]],
"serving": "player1", "surface": "Hard", "round": "QF" } ] }Live, without the plumbing
GET /tennis/matches/live returns every in-progress match with its scoreboard. Drill into one match for sets, games, and serve state. When you need push instead of poll, a WebSocket subscription streams every point (POINT_UPDATE) and the final result (MATCH_FINISHED) to you as the match is played.
Scores mean more with history attached
The same key that streams the live scoreboard answers 'what's the head-to-head?' and 'how has she done on hard courts this year?' in one extra call. That's the difference between a score ticker and a second-screen product.
Results feeds made trivial
GET /tennis/matches/recent gives you the latest completed matches per tour — a results page, a notification trigger, or a data-warehouse sync, straight off one endpoint.
The dataset behind it
1,730,276 matches
Every ATP and WTA match since 1968 — main draws, qualifying, Challengers, and ITF — with set scores and serve stats.
5,566,184 ranking rows
Every published weekly ranking Monday for both tours, queryable by exact date.
137,410 players
Bios, handedness, countries, activity status, and career statistics with surface and year filters.
57,910 tournaments
Editions with tier, surface, dates, season calendars, and round-by-round draw brackets.
Head-to-head engine
Any two players in history — or a whole group via the H2H matrix — with surface, finals, and Slam splits.
Live scoreboards
In-progress matches with per-match detailed state, plus recent results the moment they finish.