Tennis odds API
Tennis odds from DraftKings, FanDuel, Pinnacle and many more books in one JSON shape, with games spread, total games, set spread, total sets, set by set lines and in-play.
Ask the odds route for tennis and you get every match with each book's price side by side. Add a tournament to narrow it, such as atp_shanghai_masters. The key covers ATP, WTA, Challenger, ITF and UTR, singles and doubles, and each match has one stable id.
Tennis markets are about games and sets. You get the match moneyline, the games spread and total games, the set spread and total sets, and moneyline, spread and total for each of the first three sets. Live odds are included from the Growth plan.
curl -H "X-API-Key: $ODDSLINK_KEY" \
"https://oddslink.app/v1/sports/tennis/odds?markets=h2h,spreads,totals"import os, requests
r = requests.get(
"https://oddslink.app/v1/sports/tennis/odds",
params={"markets": "h2h,spreads,totals"},
headers={"X-API-Key": os.environ["ODDSLINK_KEY"]},
)
r.raise_for_status()
for game in r.json():
print(game["away_team"], "at", game["home_team"])[
{
"id": "tennis:andreevamirra-qinwenzheng:2026-10-11",
"sport_key": "tennis",
"sport_title": "Tennis",
"commence_time": "2026-10-11T11:30:00.000Z",
"is_live": false,
"status": "scheduled",
"home_team": "Qinwen Zheng",
"away_team": "Mirra Andreeva",
"bookmakers": [
{
"key": "pinnacle",
"title": "Pinnacle",
"last_update": "2026-10-11T05:26:37.486Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-10-11T05:26:37.486Z",
"outcomes": [
{
"name": "Mirra Andreeva",
"price": -178
},
{
"name": "Qinwen Zheng",
"price": 157
}
]
},
{
"key": "spreads",
"last_update": "2026-10-11T05:26:37.486Z",
"outcomes": [
{
"name": "Mirra Andreeva",
"price": -138,
"point": -2,
"size": {
"kind": "posted_limit",
"amount": 12000
}
},
{
"name": "Qinwen Zheng",
"price": 118,
"point": 2,
"size": {
"kind": "posted_limit",
"amount": 12000
}
}
]
},
{
"key": "totals",
"last_update": "2026-10-11T05:26:37.486Z",
"outcomes": [
{
"name": "Over",
"price": -129,
"point": 21,
"size": {
"kind": "posted_limit",
"amount": 9000
}
},
{
"name": "Under",
"price": 111,
"point": 21,
"size": {
"kind": "posted_limit",
"amount": 9000
}
}
]
}
]
},
{
"key": "draftkings",
"title": "Draftkings",
"last_update": "2026-10-11T05:26:41.339Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-10-11T05:26:41.339Z",
"outcomes": [
{
"name": "Mirra Andreeva",
"price": -179
},
{
"name": "Qinwen Zheng",
"price": 145
}
]
},
{
"key": "spreads",
"last_update": "2026-10-11T05:26:41.339Z",
"outcomes": [
{
"name": "Mirra Andreeva",
"price": -125,
"point": -2.5
},
{
"name": "Qinwen Zheng",
"price": -115,
"point": 2.5
}
]
},
{
"key": "totals",
"last_update": "2026-10-11T05:26:41.339Z",
"outcomes": [
{
"name": "Over",
"price": -185,
"point": 20.5
},
{
"name": "Under",
"price": 125,
"point": 20.5
}
]
}
]
}
],
"unmatched_bookmakers": [
"circa",
"lowvig"
]
}
]A real Tennis response from 11 Oct 2026, trimmed.
More than the main line
Moneyline
The match moneyline, and a moneyline for each of the first three sets.
Games spread and total games
The games handicap and the over/under on games, with the whole ladder, main line first.
Set spread and total sets
The set handicap and the over/under on sets.
Set by set
Moneyline, spread and total games for sets 1, 2 and 3.
Every tour
ATP, WTA, Challenger, ITF and UTR, singles and doubles, plus the team cups.
In-play
Yes. Live tennis prices while the match is on, from the Growth plan and up.
Markets
| Market | Periods |
|---|---|
| Moneyline | Match, sets 1 to 3 |
| Games spread, with alternate lines | Match |
| Total games, with alternate lines | Match, sets 1 to 3 |
| Set spread | Match, sets 1 to 3 |
| Total sets | Match |
| Player total games | Match |
Books for Tennis
Every book on every plan
| Plan | Per month | Requests a month | In-play and props | History |
|---|---|---|---|---|
| Free | $0 | 1,000 | No | No |
| Starter | $24 | 20,000 | No | No |
| Growth | $49 | 100,000 | Yes | No |
| Scale | $99 | 500,000 | Yes | 2 years |
| Business | $199 | 5,000,000 | Yes | All of it |
Questions
How do I get one tournament?
Ask for tennis and add ?tournament=atp_shanghai_masters. Each tournament also has its own key, such as tennis_atp_shanghai_masters.
Which tours do you carry?
ATP, WTA, Challenger, ITF men and women, and UTR, singles and doubles. Team cups such as the Davis Cup and Billie Jean King Cup are in too.
Which tennis markets do you carry?
Moneyline, games spread, total games, set spread, total sets and player total games, with set by set lines for the first three sets.
How is the games spread named?
As spreads and totals, the same keys as every other sport. The set spread and total sets are set_handicap and sets_total.
Is in-play included?
Yes. Live tennis prices are on the Growth plan and up.
Can I get tennis opening and closing lines?
Yes, for finished games. Openers and closing prices for the full-game moneyline, spread and total are on Scale (the last 2 years) and Business (everything recorded).