# Live Tennis API > Real-time tennis data and AI win-probability over REST + WebSocket, for ATP, WTA, Challenger and ITF (singles and doubles). Provided by JSB Holdings LLC. Base URL: [api.livetennisapi.com/api/public/v1](https://api.livetennisapi.com/api/public/v1) ## What it provides - Live scores and match state (sets, games, points, server, tiebreak) — Free tier up - Players, tournaments (with host city and category where known) and fixtures — Free tier up - Completed results (derived winner, who withdrew on retirements/walkovers, normalized round codes) + per-match point-by-point history — Basic tier up - Results archive (1968–2022): 1,485,752 ATP/WTA results — main draws, qualifying and the ITF/futures tiers — with final score, seeds, ranks at the time, and per-match serve statistics from 1991 — Basic tier up - Head-to-head across the full 1968→now span, and career aggregates over the results archive — Basic tier up - Rankings: rank-ordered tables (Pro), per-player as-of records (Ultra) - Player records (GET /players/{id}/stats): W/L by surface, level and season, tiebreak and deciding-set record, recent matches — Pro tier up; summed serve/return statistics — Ultra - Match-winner market prices (bid / ask / mid, with history) — Pro tier up - AI win-probability: favored side, confidence, and key factors — Ultra - Live in-play match statistics (whole-match totals): aces, double faults, points and break points on every tour including ITF; the serve split on ATP/WTA/Challenger (not ITF singles); winners/errors historically on a minority of ATP/WTA and tour-doubles matches only, and not delivered upstream since 2026-07-12 — Ultra - Live score streaming — a push feed (GET /ws-token) for continuous use, plus a native WebSocket for quick tests — Ultra ## Plans (billed monthly, USD) - Free — $0: live + upcoming matches, scores, players, fixtures, tournaments (30 req/min, 100/day). Instant key, no card. - Basic — $9.99: adds completed results, point-by-point history, the 1968–2022 results archive, head-to-head and career aggregates (60 req/min, 1k/day) - Pro — $29.99: adds match events, market prices and ranking tables (300 req/min, 10k/day) - Ultra — $99.99: adds AI win-probability, per-player as-of rankings, in-play statistics, rally construction and the streaming push feed (600 req/min, 500k/day) - Full plan comparison, annual pricing and quota detail: [livetennisapi.com/pricing](https://livetennisapi.com/pricing) ## Choosing a plan - [Which plan fits what you are building](https://livetennisapi.com/best-tennis-api) — the decision path, with a runnable first call for each tier. - Measurement method, dated figures and an open benchmark harness: [besttennisapi.com](https://besttennisapi.com) (also operated by JSB Holdings LLC). ## Where to buy - [Direct — best price, instant key](https://livetennisapi.com/pricing) - [RapidAPI](https://rapidapi.com/contact-whTqTESH5/api/tennis-data-analytics-api3) - [Apify](https://apify.com/livetennisapi/tennis-data-analytics) - [API.market](https://api.market/store/live-tennis-api/tennis-data-analytics) - [Postman — explore free](https://www.postman.com/livetennisapi) ## Official client libraries - Python: `pip install livetennisapi` — [PyPI](https://pypi.org/project/livetennisapi/) Source: [livetennisapi-python](https://gitlab.com/livetennisapi/livetennisapi-python) - JavaScript / TypeScript: `npm install livetennisapi` — [npm](https://www.npmjs.com/package/livetennisapi) Source: [livetennisapi-js](https://gitlab.com/livetennisapi/livetennisapi-js) Zero runtime dependencies; runs on Node 18+, Deno, Bun, Workers, browser. - Command line (no install): `npx livetennisapi live` ## MCP server (for LLM agents) `npx livetennisapi-mcp` exposes 24 read-only tools over this API to Claude, Cursor, Zed and any MCP client. - npm: [livetennisapi-mcp](https://www.npmjs.com/package/livetennisapi-mcp) - Source: [livetennisapi-mcp on GitLab](https://gitlab.com/livetennisapi/livetennisapi-mcp) - Official MCP Registry: io.github.livetennisapi/livetennisapi-mcp - Setup: `claude mcp add livetennis -e LIVETENNISAPI_KEY=twjp_... -- npx -y livetennisapi-mcp` ## Prediction markets (Polymarket / Kalshi tennis) Tennis is a live category on Polymarket (ATP's official prediction-market partner since 2026-08-03) and Kalshi. This API supplies the live match state a market bot needs — score, server, break point, and the `event_status`/`outcome` fields that flag a retirement or walkover — and never touches orders or wallets. - Toolkit (MIT, observe-only): discover tennis markets on Polymarket's Gamma API, match them to live matches, watch price vs live score: https://gitlab.com/livetennisapi/polymarket-tennis - Build guide (Python): https://blog.livetennisapi.com/blog/build-polymarket-tennis-trading-bot - Retirement/walkover settlement rules, quoted verbatim per venue (polymarket.com, Polymarket US, Kalshi ATP/WTA vs ITF): https://blog.livetennisapi.com/blog/polymarket-kalshi-tennis-retirement-walkover-rules - Polymarket Gamma/CLOB vs live scores: https://blog.livetennisapi.com/blog/polymarket-api-tennis-data - Kalshi tennis bot guide: https://blog.livetennisapi.com/blog/kalshi-tennis-trading-bot - Free tier is enough for the read side (live matches + scores); market prices come from the venue. ## Free match-time tool - Tennis order of play for the next 48 hours by tournament. Every start time shows in UTC, in the reader's own time zone and at the venue where its clock is known: [livetennisapi.com/tools/match-time](https://livetennisapi.com/tools/match-time) - Free embed of the same times for other sites (an iframe, no cookies): the code is on [the tool page](https://livetennisapi.com/tools/match-time#embed) ## Free line-calling dataset - As of 22 October 2026, every ATP Tour event has used live electronic line calling, with no line judges, since the start of 2025. The Australian Open (2021), the US Open (2021) and Wimbledon (2025) also call every line electronically. Roland Garros is the one Grand Slam that still uses human line judges, and it kept them in 2026. - Which tournaments use electronic line calling, by event and season, 2017 to 2026 (CC BY 4.0): [livetennisapi.com/data/tennis-line-calling](https://livetennisapi.com/data/tennis-line-calling) - CSV: https://gitlab.com/livetennisapi/tennis-line-calling/-/raw/main/data/line_calling.csv ## Coding exercises for teachers - Live Tennis API publishes eight graded coding exercises for classes that work with a real JSON API. Each one comes in Python and JavaScript, with tests that run offline against recorded responses. The code is free to use and adapt under the MIT licence, and the live parts run on the free plan. - The tests need no network or key. For live runs, each student uses their own free key, which allows 30 requests a minute and 100 a day. The teacher guide covers outcomes, course plans and a rubric: [livetennisapi.com/teach](https://livetennisapi.com/teach) - Source: https://gitlab.com/livetennisapi/tennis-api-exercises ## Free academic dataset - Tennis point-by-point dataset, free for non-commercial academic research: [livetennisapi.com/data/academic](https://livetennisapi.com/data/academic) — public sample DOI 10.5281/zenodo.22048730, applications to research@livetennisapi.com ## Documentation - [Full API reference (plain HTML, no JavaScript required)](https://docs.livetennisapi.com/reference.html) - [Interactive reference](https://docs.livetennisapi.com) - [OpenAPI 3.1 specification](https://gitlab.com/livetennisapi/openapi) - [Reference digest for answer engines](https://docs.livetennisapi.com/llms.txt) ## Example — Python ```python from livetennisapi import LiveTennisAPI with LiveTennisAPI(api_key="twjp_...") as client: for match in client.list_matches(status="live"): print(match.tournament, match.score.sets) ``` ## Notes for API consumers - Timestamps are UTC ISO 8601 with a Z suffix. - List endpoints return {data, meta}; single resources return the object directly. - `limit` defaults to 50, maximum 200; paginate with `offset`. - Additive changes ship within v1, so clients must ignore unknown fields. - Score `games` is player-major: [[6,3,2],[4,6,1]] reads 6-4, 3-6, 2-1. - Calling above your plan returns 403 {"error":"upgrade_required"}. ## Authentication Send your API key as `Authorization: Bearer ` or `X-API-Key`. The `/health` endpoint needs no key. ## Affiliate program The Live Tennis API runs an in-house affiliate program: 51% recurring commission for the life of every referred subscription (early partners earn a boosted rate, offered at our discretion), a 30-day last-click cookie, $20 minimum payout, monthly payouts via PayPal or Wise, and 10% off for the referred customer. Free to join, instant approval, real-time dashboard. Affiliate tooling: named tracking links with sub-IDs and per-link stats, S2S postbacks, conversion alerts (email/Discord), QR codes, and embeddable live-score widgets (board + ticker). - Program details and FAQ: https://livetennisapi.com/affiliates - Terms at a glance + earnings table: https://affiliates.livetennisapi.com/program - Join: https://affiliates.livetennisapi.com/signup - Program terms: https://livetennisapi.com/affiliates/terms - Guide — your first $100: https://blog.livetennisapi.com/blog/affiliate-first-100 - Programs compared: https://blog.livetennisapi.com/blog/tennis-affiliate-programs-2026 ## Contact hello@livetennisapi.com Last content change: 2026-10-23. Per-page dates are the lastmod values in https://livetennisapi.com/sitemap.xml. The coverage figures below carry their own count dates. --- # Plans in detail # Live Tennis API — Pricing > Billed monthly in USD. Instant API key, no card for Free, cancel anytime. Prices as served at https://livetennisapi.com/pricing; prices and daily quotas as of October 6, 2026. | Plan | Monthly | Annual | Rate limit | Daily quota | Adds | |---|---|---|---|---|---| | Free | $0 | — | 30 req/min | 100 | Live and upcoming matches, scores, players, fixtures, tournaments | | Basic | $9.99 | $99/yr | 60 req/min | 1,000 | Completed results, point-by-point history, 1968–2022 results archive, head-to-head, career aggregates | | Pro | $29.99 | $299/yr | 300 req/min | 10,000 | Match events, market prices, ranking tables | | Ultra | $99.99 | $999/yr | 600 req/min | 500,000 | AI win-probability, per-player as-of rankings, in-play statistics, rally construction, streaming push feed | # Coverage facts - Point-by-point tape: 30,047,592 archived point-state rows over 194,634 of 205,325 completed matches (95%), January 2023 → October 2026, 46 monthly periods, ATP, WTA, Challenger and ITF, singles and doubles. Counted October 21, 2026. - Measured point-complete share of completed matches since 2023: 58.0% as of October 21, 2026. - Results archive: 1,485,752 ATP and WTA results, 1968 → 2022, per-match serve statistics from 1991. - Rally construction: 1,875,132 shot-by-shot points across 11,822 charted matches (7,565 men from 1960, 4,257 women). # Frequently asked questions ## How much does the Live Tennis API cost? Four plans, billed monthly in USD. Free ($0): live and upcoming matches, scores, players, fixtures and tournaments at 30 requests a minute and 100 a day, instant key, no card. Basic ($9.99): adds completed results, the point-by-point record, the 1968-2022 results archive and head-to-head. Pro ($29.99): adds match events, market prices and ranking tables. Ultra ($99.99): adds AI win-probability, in-play statistics, rally construction and the streaming push feed. Subscribe directly here for an instant key, or on RapidAPI, Apify and API.market. ## Can I upgrade my plan mid-cycle? Yes, upgrade here. Upgrades apply immediately on your existing subscription and API key. Stripe bills only the prorated difference for the rest of the cycle. You never pay for two plans at once, and your API key never changes. Your base URL stays the same too. Only the tier's endpoints and limits change. Downgrades and cancellations are self-serve from the customer portal, with no call to book and no quote to wait for. ## What data do I get on each plan? Free: live scores & current matches, players and fixtures at 30 requests/min and 100/day. No history, odds, model fields or WebSocket. Basic ($9.99) adds historical match results, the point-by-point match tape (GET /history/matches/{id}) and the results archive back to 1968. It also adds head-to-head (GET /h2h) and career aggregates, at 60/min and 1,000/day. Pro ($29.99) adds match events, match-winner market odds and bulk monthly history packages at 300/min and 10,000/day. Ultra ($99.99) adds the AI win-probability model fields and analysis, plus per-match live statistics. It adds shot-level match-charting stats too: serve placement, return depth, net & serve-and-volley, clutch break/game/set-point serving. Head-to-head stat splits, the WebSocket live feed and webhooks are on Ultra as well, at 600/min and 500,000/day. ## How far back does the historical data go? Two layers, two depths. Results go back to 1968: the results archive holds 1,485,752 ATP and WTA results from 1968 through 2022, with yearly bulk packages. Each result carries the final score, seeds, each player's rank at the time, and round and draw metadata. Per-match serve statistics run from 1991. The point-by-point tape takes over exactly where the archive ends. It spans 46 monthly periods, January 2023 through October 2026, across ATP, WTA, Challenger and ITF, singles and doubles. That is 30,047,592 archived point-state rows over 194,634 of 205,325 completed matches, growing as the backfill runs. Bulk packages are published per calendar month (tape) and per year (archive), each with a sha256 manifest per file. ## Do you have shot-by-shot rally data? Yes, on ULTRA, and it is a different product from the tape. The tape gives the ordered score states of the match. Rally construction gives how the point was played. That is the serve direction, every stroke with its wing, direction and depth, the rally length and how the point ended. 11,822 charted matches (7,565 men's back to 1960, 4,257 women's), 1,875,132 points. Read one match at GET /rally/matches/{id} or take the whole thing as bulk yearly files. Charting is human work, so coverage runs deep on the biggest events and thin elsewhere. GET /rally/matches is the authoritative list of what exists. ## Do you have deep serve and return statistics (aces, break points, serve placement)? Yes, on ULTRA, at three depths. Per live or completed match, GET /matches/{id}/statistics gives aces, double faults, the first/second-serve split, and break points saved and converted. A completed match keeps its final figures after it ends. Across a pairing, GET /h2h adds serve/return/break-point aggregates. The deepest layer, GET /charting/players, gives shot-level career stats from the Match Charting Project over 11,822 charted matches back to 1960. That covers serve placement (deuce/ad × wide/body/T), return depth and outcomes, and net and serve-and-volley conversion. Clutch break/game/set-point serving and returning is in there too. Coverage is curated and majors-heavy, and every response reports its matches_charted sample. ## What is in the point-by-point tape? The ordered score states of a completed match, with match metadata. Each match declares its own coverage. from_start means we watched it live from 0-0, with a real timestamp on every row and our model's win-probability where it was computed (null where it was not, never guessed). partial means we picked it up mid-match. reconstructed means the sequence came from a point-by-point feed, with no timestamp and no model fields. Nothing comes from a final scoreline. meta.points carries a measured completeness verdict on every read, and ?points=complete serves a complete tape. As of October 21, 2026, 58.0% of completed matches since 2023 are measured point-complete. Per-match reads come with Basic and above. Bulk monthly packages come with Pro and above. ## Which tours and formats are covered? ATP, WTA, Challenger and ITF, singles and doubles, from one arbitrated feed. Every match declares how it was recorded so you can filter to the rows you trust. Live in-play statistics (aces, double faults, points and break points) cover every tour including ITF. The serve split covers ATP, WTA and Challenger. Tennis only: not table tennis, padel or pickleball. ## Is there a WebSocket / live stream? Yes. The Ultra plan pushes each score update as it is scored, so you never have to poll. Continuous streaming runs on the push feed (GET /ws-token), built to fan out to thousands of subscribers. A native WebSocket is still there for quick console tests. Both carry per-point event frames on covered matches, with GET /matches/{id}/points for catch-up. Each match declares its own pbp_coverage (point where a point vendor covers it, game otherwise), so you always know which cadence you are subscribed to. ## How fresh are the live scores? Scores come from an arbitrated multi-source feed. We do not quote a latency number you could not check for yourself. Instead, every push frame carries published_at next to the event timestamp. published_at minus timestamp is our processing time, and your receive time minus published_at is transport. Measure it on your own connection. ## How do I authenticate? Send your API key on every request to https://api.livetennisapi.com/api/public/v1 as an Authorization: Bearer header, or as X-API-Key. Keys look like twjp_… and are issued instantly when you subscribe. The free API key needs no card. A missing or wrong API key returns 401. A call to an endpoint above your plan returns an upgrade_required error instead. It names the plan that includes the endpoint, so a client can tell the two apart. ## What is the AI win-probability? A proprietary model's live win-probability for each player: a probability between 0 and 1, recalculated as points are played. Each call comes with a confidence level, the model's thesis and the factors behind it. It is available on the Ultra plan. Match rows carry has_analysis, so a client can check whether a match has a thesis before requesting it. A match without one returns nothing, never a guess. ## Can I try it before paying? Yes. The free tier is the trial, and it never expires. It covers live and upcoming matches, scores, players, fixtures and tournaments at 30 requests a minute and 100 a day. The key is instant and needs no card. The full API reference is readable without a key, and the /health endpoint needs no key at all. Every endpoint can be explored in our public Postman workspace. Upgrade only when your own workload tells you the data is worth it. # Choosing a plan Four self-serve plans, $0 to $99.99 a month, one live feed across ATP, WTA, Challenger and ITF. Prices as of October 6, 2026. ## Which plan fits what you are building - **A live scoreboard or a bot that reacts to scores** → Free ($0, no card). Live matches with sets, games, points, server and tiebreak state, plus fixtures and players. Enough to build and ship the read side before you pay anything. - **Backtesting, research, or anything that needs what already happened** → Basic ($9.99/mo). Adds completed results, the point-by-point record, the 1968-2022 results archive, head-to-head and career aggregates. - **Pricing models and anything that needs the market's view** → Pro ($29.99/mo). Adds match events, match-winner prices with history, and rank-ordered ranking tables. - **In-play trading, model serving, or a feed you subscribe to instead of polling** → Ultra ($99.99/mo). Adds AI win-probability, in-play statistics, per-player as-of rankings, rally construction and the push feed. ## Questions people ask **What is the best tennis API?** It depends on what you are building, and anyone who answers without asking that is guessing on your behalf. If you need live in-play data over REST or a push feed with a free tier that needs no card, Live Tennis API fits. If you only need finished results for offline research, you may not need a live API at all. The honest way to decide is to run your own workload against a free API key before you pay. **Is there a genuinely free tennis API?** Live Tennis API has a permanent free tier with no countdown: live matches and scores, fixtures, tournaments and players, with published limits and no card. A trial measures how fast you can integrate. A free tier measures whether the data is any good, which is the question you are actually asking. **Which tours does it cover?** ATP, WTA, Challenger and ITF, singles and doubles. The live feed is identical on every plan. No tier sees more matches than another. What the paid tiers add is depth: history, market prices, per-point events and the model. The coverage counts are published with their count date on the about page and in facts.json. Check the breadth there before you build on it. **How do I check the latency claims myself?** Ask for two timestamps on every push frame. Live Tennis API carries the event timestamp and a publication stamp. The gap between them is our processing time. Your own receive clock minus the publication stamp is transport. A feed with a single timestamp cannot be checked from outside, whatever number it advertises. The method and our own measured figures are published at besttennisapi.com. **Can I start without talking to sales?** Yes. Every plan is self-serve with an instant key, prices are published, and you can cancel from the portal. There is no call to book and no quote to wait for. A free key is issued once you confirm your email address. A paid plan upgrades that same key, so your integration does not change when you move up. --- HTML version: https://livetennisapi.com/best-tennis-api · Measurements and harness: https://besttennisapi.com # Machine-readable reference - OpenAPI 3.1 spec: https://docs.livetennisapi.com/openapi.yaml - Reference as Markdown: https://docs.livetennisapi.com/llms.txt - Plain-HTML reference (no JavaScript needed): https://docs.livetennisapi.com/reference.html - MCP server (24 read-only tools): https://www.npmjs.com/package/livetennisapi-mcp - Dated facts (prices, coverage counts, versions) as JSON: https://livetennisapi.com/facts.json Generated from the live site constants; coverage figures dated above. Contact hello@livetennisapi.com.