Skip to content
@livetennisapi

Live Tennis API

Real-time tennis data API — live scores, players, rankings, match-winner market prices and model win-probability, over REST and WebSocket.
Live Tennis API

Real-time tennis data over REST and WebSocket. Live scores, players, rankings, match-winner market prices and model win-probability — for ATP, WTA, Challenger and ITF.

Documentation · Website · Pricing · Get an API key


SDKs

Install
Python pip install livetennisapi PyPI · source
JavaScript / TypeScript npm install livetennisapi npm · source
MCP server npx livetennisapi-mcp npm · source
from livetennisapi import LiveTennisAPI

with LiveTennisAPI() as client:                       # reads LIVETENNISAPI_KEY
    for match in client.list_matches(status="live"):
        print(match.tournament, match.score.sets)
import { LiveTennisAPI } from 'livetennisapi';

const { data } = await new LiveTennisAPI().listMatches({ status: 'live' });

Both ship a livetennis CLI and a reconnecting WebSocket client. The MCP server gives Claude, Cursor and other LLM agents 12 read-only tools over the same data.

Quickstart (raw HTTP)

Every response is JSON. Authenticate with a bearer token or an X-API-Key header — either works.

curl https://api.livetennisapi.com/api/public/v1/matches?status=live \
  -H "Authorization: Bearer $LIVETENNISAPI_KEY"
{
  "data": [
    {
      "id": 18953,
      "tournament": "ATP Wimbledon",
      "surface": "grass",
      "round": "R16",
      "status": "live",
      "players": { "p1": { "name": "", "ranking": 3 }, "p2": { "name": "" } },
      "score": { "sets": [1, 1], "games": [[6, 3, 2], [4, 6, 1]], "points": ["40", "30"], "server": 1 }
    }
  ],
  "meta": { "limit": 50, "offset": 0, "count": 1 }
}

No key yet? The liveness probe needs no auth:

curl https://api.livetennisapi.com/api/public/v1/health
# {"status":"ok","version":"v1"}

Endpoints

Endpoint Returns Tier
GET /matches Matches by lifecycle (live · upcoming · completed) BASIC
GET /matches/{id} Full match detail BASIC
GET /matches/{id}/score Current score only — lowest-latency read BASIC
GET /matches/{id}/events Match events, newest first PRO
GET /matches/{id}/analysis Model analysis — thesis + profile ULTRA
GET /players Search players by name BASIC
GET /players/{id} Bio, ranking, cached stats BASIC
GET /markets Match-winner market for a match PRO
GET /markets/{id}/prices Recent price ticks per side PRO
GET /history/matches Completed matches with derived winner BASIC
GET /fixtures Upcoming scheduled fixtures BASIC
GET /health Liveness probe (no auth)
WS /ws Live score push feed ULTRA

Tiers

BASIC PRO ULTRA
Matches, scores, players, fixtures, history
Match events + market prices
Model analysis + win_probability_p1 / danger
WebSocket live feed
Rate limit 60/min · 10k/day 300/min · 100k/day 600/min · 500k/day
$9.99/mo $29.99/mo $99.99/mo

Calling above your tier returns 403 {"error":"upgrade_required"} — never a silent empty result.

Conventions

  • Base URLhttps://api.livetennisapi.com/api/public/v1
  • Timestamps — UTC ISO 8601 with a Z suffix, everywhere.
  • Lists return {data, meta}; single resources return the object directly.
  • Paginationlimit (default 50, max 200) and offset.
  • Score shapesets is [sets_p1, sets_p2]; games is [games_p1, games_p2] where each side is a per-set list, so [[6,3,2],[4,6,1]] reads 6-4, 3-6, 2-1.
  • Forward compatibility — ignore unknown fields. Additive changes land within v1, so clients should not reject responses carrying fields they don't recognise.
  • Errors401 unauthorized · 403 upgrade_required · 404 · 429 (with Retry-After).

Documentation

Where to subscribe

Direct is cheapest and issues a key instantly. The API is also listed on the marketplaces you may already be billing through:

Direct · RapidAPI · Apify · API.market · Zyla · Postman

Status

The API is live and serving. Anything published in this organisation is tested against the production endpoint before release — see each repository's contract tests.

Built by the team behind livetennisapi.com

Popular repositories Loading

  1. livetennisapi-mcp livetennisapi-mcp Public

    MCP server for the Live Tennis API — give Claude, Cursor and other LLM agents real-time tennis scores, odds and model win-probability

    JavaScript 213 84

  2. livetennisapi-js livetennisapi-js Public

    Official JavaScript/TypeScript client for the Live Tennis API — real-time tennis scores, players, market prices and model win-probability over REST and WebSocket

    TypeScript 1

  3. .github .github Public

    Organisation profile for Live Tennis API

  4. openapi openapi Public

    OpenAPI 3.1 specification for the Live Tennis API — real-time tennis scores, players, market prices and model win-probability

    Python

  5. livetennisapi-python livetennisapi-python Public

    Official Python client for the Live Tennis API — real-time tennis scores, players, market prices and model win-probability over REST and WebSocket

    Python

  6. livetennisapi-dify-plugin livetennisapi-dify-plugin Public

    Dify plugin for the Live Tennis API — 12 read-only tools for live tennis scores, players, fixtures and model win-probability (ATP, WTA, Challenger, ITF).

    Python

Repositories

Showing 10 of 27 repositories

Top languages

Loading…

Most used topics

Loading…