$ curl "https://api.citoapi.com/api/v1/tennis/matches?q=wimbledon&year=1980&round=F" \
-H "x-api-key: YOUR_API_KEY"
{ "items": [ { "winner": "Bjorn Borg", "loser": "John McEnroe",
"score": "1-6 7-5 6-3 6-7(16) 8-6", "surface": "Grass" } ] }A results archive that answers real questions
Who won the 1980 Wimbledon final, and by what score? Every five-setter Nadal played on clay? A player's complete record against top-10 opponents in a season? These are single calls against /tennis/matches — not scraping projects.
Results with the details that matter
Each match carries the set-by-set score line, serve statistics where recorded (aces, double faults, break points), round, surface, tier, seeds and entry types, and stable player and tournament IDs that link into profiles, rankings, and draws.
From last hour to last century
Recent results flow in as matches finish; the historical archive runs to 1968. One schema, one pagination model, one key — whether the result you need is from this afternoon or from before tiebreaks existed.
The dataset behind it
Frequently asked
Do results include qualifying and lower tours?
Yes — main draws, qualifying, Challengers, and ITF events for both ATP and WTA.
How fast do new results appear?
Completed matches appear via /tennis/matches/recent as they finish, then join the permanent archive.
Can I filter results by surface or round?
Yes — surface, round, tier, tour, year, date ranges, player, opponent, and tournament are all first-class filters.
Your first call is thirty seconds away
Free tier to prove it, production tiers when you ship.