ATP Tour odds API
ATP Tour prices, markets and identifiers through one REST API.
The ATP Tour has the league key atp in the SockOdds API. It is an international tennis competition (sport key tennis). Its events have two competitors, competitor_1 and competitor_2.
Request ATP Tour odds
Current prices for the next ATP Tour game, one market, from every bookmaker your plan includes:
curl -sS "https://api.sockodds.com/v1/odds?league=atp&markets=winner&limit=1&starts_after=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-H "Authorization: Bearer $SOCKODDS_API_KEY"const response = await fetch(`https://api.sockodds.com/v1/odds?league=atp&markets=winner&limit=1&starts_after=${new Date().toISOString().slice(0, 19)}Z`, {
headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));import json, os, urllib.request
from datetime import datetime, timezone
request = urllib.request.Request(
f"https://api.sockodds.com/v1/odds?league=atp&markets=winner&limit=1&starts_after={datetime.now(timezone.utc):%Y-%m-%dT%H:%M:%SZ}",
headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
print(json.dumps(json.load(response), indent=2))Response from a local copy of the API with invented test prices
{
"data": [
{
"id": "ev_000ckk0jphk6",
"name": "Adam Walton v Adolfo Daniel Vallejo",
"league": {
"key": "atp",
"name": "ATP Tour"
},
"scheduled_start": "2026-10-16T09:00:00.000Z",
"status": "scheduled",
"participants": [
{
"role": "competitor_1",
"identity": {
"id": "pl_000ckk0har3n",
"name": "Adam Walton"
}
},
{
"role": "competitor_2",
"identity": {
"id": "pl_000ckk0msph6",
"name": "Adolfo Daniel Vallejo"
}
}
],
"markets": [
{
"id": "mk_rwavh3z10bwb04f4",
"key": "winner",
"name": "Winner",
"period": "full",
"subject": null,
"alternate": false,
"outcomes": [
{
"id": "oc_545rvkegasd0p4rr",
"name": "Adam Walton",
"side": "competitor_1",
"line": null,
"prices": [
{
"bookmaker": "lightningbet",
"decimal_odds": 1.81,
"implied_probability": 0.552486,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "betbuzz",
"decimal_odds": 1.77,
"implied_probability": 0.564972,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "bearbet",
"decimal_odds": 1.72,
"implied_probability": 0.581395,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "betfocus",
"decimal_odds": 1.69,
"implied_probability": 0.591716,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "starsports",
"decimal_odds": 1.65,
"implied_probability": 0.606061,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
},
{
"id": "oc_88374rs2tdd2t7za",
"name": "Adolfo Daniel Vallejo",
"side": "competitor_2",
"line": null,
"prices": [
{
"bookmaker": "lightningbet",
"decimal_odds": 2.23,
"implied_probability": 0.44843,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "betbuzz",
"decimal_odds": 2.18,
"implied_probability": 0.458716,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "bearbet",
"decimal_odds": 2.12,
"implied_probability": 0.471698,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "betfocus",
"decimal_odds": 2.08,
"implied_probability": 0.480769,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "starsports",
"decimal_odds": 2.04,
"implied_probability": 0.490196,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
}
]
}
]
}
],
"meta": {
"count": 1,
"cursor": null
},
"links": {
"next": null
}
}Prices are decimal and exactly as each bookmaker showed them, with the time we saw them. A price older than ten minutes is withheld rather than shown as current.
Bookmakers
8 bookmakers deliver ATP Tour prices through v1 as of 30 October 2026: BearBet, BetBuzz, BetFocus, CashCage, LightningBet, Mintbet, Star Sports and TopBet.
ATP Tour markets
5 market types are defined for the ATP Tour. Ask for any of them with markets=; a bookmaker quotes the markets it offers for each game.
Game markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Winner | winner | home, away, competitor_1, competitor_2 | No | full, set_1, set_2, set_3, set_4, set_5 |
| Handicap | handicap | home, away, competitor_1, competitor_2 | Yes | full |
| Total games | total_games | over, under | Yes | full, set_1 |
| Total sets | total_sets | over, under | Yes | full |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Player aces over/under | player_aces_over_under | over, under | Yes | full |
Periods
full (Full match), set_1 (First set), set_2 (Second set), set_3 (Third set), set_4 (Fourth set) and set_5 (Fifth set).
Plans
The ATP Tour is included on Rookie and Pro. Pro adds recorded price history, from 8 October 2026. See pricing.