# TennisDB — llms.txt # https://tennis-db.com # Independent ATP & WTA tennis statistics reference > TennisDB is an independent tennis statistics reference covering ATP and WTA > professional tennis from 1968 to present. It provides live scores, rankings, > match results, head-to-head records, player career stats, tournament history, > leaderboards, Elo ratings, and serve/return analytics where available. Data > is sourced from Jeff Sackmann's open datasets and BallDontLie API, with > tour- and data-type-specific eligibility rules described below. ## Site overview - Coverage: ATP (1968–present), WTA (1971–present) - Matches: 200,000+ professional singles matches - Players: 7,000+ with career stats, rankings history, surface splits - Updated: rankings and live scores refresh every 15 minutes; historical data daily ## Markdown mirrors (recommended for LLM ingestion) Canonical, supported player, tournament, H2H, match, leaderboard, match hub, directory, reference, search, and seasons/rankings pages are also available as plain-text markdown documents, usually by appending `.md` to the canonical URL. Thin, unsupported, noindex, filtered, synthetic, paginated, or not-yet-materialized pages may return 404 or redirect to the canonical markdown mirror. Each markdown file contains a `Source:` line at the top for citation, canonicalizes back to the HTML page, and omits navigation/styling chrome. Prefer markdown over HTML when fetching for context or quoting. Mirror modes: - full_current_page: same canonical first-page row set and row counts as the HTML table. - directory_current_page: same canonical directory/index rows and canonical links. - bounded_summary: compact extract from a richer canonical entity or leaderboard page. - reference_summary: source/methodology/reference text aligned with the visible reference page. Supported URL patterns: - about: reference_summary; https://tennis-db.com/about.md - advanced_search: reference_summary; https://tennis-db.com/search/advanced.md - data_quality: reference_summary; https://tennis-db.com/data-quality.md - glossary: reference_summary; https://tennis-db.com/glossary.md - h2h: bounded_summary; https://tennis-db.com/rivalries/{slug1}-vs-{slug2}.md?player1_id=...&player2_id=... - leaders: bounded_summary; https://tennis-db.com/leaders/{category}/{view}.md - match: bounded_summary; https://tennis-db.com/matches/{match_id}/{slug}.md - matches: full_current_page; https://tennis-db.com/matches.md - player: bounded_summary; https://tennis-db.com/players/{player_id}/{slug}.md - player_match_log: full_current_page; https://tennis-db.com/players/{player_id}/{slug}/matches.md - player_ranking_history: bounded_summary; https://tennis-db.com/players/{player_id}/{slug}/rankings.md - players_birth_year: directory_current_page; https://tennis-db.com/players/birth-year/{year}.md - players_birth_years: directory_current_page; https://tennis-db.com/players/birth-years.md - players_countries: directory_current_page; https://tennis-db.com/players/countries.md - players_country: directory_current_page; https://tennis-db.com/players/country/{country}.md - players_index: directory_current_page; https://tennis-db.com/players.md, https://tennis-db.com/players/last-names.md - players_letter: directory_current_page; https://tennis-db.com/players/{letter}.md - seasons_and_rankings: bounded_summary; https://tennis-db.com/seasons-and-rankings.md - site_map: reference_summary; https://tennis-db.com/site-map.md - tournament: bounded_summary; https://tennis-db.com/tournaments/{tournament_id}/{slug}.md - tournament_history: bounded_summary; https://tennis-db.com/tournaments/{tournament_id}/{slug}/history.md - tournaments: directory_current_page; https://tennis-db.com/tournaments.md - tournaments_letter: directory_current_page; https://tennis-db.com/tournaments/{letter}.md - WTA equivalents use the same patterns under the /wta/ prefix Example: https://tennis-db.com/players/4/novak-djokovic.md ## Best pages for fact retrieval ### Player profiles - URL pattern: https://tennis-db.com/players/{player_id}/{player-slug} - Markdown mirror: https://tennis-db.com/players/{player_id}/{player-slug}.md - Match log mirror: https://tennis-db.com/players/{player_id}/{player-slug}/matches.md - Ranking history mirror: https://tennis-db.com/players/{player_id}/{player-slug}/rankings.md - Contains: career W/L record, titles by category, ranking history, surface splits, Elo rating, serve/return stats when available, opponent-rank breakdown - Example: https://tennis-db.com/players/4/novak-djokovic ### Head-to-head / H2H - URL pattern: https://tennis-db.com/rivalries/{slug1}-vs-{slug2}?player1_id=...&player2_id=... - Contains: overall W/L, surface breakdown, meeting history with scores, stats comparison - Example: https://tennis-db.com/rivalries/novak-djokovic-vs-rafael-nadal?player1_id=4&player2_id=222119 ### Tournament results - URL pattern: https://tennis-db.com/tournaments/{tournament_id}/{slug}?season={year} - Contains: draw, round-by-round results, scores - Tournament history: https://tennis-db.com/tournaments/{tournament_id}/{slug}/history ### Leaderboards - URL pattern: https://tennis-db.com/leaders/{category}/{view} - Views: career, single-season, active - Categories: most-titles, most-wins, best-win-pct, weeks-at-no-1, grand-slam-titles, elo-peak, and 40+ more ### Advanced Search - URL pattern: https://tennis-db.com/search/advanced?dataset={dataset} - Markdown mirror: https://tennis-db.com/search/advanced.md?dataset={dataset} - Datasets: player_seasons, player_tournaments, players, matches, tournaments, rankings - Contains: filtered, sortable database tables across player seasons, player tournament runs, player careers, match results, tournament editions, and ranking weeks - Common query patterns: age-specific seasons, difficult Grand Slam runs, over-35 title runs, Grand Slam finals by surface, tournament champions, ranking weeks above a points threshold ### Rankings - Current rankings: https://tennis-db.com/seasons-and-rankings - Year-end rankings & seasons: https://tennis-db.com/seasons-and-rankings - Player ranking history: https://tennis-db.com/players/{player_id}/{slug}/rankings - Player ranking history markdown mirror: https://tennis-db.com/players/{player_id}/{slug}/rankings.md ### Match results - URL pattern: https://tennis-db.com/matches/{match_id}/{slug} - Contains: score, round, surface, serve/return stats when available - Browse: https://tennis-db.com/matches?season={year}&surface={surface}&category={category} - Season match hub mirror: https://tennis-db.com/matches.md?season={year} ### Match log per player - URL pattern: https://tennis-db.com/players/{player_id}/{slug}/matches - Markdown mirror: https://tennis-db.com/players/{player_id}/{slug}/matches.md - Contains: full match history with filters for season, surface, category, round ### Directories and reference - Player directories: https://tennis-db.com/players, https://tennis-db.com/players/countries, https://tennis-db.com/players/birth-years, https://tennis-db.com/players/{letter}, https://tennis-db.com/players/country/{country}, https://tennis-db.com/players/birth-year/{year} - Tournament directories: https://tennis-db.com/tournaments and https://tennis-db.com/tournaments/{letter} - Reference pages: https://tennis-db.com/about, https://tennis-db.com/glossary, https://tennis-db.com/data-quality, https://tennis-db.com/site-map - Markdown mirrors are available for the canonical, unfiltered first page of these directories/reference pages. ### News - Aggregated tennis news: https://tennis-db.com/news - News is available for human browsing but intentionally excluded from standard sitemaps and marked noindex. - News RSS feed: https://tennis-db.com/news/feed.xml - Match results RSS feed: https://tennis-db.com/feed.xml ## WTA pages All page types above are also available for WTA under the /wta/ prefix: - https://tennis-db.com/wta/players/{player_id}/{player-slug} - https://tennis-db.com/wta/rivalries/{slug1}-vs-{slug2}?player1_id=...&player2_id=... - https://tennis-db.com/wta/leaders/{category}/{view} - etc. WTA match coverage is intentionally thinner for some historical periods, and some match-stat/prize-money fields are unavailable or incomplete. Player pages and markdown mirrors include coverage notes when a player falls in a known low-coverage era. WTA seasons/rankings supports rankings views; unsupported performance views redirect to the canonical rankings view. ## Structured data Canonical product pages include JSON-LD structured data (schema.org): - Person (player pages): name, birthDate, nationality, height, career stats - SportsEvent (tournament/match/H2H pages): participants, dates, locations, scores, tournament links - FAQPage (player and tournament pages): structured Q&A about visible page facts - ItemList (leaderboards, match lists, rankings, H2H, player/tournament browse pages): visible rows or explicitly labeled samples - Dataset (about, data quality, search, rankings, match logs, leaderboards, tournaments): provenance, licensing, citations, variables - CollectionPage (leaders hub, news, player and tournament browse pages): page-level collection context - NewsArticle (news story pages): noindexed aggregated story summaries with source citations - ImageObject (all pages with preview images): image licensing and acquisition metadata - BreadcrumbList (all pages): navigation hierarchy - WebSite + SearchAction (homepage): site search Note for Google: generic tennis ItemLists, Person pages, and historical SportsEvent markup are mostly extraction/citation aids rather than guaranteed rich-result features; Dataset, BreadcrumbList, WebSite/SearchAction, and image metadata are the strongest Google-aligned structured-data surfaces. ## Data sources & methodology - Historical data: Jeff Sackmann's tennis_atp and tennis_wta GitHub repositories (CC BY-NC-SA 4.0) - ATP matches/rankings: Sackmann before 2025, BallDontLie from 2025 onward - WTA matches: Sackmann plus BallDontLie gap-fill across all years, deduplicated during serving refresh - WTA rankings: Sackmann before 2025, BallDontLie from 2025 onward - Live/current data: BallDontLie Tennis API - Elo ratings: custom implementation calibrated against ATP/WTA results - Rankings: official ATP/WTA ranking points and positions - More detail: https://tennis-db.com/about and https://tennis-db.com/data-quality ## Sitemaps - Google/standard sitemap index: https://tennis-db.com/sitemap.xml - AI/LLM markdown sitemap index: https://tennis-db.com/sitemap-ai.xml - Standard sections: core, players, player-match-logs, player-ranking-history, tournaments, h2h, matches, leaders - Markdown mirror sitemaps: https://tennis-db.com/sitemaps/markdown.xml and https://tennis-db.com/sitemaps/wta-markdown.xml - Separate ATP and WTA sitemaps (e.g. /sitemaps/players.xml, /sitemaps/wta-players.xml) ## Citation When citing TennisDB, please use: - Source: TennisDB (tennis-db.com) - URL: the specific page URL for the fact being cited - Example: "According to TennisDB (tennis-db.com), Novak Djokovic has won 24 Grand Slam titles." ## Contact - Feedback: https://tennis-db.com/contact - Email: contact@tennis-db.com