Tennis betting markets
54 market names for Tennis, 33 priced pre-match and 51 in-play. Pass any of them to the markets parameter to get only those odds.
- Markets
- 54
- Pre-match
- 33
- In-play
- 51
- Periods
- 3
Request Tennis markets
Use the names exactly as listed. This request returns three Tennis markets for one event.
GET https://api.odds-api.io/v3/odds?apiKey=YOUR_API_KEY&eventId=EVENT_ID&bookmakers=Bet365&markets=ML,Spread,TotalsAll 54 Tennis markets
Grouped by period. Each row links to its own anchor, so you can point to a single market.
Match and other periods 23
| Market name | Shape | Pre-match | In-play |
|---|---|---|---|
| ML | moneyline | Yes | Yes |
| Spread | line | Yes | Yes |
| Totals | line | Yes | Yes |
| Both Teams To Score | yesno | Yes | No |
| Odd/Even | outcomes | Yes | Yes |
| Team Total Home | line | Yes | Yes |
| Team Total Away | line | Yes | Yes |
| European Handicap | line | Yes | Yes |
| Correct Score | labelled | Yes | Yes |
| Most Aces 3-Way | moneyline | Yes | No |
| Most Double Faults 3-Way | moneyline | Yes | No |
| Set Betting | labelled | Yes | Yes |
| Spread (Games) | line | Yes | Yes |
| Team Total (Aces) Away | line | Yes | Yes |
| Team Total (Aces) Home | line | Yes | Yes |
| Team Total (Double Faults) Away | line | Yes | Yes |
| Team Total (Double Faults) Home | line | Yes | Yes |
| Team Total (Games) Away | line | Yes | Yes |
| Team Total (Games) Home | line | Yes | Yes |
| Totals (Aces) | line | Yes | Yes |
| Totals (Breaks) | line | Yes | Yes |
| Totals (Double Faults) | line | Yes | Yes |
| Totals (Games) | line | Yes | Yes |
Sets 12
| Market name | Shape | Pre-match | In-play |
|---|---|---|---|
| Correct Score 1st Set | labelled | Yes | Yes |
| Correct Score 2nd Set | labelled | No | Yes |
| Correct Score 3rd Set | labelled | No | Yes |
| ML 1st Set | moneyline | Yes | Yes |
| ML 2nd Set | moneyline | Yes | Yes |
| ML 3rd Set | moneyline | Yes | Yes |
| Spread 1st Set | line | Yes | Yes |
| Spread 2nd Set | line | Yes | Yes |
| Spread 3rd Set | line | Yes | Yes |
| Totals 1st Set | line | Yes | Yes |
| Totals 2nd Set | line | Yes | Yes |
| Totals 3rd Set | line | Yes | Yes |
Games 19
| Market name | Shape | Pre-match | In-play |
|---|---|---|---|
| ML Set 1 Game 1 | moneyline | No | Yes |
| ML Set 1 Game 10 | moneyline | No | Yes |
| ML Set 1 Game 2 | moneyline | No | Yes |
| ML Set 1 Game 4 | moneyline | No | Yes |
| ML Set 1 Game 5 | moneyline | No | Yes |
| ML Set 1 Game 7 | moneyline | No | Yes |
| ML Set 1 Game 8 | moneyline | No | Yes |
| ML Set 1 Game 9 | moneyline | No | Yes |
| ML Set 2 Game 10 | moneyline | No | Yes |
| ML Set 2 Game 3 | moneyline | No | Yes |
| ML Set 2 Game 4 | moneyline | No | Yes |
| ML Set 2 Game 5 | moneyline | No | Yes |
| ML Set 2 Game 6 | moneyline | No | Yes |
| ML Set 2 Game 7 | moneyline | No | Yes |
| ML Set 2 Game 8 | moneyline | No | Yes |
| ML Set 2 Game 9 | moneyline | No | Yes |
| ML Set 3 Game 2 | moneyline | No | Yes |
| ML Set 3 Game 3 | moneyline | No | Yes |
| ML Set 3 Game 4 | moneyline | No | Yes |
What the odds look like
Every market has a shape that tells you how to read its odds rows. These are example rows from the odds endpoints.
moneyline
One row with a price for each side: home and away, plus draw on three-way markets.
Tennis: ML, ML 1st Set, ML 2nd Set, ML 3rd Set
JSONMarkets in the response[ { "name": "ML", "odds": [ { "home": "2.10", "draw": "3.40", "away": "3.20" } ] }, { "name": "ML 1st Set", "odds": [ { "home": "1.62", "away": "2.25" } ] } ]line
One row per line. hdp is the handicap or the total, with home/away prices on a handicap and over/under on a total.
Tennis: Spread, Totals, Team Total Home, Team Total Away
JSONMarkets in the response[ { "name": "Spread", "odds": [ { "hdp": -0.5, "home": "1.95", "away": "1.85" }, { "hdp": -1.5, "home": "3.10", "away": "1.36" } ] }, { "name": "Totals", "odds": [ { "hdp": 2.5, "over": "1.90", "under": "1.90" } ] } ]outcomes
Fixed named outcomes in one row: 1X, 12 and X2 on Double Chance, odd and even, or home, away and none when no team scores.
Tennis: Odd/Even
JSONMarkets in the response[ { "name": "Double Chance", "odds": [ { "1X": "1.28", "12": "1.30", "X2": "1.70" } ] }, { "name": "First Team To Score", "odds": [ { "home": "3.20", "away": "2.63", "none": "2.49" } ] } ]yesno
One row with a yes price and a no price.
Tennis: Both Teams To Score
JSONMarkets in the response[ { "name": "Both Teams To Score", "odds": [ { "yes": "1.80", "no": "2.00" } ] } ]labelled
One row per selection. label names it, such as a correct score or a player, and odds holds the price. Player Props rows add a line with over and under.
Tennis: Correct Score, Correct Score 1st Set, Correct Score 2nd Set, Correct Score 3rd Set
JSONMarkets in the response[ { "name": "Correct Score", "odds": [ { "label": "1-0", "odds": "7.50" }, { "label": "2-1", "odds": "9.00" } ] }, { "name": "Player Props", "odds": [ { "label": "Arike Ogunbowale (Assists)", "hdp": 5.5, "over": "1.87", "under": "1.95" } ] } ]
Naming notes
- Names are the same on every bookmaker and match the markets parameter without regard to case. There is no Match Winner (use ML) and no bare Over/Under or Asian Handicap.
- Spread is the handicap in sets and Totals the number of sets. Spread (Games) and Totals (Games) count games across the match.
- A market with No under pre-match is only priced once the event is under way.
Tennis markets FAQ
How many Tennis markets does the API have?
54 right now: 33 priced pre-match and 51 in-play. The list follows what bookmakers price, and GET /v3/markets?sport=tennis returns the current set without an API key.
How do I get only some Tennis markets?
Add markets with comma-separated names to /v3/odds, /v3/odds/multi or the WebSocket, for example markets=ML,Spread,Totals. Matching ignores case but needs the full name.
What does ML mean?
ML is the moneyline: who wins the match. Use ML for the match result, as there is no market called Match Winner.
Data and citation
The same list as JSON, no API key needed: https://api.odds-api.io/v3/markets?sport=tennis
Last updated 12 November 2026.
Link to this page: https://odds-api.io/markets/tennis
Start pulling odds
One API key covers every market on this page, pre-match and in-play, from 450+ bookmakers.