← Developer Blog

Tennis API: Live Scores, Stats & Data Guide

A developer's guide to the Live Tennis API: live ATP/WTA/Challenger/ITF scores, player stats, point-by-point, tiers, and a curl/Python/JS quickstart.

· · By the Live Tennis API team

A tennis API is an HTTP service that returns live scores, player and ranking data, fixtures, historical match tape, and market prices as JSON your code can consume. The Live Tennis API covers ATP, WTA, Challenger, and ITF, with a free tier (no card) for live scores, players, and fixtures.

This guide is the overview: what the API returns, how the tiers split, a runnable quickstart in curl, Python, and JavaScript, and links to five deep-dives for the surfaces you're most likely to build on.

What the Live Tennis API returns

Every request goes to the base URL https://api.livetennisapi.com/api/public/v1 and authenticates with an X-API-Key header. Responses are JSON. The core surfaces:

There is no draws/bracket endpoint. We cover professional tennis tours only (not table tennis).

Tiers and what each unlocks

Entitlements are cumulative — each tier includes everything below it.

Tier Price Rate limits Adds
Free $0 (no card) 30/min, 100/day Live matches & scores, players (ranking + Elo), fixtures, usage
Basic $9.99/mo 60/min, 1k/day Completed-match history + point-by-point tape
Pro $29.99/mo 300/min, 10k/day Market prices/events, rank-ordered rankings listing
Ultra $99.99/mo 600/min, 500k/day Win-probability/analysis, live per-point events, WebSocket stream

The Free tier gives you the current state of play: live scores, any player's own current ranking and Elo, and upcoming fixtures. Grab a key at livetennisapi.com/subscribe/free.

Quickstart

Set your key once and pull the current live matches.

curl

export TENNIS_API_KEY="your_key_here"

# Live matches right now
curl -s https://api.livetennisapi.com/api/public/v1/matches?status=live \
  -H "X-API-Key: $TENNIS_API_KEY"

# The current score for one match
curl -s https://api.livetennisapi.com/api/public/v1/matches/12345/score \
  -H "X-API-Key: $TENNIS_API_KEY"

Python

Authenticate with the X-API-Key header and call the endpoints directly with requests:

import os, requests

BASE = "https://api.livetennisapi.com/api/public/v1"
headers = {"X-API-Key": os.environ["TENNIS_API_KEY"]}

# Every live match across ATP, WTA, Challenger, ITF
r = requests.get(f"{BASE}/matches", params={"status": "live"}, headers=headers)
r.raise_for_status()
for match in r.json().get("matches", []):
    print(match["id"], match["status"])

# A player's current ranking and Elo (free tier)
p = requests.get(f"{BASE}/players/4321", headers=headers)
p.raise_for_status()
print(p.json())

An official Python SDK is available too (pip install livetennisapi) and wraps these same endpoints.

JavaScript

Use fetch with the same base URL and header:

const BASE = "https://api.livetennisapi.com/api/public/v1";
const headers = { "X-API-Key": process.env.TENNIS_API_KEY };

const res = await fetch(`${BASE}/matches?status=live`, { headers });
const { matches } = await res.json();
for (const m of matches) {
  console.log(m.id, m.status);
}

An official JavaScript SDK (npm i livetennisapi) wrapping the same endpoints is available for Node and modern runtimes.

The full reference lives at docs.livetennisapi.com, with an OpenAPI spec at github.com/livetennisapi/openapi. There's also an MCP server at mcp.livetennisapi.com if you're wiring the data into an AI agent.

Deep-dives

Each surface has its own guide with worked examples:

FAQ

What is a tennis API?

A tennis API is an HTTP endpoint that returns tennis data — live scores, player rankings, fixtures, historical results, point-by-point tape, and market prices — as JSON. The Live Tennis API serves this from https://api.livetennisapi.com/api/public/v1, authenticated with an X-API-Key header.

Is there a free tennis API?

Yes. The Live Tennis API has a free tier with no card required at livetennisapi.com/subscribe/free. It covers live matches and scores, player data with current ranking and Elo, and fixtures, at 30 requests/minute and 100/day.

Which tennis tours are covered?

ATP, WTA, Challenger, and ITF — singles and the main professional circuits. The API does not cover table tennis.

How do I authenticate?

Send your key in an X-API-Key HTTP header on every request, for example X-API-Key: your_key_here. There are official Python (pip install livetennisapi) and JavaScript (npm i livetennisapi) SDKs that handle the header for you.

How do I get live scores?

Call GET /matches?status=live for the current live matches, then GET /matches/{id}/score for one match's score. Both are available on the free tier. See the tennis scores API guide.

What do the paid tiers add?

Basic ($9.99/mo) adds completed-match history and point-by-point tape; Pro ($29.99/mo) adds market prices and the ranking listing; Ultra ($99.99/mo) adds win-probability analysis, live per-point events, and a WebSocket stream. Limits scale from 100/day (Free) to 500k/day (Ultra).

Frequently asked questions

What is a tennis API?

A tennis API is an HTTP endpoint that returns tennis data — live scores, player rankings, fixtures, historical results, point-by-point tape, and market prices — as JSON. The Live Tennis API serves this from https://api.livetennisapi.com/api/public/v1, authenticated with an X-API-Key header.

Is there a free tennis API?

Yes. The Live Tennis API has a free tier with no card required at livetennisapi.com/subscribe/free. It covers live matches and scores, player data with current ranking and Elo, and fixtures, at 30 requests/minute and 100/day.

Which tennis tours are covered?

ATP, WTA, Challenger, and ITF — the main professional circuits. The API does not cover table tennis.

How do I authenticate with the Live Tennis API?

Send your key in an X-API-Key HTTP header on every request, for example 'X-API-Key: your_key_here'. Official Python (pip install livetennisapi) and JavaScript (npm i livetennisapi) SDKs set the header for you.

How do I get live tennis scores from the API?

Call GET /matches?status=live for the current live matches, then GET /matches/{id}/score for one match's score. Both are on the free tier.

What do the paid tiers add?

Basic ($9.99/mo) adds completed-match history and point-by-point tape; Pro ($29.99/mo) adds market prices and the ranking listing; Ultra ($99.99/mo) adds win-probability analysis, live per-point events, and a WebSocket stream.

Built with the Live Tennis API — real-time scores, players, odds and model win-probability for ATP, WTA, Challenger and ITF.

API reference SDKs on GitHub Plans from $9.99/mo