Skip to content
@livetennisapi

Live Tennis API

Live tennis data over REST and WebSocket. Open-source SDKs and MCP tools. Explore Synapse for custom software and AI.
From the court. Into your code. A tennis ball connects to branching data paths.

Live Tennis API

Live tennis scores and historical data for apps, dashboards and research. Coverage includes ATP, WTA, Challenger, ITF and junior Grand Slam draws. Available fields vary by match and tour.

Get a free API key   /   Documentation   /   Plans   /   Developer portal

Make your first request

Set LIVETENNISAPI_KEY in your environment, then fetch the matches in play.

curl --fail-with-body --silent --show-error \
  --header "Authorization: Bearer $LIVETENNISAPI_KEY" \
  "https://api.livetennisapi.com/api/public/v1/matches?status=live"

Free includes live scores, players and fixtures at 30 requests/minute and 100/day. No card required. Keep paid keys server-side.

Pick your starting point

The Python and JavaScript clients include a livetennis CLI and a reconnecting WebSocket client. Streaming requires Ultra.

Python and JavaScript examples

Both clients read LIVETENNISAPI_KEY from the environment.

from livetennisapi import LiveTennisAPI

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

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

Prefer raw HTTP? The API also accepts X-API-Key authentication. Check connectivity without a key at GET /health.

Choose your data

  • Free covers live and upcoming matches, current scores, players, fixtures and the tournament catalogue.
  • Basic adds completed-match history, point-by-point tapes where available, the 1968-2022 results archive and head-to-head records.
  • Pro adds match events, market prices, ranking tables and monthly history packages.
  • Ultra adds live model fields, match statistics, shot-level charting and streaming. It also includes as-of rankings and webhooks.

Each plan includes the plans below it. Compare current plans or upgrade an existing key. The Historical Data API also has standalone plans.

Results, point-by-point records and shot-level charting have different coverage. Check the API reference before choosing data for your project.

Endpoint guide and access rules

The base URL is https://api.livetennisapi.com/api/public/v1. This guide covers the main routes. The full reference includes parameters and plan exceptions.

Route Data
GET /matches Live, upcoming or completed matches
GET /matches/{id} One match
GET /matches/{id}/score Current score
GET /matches/{id}/events Match events
GET /matches/{id}/points Recorded live points where covered
GET /matches/{id}/prices Match market prices
GET /matches/{id}/statistics Match statistics
GET /matches/{id}/analysis Model analysis
GET /players and GET /players/{id} Player search and profiles
GET /h2h Head-to-head records
GET /rankings Ranking listings or a player's as-of record
GET /markets and GET /markets/{id}/prices Match-winner markets and prices
GET /fixtures Scheduled fixtures
GET /tournaments Tournament catalogue
GET /usage Your quota and usage
GET /history/matches Completed-match listings
GET /history/matches/{id} A match's point-by-point tape
GET /history/coverage Measured historical coverage
GET /history/archive/... The 1968-2022 results archive
GET /history/matches/{id}/rally and GET /rally/matches Shot-by-shot charted data
GET /charting/... Match and player charting statistics
GET /history/packages Historical downloads
GET /health Liveness check without authentication
WS /ws and GET /ws-token Live score feeds
Webhooks Match event notifications

Completed-match listings require Basic or a History plan. A single completed match at /matches/{id} is available on Free. Free also includes a limited monthly history sample. See the current access rules for its limits.

The results archive spans 1968-2022. Reconstructed archive tapes cover some matches from 2013-2022, with null timestamps and no model probabilities. Those tapes require Ultra or an active History plan. Bulk download rules differ from single-match access.

Historical tapes from 2023 onward declare their coverage and source. Model outputs appear only where computed. Shot-level data is curated and does not cover every match.

Calling above your plan returns 403 upgrade_required. The reference documents the data fields and exceptions for each route.

Response conventions
  • Lists return {data, meta}. Single-resource reads return the resource.
  • Timestamps use UTC ISO 8601 with a Z suffix where a real timestamp exists.
  • Page with limit and offset. Continue while meta.has_more is true. The default limit is 50 and the maximum is 200.
  • Scores use player-major arrays. games: [[6, 3, 2], [4, 6, 1]] means 6-4, 3-6, 2-1.
  • Ignore unknown fields so additive changes in v1 do not break your client.
  • Handle 401, 403, 404 and 429 responses. Follow Retry-After when rate limited.

Build with Synapse

Synapse builds custom software, AI integrations and automations. Have a product in mind? Talk to Synapse about building it.

More ways to build

Client libraries, integrations and example apps

Client libraries

Python, JavaScript and TypeScript, Go, Swift, .NET, Dart and Flutter, PHP, Laravel.

AI tools

MCP server, Vercel AI SDK, Codex plugin, Dify, Gemini CLI, Zed, LangChain, Haystack.

Automation and apps

n8n, Node-RED, Home Assistant, Obsidian, VS Code, Flow Launcher, MagicMirror, Red-DiscordBot.

Example apps and research

The Go, Node and Python starters demonstrate break-point apps with paper orders only.

The Polymarket tennis toolkit compares tennis market prices with live match state. It is observe-only. The academic dataset includes research access details and data loaders.

Browse all repositories.

Documentation, marketplaces and partners

Documentation

Interactive API reference, plain HTML reference, OpenAPI specification, llms.txt.

Marketplaces

Subscribe directly or through RapidAPI, Apify or API.market. Explore requests in the Postman workspace.

Partners

Refer developers through the affiliate program. The program page has the current terms and commission details.


livetennisapi.com   /   hello@livetennisapi.com   /   Report a security issue

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 150 53

  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

Showing 10 of 58 repositories

Top languages

Loading…

Most used topics

Loading…