Sports Guides
Tennis
ATP and WTA coverage: Grand Slams, Masters 1000, ATP/WTA Tours and Challenger-level events. Each match is an event; matches within a tournament share the competition name.
Competitions covered
- Grand Slams — Australian Open, Roland-Garros, Wimbledon, US Open.
- Tours — ATP and WTA Tour events, including Masters 1000 and WTA 1000.
- Challenger / ITF — lower-tier events when markets are available.
Markets
| Market | Key | Notes |
|---|---|---|
| Match winner | h2h | Winner of the match. A retirement counts as a loss. |
| Set handicap | set_handicap | Point on the set scoreline, e.g. -1.5 sets for the favourite. |
| Total games | total_games | Over/under on total games across all sets. |
| Correct score | correct_score | Exact set scoreline, e.g. 3-0, 2-3. |
| Next set winner | next_set_winner | Winner of the next set only; priced while a match is live. |
WARNINGGrand Slam men's matches are best-of-five; all other matches are best-of-three. Best-of-five inflates
total_games lines — do not compare lines across competition types.Example — get match odds
Pull the match winner market for a US Open semi-final, in decimal format:
GET
/v1/sports/tennis/odds?market=h2h&odds_format=decimalAPI keyReturns h2h odds for every open tennis match, including this sample semi-final.
Request
cURL
curl "https://api.openoddsapi.com/v1/sports/tennis/odds?market=h2h&odds_format=decimal" \
-H "X-API-Key: sk_test_your_key_here"JavaScript
const url = "https://api.openoddsapi.com/v1/sports/tennis/odds" +
"?market=h2h&odds_format=decimal";
const res = await fetch(url, {
headers: { "X-API-Key": "sk_test_your_key_here" }
});
const odds = await res.json();
console.log(odds);Python
import requests
url = "https://api.openoddsapi.com/v1/sports/tennis/odds"
res = requests.get(
url,
params={"market": "h2h", "odds_format": "decimal"},
headers={"X-API-Key": "sk_test_your_key_here"},
)
print(res.json())JSON
[
{
"id": "odd_ten_usopen_20260904_alcaraz_sinner_draftkings_h2h",
"sport_key": "tennis",
"event_id": "evt_ten_usopen_20260904_alcaraz_sinner",
"bookmaker": "draftkings",
"market": "h2h",
"format": "decimal",
"last_update": "2026-08-07T02:14:33Z",
"outcomes": [
{ "name": "C. Alcaraz", "price": 1.56, "point": null },
{ "name": "J. Sinner", "price": 2.40, "point": null }
]
}
]Settlement notes
- Retirement or walkover settles as a loss for the retiring player on
h2handnext_set_winner. total_gamesandset_handicapsettle on the final scoreline, including tiebreak games.- Markets open roughly 48 hours before a match and suspend during rain delays.