FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Original HTTPS Page]

Live Tennis API · GitHub

Live Tennis API

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

Real-time tennis data over REST and WebSocket. Live scores, players, rankings, head-to-heads, a 1968–2022 results archive, match-winner market prices and model win-probability — for ATP, WTA, Challenger, ITF and juniors.

Get a free API key — no card · Documentation · Website · Pricing


SDKs

Install
Python pip install livetennisapi PyPI · source
JavaScript / TypeScript npm install livetennisapi npm · source
MCP server npx livetennisapi-mcp npm · source
Starters / examples Runnable break-point apps (paper-only) Go · Node · Python
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 24 read-only tools over the same data.

Quickstart (raw HTTP)

Every response is JSON. Authenticate with Authorization: Bearer (preferred) or an X-API-Key header — either works. A free key ($0, no card) covers everything below:

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, "total": 1, "has_more": false }
}

No key yet? Grab a free one — or hit the liveness probe, which 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 and upcoming FREE¹
GET /matches/{id} Full match detail — any single match, including a completed one FREE
GET /matches/{id}/score Current score only — lowest-latency read FREE
GET /matches/{id}/events Match events, newest first PRO
GET /matches/{id}/prices Price ticks for a match's market PRO
GET /matches/{id}/statistics Detailed match statistics ULTRA
GET /matches/{id}/analysis Model analysis — thesis + profile ULTRA
GET /players Search players by name FREE
GET /players/{id} Bio, ranking, cached stats FREE
GET /h2h Head-to-head record between any two players BASIC²
GET /rankings Ranking listings (ATP, WTA, …) PRO
GET /rankings?player= One player's rank as of any date ULTRA
GET /markets Match-winner market for a match PRO
GET /markets/{id}/prices Recent price ticks per side PRO
GET /fixtures Upcoming scheduled fixtures FREE
GET /usage Your key's usage and quota — doesn't count against it FREE
GET /history/matches Completed matches with derived winner BASIC²
GET /history/matches/{id} One completed match from the historical tape BASIC²
GET /history/archive/… 1968–2022 results archive — 1.49M matches, player bios, rankings back to 1973 BASIC²
GET /history/matches/{id}/rally + GET /rally/matches Point-by-point rally tape ULTRA
GET /charting/… Shot-by-shot match charting ULTRA
GET /history/packages Historical data packages PRO³
GET /health Liveness probe (no auth)
WS /ws Live score push feed ULTRA
GET /ws-token Token for the managed high-fan-out push feed ULTRA
Webhooks Push notifications for match events ULTRA

¹ Bulk paging of completed matches (GET /matches?status=completed) needs the BASIC tier or any History plan; a single completed match by id (GET /matches/{id}) is FREE. ² Or any History plan — History plans work on top of a free core key. ³ Or History Pro and above.

Tiers

FREE BASIC PRO ULTRA
Live & upcoming matches, scores, players, fixtures, usage
Completed-match listings, /h2h, /history/matches + the 1968–2022 archive¹
Match events, market prices, ranking listings + /history/packages
As-of rankings, match statistics, rally + charting data, model analysis + win_probability_p1 / danger
WebSocket live feed, push feed + webhooks
Rate limit 30/min · 100/day 60/min · 1k/day 300/min · 10k/day 600/min · 500k/day
$0 — no card $9.99/mo $29.99/mo $99.99/mo

¹ Also unlocked by any History plan, on top of a free core key.

Start free — a FREE key is fine to use from browser code (CORS is open, GET-only, no credentials mode); keep paid keys server-side.

Calling above your tier returns 403 {"error":"upgrade_required"} — never a silent empty result. Upgrade any time at livetennisapi.com/subscribe/upgrade.

Conventions

  • Base URL — https://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.
  • Pagination — limit (default 50, max 200) and offset; page while meta.has_more is true (meta.total may be null).
  • Score shape — sets 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.
  • Errors — 401 unauthorized · 403 upgrade_required · 404 · 429 (honour Retry-After; the body's resets_at and the X-RateLimit-Reset header give the exact UTC instant your quota resets).

Documentation

All repositories

Official clients Python · JavaScript/TypeScript · Go · Swift · .NET · Dart/Flutter · PHP · Laravel
Agents & LLM tooling MCP server · Vercel AI SDK tools · Codex plugin · Dify plugin · Gemini CLI · Zed · LangChain · Haystack
Automation & apps n8n · Node-RED · Home Assistant · Obsidian · VS Code · Flow Launcher · MagicMirror² · Red-DiscordBot
Starters / examples Go · Node · Python
Prediction markets Polymarket tennis trading toolkit — discover tennis event markets, match them to live matches, watch market prices vs live scores (observe-only)
Spec & meta OpenAPI 3.1 · .github (this profile)

Where to subscribe

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

Direct — free tier · Direct — paid plans · RapidAPI · Apify · API.market · 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.

Affiliate program

Know developers who need tennis data? The affiliate program pays 51% recurring commission for the life of every referred subscription — 30-day cookie, and the people you refer get 10% off. Free to join.

Built by the team behind livetennisapi.com

Pinned 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

    TypeScript 162 59

  2. openapi openapi Public

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

    Python

  3. ha-livetennis ha-livetennis Public

    Home Assistant integration for the Live Tennis API — live ATP, WTA, Challenger, ITF and juniors scores as sensors

    Python

  4. livetennisapi-python livetennisapi-python Public

    Official Python client for the Live Tennis API — real-time tennis scores for ATP, WTA, Challenger, ITF and juniors: players, rankings, market prices and model win-probability over REST and WebSocket

    Python

  5. livetennisapi-go livetennisapi-go Public

    Official Go client for the Live Tennis API — real-time tennis scores, players, history and rankings for ATP, WTA, Challenger, ITF and juniors

    Go

  6. livetennisapi-js livetennisapi-js Public

    Official JavaScript/TypeScript client for the Live Tennis API — real-time tennis scores, players, rankings, market prices and model win-probability for ATP, WTA, Challenger, ITF and juniors, over R…

    TypeScript

Repositories

Loading
Type
Select type
All Public Sources Forks Archived Mirrors Templates
Language
Select language
All C# C++ Dart Go HTML JavaScript Liquid PHP Python Ruby Rust Shell Swift TypeScript
Sort
Select order
Last updated Name Stars
Showing 10 of 53 repositories

Top languages

Loading…

Most used topics

Loading…


Back | FazBrowse Home | New Git URL