Free tennis data API.
REST endpoints for ATP/WTA matches, tournaments, players, rankings, and ML predictions, plus an MCP server for Claude/ChatGPT/Gemini. No rate limit. No credit card.
Quickstart
Three steps to your first request:
- Register at sports.bzzoiro.com/register/ — free, no credit card.
- Copy the API token from your dashboard.
- Send it as
Authorization: Token YOUR_TOKENon any request below.
Authentication
Pass your token on every request via the Authorization header:
Tokens never expire. Keep them secret. If a token leaks, regenerate it from the dashboard.
Base URL
Pagination
List endpoints use limit + offset query parameters and return:
limit— page size. Default 50, max 200 (rankings: max 500).offset— number of items to skip. Default 0.
Tournaments
Active tournaments — every tier from Grand Slams down to Challengers and ITFs.
Paginated list of tennis tournaments. Active-only by default.
| Parameter | Type | Description |
|---|---|---|
| circuit | string | ATP or WTA (case-insensitive) |
| category | string | grand_slam, masters_1000, atp_500, atp_250, wta_1000, wta_500, wta_250 |
| surface | string | hard, clay, grass, carpet |
| include_inactive | boolean | Include inactive tournaments. Default false. |
| limit / offset | int | Pagination (default 50, max 200) |
Full detail for a single tournament. Cached 5 min.
Players
Player profiles across both tours, with current ranking and biographical data.
Paginated player list. Each player includes their current ranking.
| Parameter | Type | Description |
|---|---|---|
| gender | string | M or F |
| country | string | ISO 3166-1 alpha-2 country code (e.g. ES, US) |
| search | string | Case-insensitive name fragment |
| limit / offset | int | Pagination (default 50, max 200) |
Full profile: name, country, height, weight, plays (right/left), turned-pro year, current ranking. Cached 5 min.
Matches
Tennis matches with set-by-set scores, serve stats, and live snapshots.
Paginated list. With no date filter, defaults to the next 7 days.
| Parameter | Type | Description |
|---|---|---|
| date_from / date_to | date | YYYY-MM-DD bounds |
| tournament | int / str | Tournament ID or name fragment |
| player | int / str | Player ID or name fragment |
| status | string | scheduled, live, finished, cancelled, postponed |
| limit / offset | int | Pagination |
Only currently in-progress matches with the live snapshot:
current_set, current_game_p1, current_game_p2,
current_point (e.g. "40-30"), is_serving_p1.
Cached 30 seconds.
Full match details including sets_detail (per-set breakdown),
live state (if in-progress), and per-player serve stats: aces, double faults, first/second serve %.
Predictions
ML predictions calibrated against historical accuracy. XGBoost backbone.
Paginated predictions. Defaults to upcoming.
| Parameter | Type | Description |
|---|---|---|
| upcoming | boolean | Default true. Set false for past predictions. |
| date_from / date_to | date | YYYY-MM-DD bounds |
| limit / offset | int | Pagination |
Each prediction returns:
prob_player1_wins,prob_player2_wins— match winner probabilities (0–100)predicted_winner— 1 or 2confidence— model self-rated confidence (0–100)expected_total_sets,prob_over_2_5_setsexpected_total_games,prob_over_20_5_games,prob_over_21_5_games,prob_over_22_5_gamesprob_player1_wins_first_setactual_winner,was_winner_correct— populated after the match ends
Rankings
ATP & WTA weekly snapshots. Each row carries the previous week's position + points and the player's career best.
Latest snapshot by default. Pass date for a historical snapshot.
| Parameter | Type | Description |
|---|---|---|
| type | string | ATP (default) or WTA |
| date | date | YYYY-MM-DD snapshot date |
| limit / offset | int | Pagination (max 500) |
MCP server
The tennis MCP endpoint exposes 7 typed tools to LLM clients (Claude Desktop, ChatGPT, Cursor, Gemini). Drop the config below into your client and ask it questions in plain English.
Streamable HTTP transport. Auth via the same Authorization: Token header (or ?token= query param).
Available tools:
list_tournaments— filter by circuit/categorylist_players— filter by gender/countrysearch_players— by name fragmentlist_matches— by status, date windowget_match— match details by IDget_predictions— upcoming match predictionsget_rankings— top N ATP or WTA
Claude Desktop config
Examples
Today's live matches with set scores
Predictions for an upcoming tournament
Need help? Email bzzoiro@proton.me. Bug reports welcome.