Live Tennis API
Live Tennis API

Every point, price and win-probability

Live Tennis API is a real-time tennis data API: live scores, match-winner market prices and a proprietary win-probability model for ATP, WTA, Challenger and ITF — singles and doubles — over one REST + WebSocket API.

Sub-second live feed REST + WebSocket UTC · JSON · OpenAPI 3.1
GET /matches/18042/score

  "sets" 1 0
  "games" 6435
  "points" "30" "40"
  "server" 1
  "is_tiebreak" false
  "win_probability_p1" 0.62
  "timestamp" "2026-07-18T10:41:07Z"


Also available on RapidAPI Apify API.market Postman
See it running

Fifteen minutes of the live board, unedited

Our feed beside a public prediction market, on one clock. The figure at the top is a measured interval — the time between our score commit and the market's next quote move — shown with the number of samples behind it.

The Live Tennis API board: live matches with our score commit beside the market line, each on its own clock.

Open the full recording page

What you get

One feed for the whole pro tour

The data most providers give you — plus the live model analysis they don't.

01

Live scores, sub-second

Sets, games, points, server and tiebreak state for every live match — arbitrated from multiple sources into one clean feed.

02

WebSocket streaming

Updates pushed the instant a point is played. Subscribe to one match or the whole slate; no polling, no rate-limit juggling.

03

AI win-probability

A proprietary live model: the favored side, a calibrated probability, its confidence and the key factors behind the call.

04

Match-winner prices

Bid, ask and mid per player with history — line the market up against the data and the model in a single call.

05

Players & history

Bios, rankings, ratings and season form; upcoming fixtures and completed results with the winner resolved.

06

Clean & documented

Predictable JSON, UTC timestamps, an OpenAPI 3.1 spec and drop-in REST + WebSocket clients. Built to integrate in an afternoon.

Products

More than the live feed

The live API is one of a family. Break-point Alerts and the Historical Data API run on the same key and the same schema, and you manage them all from one developer portal. See all products.

BPBreak-point Alerts

Real-time webhook and push alerts the instant a break point arises in any live match — wire them straight into a bot, a Discord or your phone, no polling.

Break-point Alerts
HHistorical Tennis Data API

The point-by-point tape over 164,457 completed matches back to January 2023, plus results and player stats for backtesting — the same clean JSON schema as the live feed, in one bulk-friendly API.

Historical Data API
DEVDeveloper Portal

Create an account, get an instant API key and manage your subscription — with the full REST + WebSocket reference a click away.

Sign up API docs
Historical data

Point by point, back to 2023

The point-by-point tape spans 43 monthly periods, January 2023 through July 2026 — across ATP, WTA, Challenger and ITF, singles and doubles. Each match declares how it was recorded, so you can filter to exactly the rows you trust.

23,927,498Archived point-state rows
164,457Matches carrying a tape
43Monthly periods
99%Of completed matches
Per-match coverage, declared on every response
ValueWhat it meansTimestamps
from_startWatched live from 0-0 — every row carries a real timestamp.real
partialPicked up mid-match — observed from that point onward.real
reconstructedPoint sequence taken from a point-by-point feed rather than our own observation.null
reconstructed_partialA reconstruction that does not cover the whole match — it opens after 0-0, or stops before the official final score.null
noneNo tape for this match.
?Filter to what you trust
?coverage=from_start
only matches watched live from 0-0

?sequence=clean
de-duplicated state sequence

Both compose with the tour and date-range filters, so a query returns only the rows you asked for.

{}Every response declares itself
"meta"
  "coverage" "from_start"
  "raw_rows" 1284
  "unique_states" 311
  "point_source" "observed"
  "model_rows" 287

point_source reads observed, reconstructed or mixed, so you always know exactly what you hold. model_rows counts how many of the rows returned carry a win-probability — the model stamp is best-effort, so filter on that number rather than assuming coverage implies it.

Monthly downloadable packages, with a sha256 manifest per file.

Historical Data API
The API

Predictable, and quick to wire up

Clean REST endpoints and a WebSocket stream, all under one base URL. Authenticate with a bearer token and you are live.

GET /matches?status=liveFree
GET /matches/{id}/scoreFree
GET /players/{id}Free
GET /history/matchesBasic
GET /markets/{id}/pricesPro
GET /matches/{id}/analysisUltra
WS /wsUltra
# Verify connectivity — no key needed
curl https://api.livetennisapi.com/api/public/v1/health

# List live matches
curl -H "Authorization: Bearer $API_KEY" \
  https://api.livetennisapi.com/api/public/v1/matches?status=live

Base URL — https://api.livetennisapi.com/api/public/v1

Pricing

Straightforward, monthly

Subscribe directly for the best price and an instant key. Cancel anytime.

Start free — no card

For trying the API and hobby dashboards: live scores & current matches, players, fixtures and your usage. 30 req/min · 1,000/day. No history, no odds, no model fields, no WebSocket.

BASIC
$9.99/mo
For match results & the point-by-point story.
  • Everything in Free, plus:
  • Historical match results (completed matches)
  • Point-by-point match tape, per match
  • 60 req/min · 10k/day
Most popular PRO
$29.99/mo
For odds dashboards & data pipelines.
  • Everything in Basic, plus:
  • Match events & timeline
  • Match-winner market odds
  • Bulk history packages (monthly downloads)
  • 300 req/min · 100k/day
ULTRA
$99.99/mo
For trading bots & real-time products.
  • Everything in Pro, plus:
  • AI win-probability & analysis
  • WebSocket live push & webhooks
  • 600 req/min · 500k/day

Already subscribed? Upgrades are prorated automatically — upgrade here. Same key, no second plan.

Buy it your way

Direct, or on the marketplace you use

Same data, same endpoints, same key format — wherever you subscribe.

LTDirect

Subscribe here, billed monthly via Stripe. Your key is issued instantly — best price, no marketplace markup.

View plans
RRapidAPI

The largest API hub — one key across your RapidAPI subscriptions, with a usage dashboard included.

View on RapidAPI
AApify

Run it as a pay-per-result Actor that streams scores and analysis straight into an Apify dataset.

View on Apify
MAPI.market

Subscribe through MagicAPI with unified billing and a single gateway key.

View on API.market
PPostman

Explore and test every endpoint in our public Postman workspace before you commit a line of code.

Explore in Postman
AIMCP server

Plug live tennis data straight into Claude, Cursor or any AI agent — 12 read-only tools, listed in the official MCP Registry.

Connect via MCP

Official client libraries

Install a typed client and be reading live scores in a minute — or point an LLM agent at the MCP server. All MIT licensed, all open source.

PYPython

Sync and async clients over every endpoint, a reconnecting WebSocket feed, and a livetennis CLI. Fully typed.

pip install livetennisapi

Package Source
TSJavaScript / TypeScript

Zero runtime dependencies — runs on Node, Deno, Bun, Workers and the browser. Ships types and a CLI you can run with npx.

npm install livetennisapi

Package Source
AIMCP server

Give Claude, Cursor or any MCP client 12 read-only tools over live tennis data. Listed in the official MCP Registry.

npx livetennisapi-mcp

Package Source

Full API reference at docs.livetennisapi.com · OpenAPI specification on GitHub.

Built on Live Tennis API

Independent tutorials and tools from developers using the API. Written by them, not us — including where they found the limits.

BOTEvent-driven trading bots

BotBlog on wiring live score commits straight into bot logic over the WebSocket — reacting the moment a point lands instead of polling for it, with a measured latency study.

Read it
PYBeginner live scores dashboard

A step-by-step Python and Flask build for a personal live scoreboard. Written for absolute beginners — no prior API experience assumed.

Read it
WEBTennis Trader Board

A free hosted board built on the API, so you can watch live scores update before deciding whether you want a key at all.

Read it

Built something? Tell us at [email protected] and we will link it here.

FAQ

Answers before you build

How much does the Live Tennis API cost?

A free tier plus three monthly plans: Basic $9.99, Pro $29.99 and Ultra $99.99. You can subscribe directly here for an instant API 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 key never changes.

What data do I get on each plan?

Free: live scores & current matches, players, fixtures and your usage — 30 requests/min, 1,000/day; no history, odds, model fields or WebSocket. Basic ($9.99) adds historical match results and the point-by-point match tape — 60/min, 10,000/day. Pro ($29.99) adds match events, match-winner market odds and bulk monthly history packages — 300/min, 100,000/day. Ultra ($99.99) adds the AI win-probability model fields and analysis, the WebSocket live feed and webhooks — 600/min, 500,000/day.

How far back does the historical data go?

The point-by-point tape spans 43 monthly periods, January 2023 through July 2026, across ATP, WTA, Challenger and ITF — singles and doubles. That is 23,927,498 archived point-state rows over 164,457 of 166,690 completed matches, and it grows as the backfill runs. Bulk packages are published per calendar month with a sha256 manifest per file.

What is in the point-by-point tape?

The ordered score state at each point of a completed match, with match metadata. Each match declares its own coverage, and the differences are real rather than cosmetic: from_start means we watched it live from 0-0 — every row carries a real timestamp, and our model's win-probability where it was computed (that stamp is best-effort, so where it was not, the field is null rather than guessed); partial means we picked it up mid-match; reconstructed means the point sequence came from a point-by-point feed rather than our own live observation, so those rows carry a null timestamp and no model fields. Nothing is ever synthesised from a final scoreline. The meta block on every response repeats that alongside raw_rows, unique_states and point_source, so you always know exactly what you are holding. Per-match tape reads come with Basic and above; bulk monthly packages come with Pro and above, or with a Historical Data API package purchase. There is no odds tape in the history product.

Which tours and formats are covered?

ATP, WTA, Challenger and ITF — both singles and doubles — from one arbitrated feed.

Is there a WebSocket / live stream?

Yes. The Ultra plan includes a native WebSocket feed that pushes score updates the instant a point is played, so you never have to poll.

How fresh are the live scores?

Low latency. Scores come from an arbitrated multi-source feed and update within a second or two of the point being played.

How do I authenticate?

Send your API key as an Authorization: Bearer header, or as X-API-Key. Keys are issued instantly when you subscribe.

What is the AI win-probability?

A proprietary model's live win-probability for each player, with a confidence level and the key factors behind the call. It is available on the Ultra plan.

Can I try it before paying?

Yes — explore and test every endpoint in our public Postman workspace, and the /health endpoint needs no key at all.

Start building on live tennis

Pick a plan, get an instant API key, and make your first call in minutes.