# Tennis betting markets

57 market names for Tennis, 33 priced pre-match and 54 in-play. Pass any of them to the markets parameter to get only those odds.

[All sports and markets](https://odds-api.io/markets)

## 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,Totals
```

## All 57 Tennis markets

### 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 (22)

| Market name | Shape | Pre-match | In-play |
| --- | --- | --- | --- |
| `ML Set 1 Game 1` | moneyline | No | Yes |
| `ML Set 1 Game 2` | moneyline | No | Yes |
| `ML Set 1 Game 3` | moneyline | No | Yes |
| `ML Set 1 Game 4` | moneyline | No | Yes |
| `ML Set 1 Game 5` | moneyline | No | Yes |
| `ML Set 1 Game 6` | moneyline | No | Yes |
| `ML Set 1 Game 7` | moneyline | No | Yes |
| `ML Set 1 Game 8` | moneyline | No | Yes |
| `ML Set 2 Game 1` | moneyline | No | Yes |
| `ML Set 2 Game 10` | moneyline | No | Yes |
| `ML Set 2 Game 11` | moneyline | No | Yes |
| `ML Set 2 Game 12` | moneyline | No | Yes |
| `ML Set 2 Game 2` | 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 1` | moneyline | No | Yes |
| `ML Set 3 Game 5` | moneyline | No | Yes |
| `ML Set 3 Game 6` | 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.

```json
[
  {
    "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.

```json
[
  {
    "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.

```json
[
  {
    "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.

```json
[
  {
    "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.

```json
[
  {
    "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?

57 right now: 33 priced pre-match and 54 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

[Fetching odds guide](https://docs.odds-api.io/guides/fetching-odds#market-types) · [Bookmakers and their markets](https://odds-api.io/sportsbooks)
