Skip to main content

Base URL

Authentication

Pass your API key in the x-api-key header. Same key works across all sports and versions.

V1 (Standard) vs V2 (Enhanced)

V1 and V2 share the same daily quota. Requests to either version count against your plan limit.

Endpoint Categories

Live & Schedule

6 endpoints: live matches, today’s games, schedule by date

Search & Discovery

5 endpoints: search, countries, country flag

Rankings

5 endpoints: ATP, WTA singles + race rankings

Tournament

21 endpoints: seasons, standings, draw, knockout, rounds

Match

11 endpoints: details, point-by-point, statistics, odds

Team/Player

7 endpoints: player profiles, recent matches, tournament stats (in tennis, the team entity IS the player — use these for everything)

Player Entity (coming soon)

Career stats, H2H, characteristics — not yet available for tennis on V2

Officials

8 endpoints: umpires, venues/courts

Tennis-Specific Concepts

Player = Team

In tennis on V2, each player is represented as a “team” entity and that single ID is all you need. Use /api/teams/:id for the player profile and /api/teams/:id/events/last/:page, /api/teams/:id/near-events, /api/teams/:id/featured-event, /api/teams/:id/media, and /api/teams/:id/tournament/:tid/season/:sid/statistics for recent matches, schedule, media, and tournament-season stats. See the Team/Player docs.
/api/players/:id is not currently available for tennis on V2. The career-entity bridge is being implemented with our data team. Use the /api/teams/:id/* endpoints listed above in the meantime — they cover profile, schedule, recent results, media, and tournament-season statistics today. The H2H, characteristics, and career-statistics endpoints will be announced in the changelog when they ship.

Match Status

Each match includes a status object with status.type (string: "notstarted", "inprogress", "finished"), status.code (integer where in-progress codes follow the pattern 7 + set_number, e.g., 8 = 1st set, 9 = 2nd set, 10 = 3rd set), and status.description (human-readable label like "2nd set"). See the Match docs for the full per-code reference table.

Set-Based Scoring

Tennis uses period1 through period5 for sets (best of 3 or 5), with tiebreak scores tracked separately. This differs from football (halves) and basketball (quarters).

Rankings

Tennis is the only sport with dedicated ranking endpoints. ATP and WTA rankings (singles + race) are a core feature — consider building a dedicated rankings page.

Multi-sport events (Asian Games, Olympics, Pan Am)

The tennis category catalogue is built around the professional tours. GET /api/countries returns the 15 active categories — ATP (3), WTA (6), Challenger (72), ITF Men (785), ITF Women (213), WTA 125 (871), Grand Slam (-100), In Progress (-101), Davis Cup (76), Billie Jean King Cup (74), United Cup (1705), UTR Men (1843), UTR Women (1844), Exhibition (79), International (2377) — and GET /api/countries/all adds per-country and niche categories (Hopman Cup 181, Juniors 1474, Legends 1476, Veterans 1031/1032, Wheelchairs 1475/1695, Pan American Games 1452).
There is no Asian Games category in Tennis V2 (verified 21 Sep 2026), and no Asian Games tennis on V3 or V6 either. The only multi-sport games container present is Pan American Games (1452), and it currently returns empty groups — these categories are populated only while matches exist.Do not hard-code a category ID for a one-off multi-sport event. Poll GET /api/today or GET /api/schedule/{date} across the event dates and read tournament.category.id and tournament.name off a real event, and re-check GET /api/countries/all daily during the window.

Key Test IDs

Pass the Team ID returned by /api/search or /api/rankings straight into the /api/teams/:id/* family — no extra ID lookup is required.

Quick Start


Error Handling

Tennis V2 is served through the same proxy layer as the other V2 sports, so plan for two normal outcomes besides 200: A small fraction of calls (well under 1%) return a transient 5xx. Retrying once resolves nearly all of them, and neither the failed call nor the retry depends on your plan — see Troubleshooting for a ready-made retry helper.
Set your HTTP client timeout to at least 30 seconds. Cold resources can take 10-20 seconds to build upstream; the same request afterwards typically returns in under a second.

UI Design Ideas

  • Scores display: Show set scores (e.g., 6-4, 3-6, 7-6) with tiebreak indicator instead of single totals
  • Match stats: Center around serve performance (aces, double faults, 1st serve %, break points)
  • Tournament draw: Visualize as a bracket (R128 → Final) — this is the signature tennis UI element
  • Rankings: Show ranking, points, country flag — consider a rankings table with movement arrows
  • Player profile: Show handedness (L/R), height, current ranking, prize money
Last modified on September 21, 2026