Esports Betting Markets Explained: Maps and Rounds

James Whitfield
Esports markets borrow from traditional sports and then add a layer that only exists in games played across maps and rounds. If you are integrating an Esports Odds API, here is what each market means and how it shows up in the data.
Match winner
The simplest market: who wins the series. Best-of-three and best-of-five are the most common formats, so the favourite price reflects map advantage rather than a single game. In the API this market is called ML, not "Match Winner". Market names are matched case-insensitively, but they have to be the full name.
Map and game handicap
A spread applied to maps in FPS and MOBA titles, or to games in Rocket League. A -1.5 map handicap means the team has to win the series by at least two maps. This is usually the busiest esports market after the outright winner. It comes back as Spread, with the line in the hdp field.
Total maps
Will the series go the distance? In a best-of-three the line sits at 2.5 maps: a clean 2-0 stays under, a 2-1 goes over. This is the Totals market, again with the line carried in hdp.
Per-map and in-map markets
Below the series level, books price the individual maps and what happens inside them. Map 1 and Map 2 winner cover a specific map. Correct score prices the exact series scoreline, 2-0 or 2-1 in a best-of-three. Round handicap and total rounds apply within a map for CS2 and Valorant, and pistol round winner covers the opening round of a half.
These map onto the same period keys you get in scores, where esports results are broken out as map1, map2, map3 and so on, with ft for the full-time series result. That pairing is what makes automated settlement per map straightforward.
First objectives in MOBAs
In League of Legends and Dota 2, books price first blood, first tower or turret, and first baron or Roshan. They are fast-moving live markets that resolve early in a game, which makes them heavily dependent on how quickly your odds feed updates.
Title-specific markets
Rocket League adds total goals and overtime yes/no. PUBG is a battle royale, so there is no head-to-head winner at all: you get placement markets such as top 3 or top 5, most kills and total kills. EA Sports FC behaves like football, with 1X2, both teams to score and over/under goals. The exact market set per title is listed on each game page.
How markets appear in the API
Odds are fetched per event. Both eventId and bookmakers are required on /odds, and you can pass up to 30 bookmakers in one call:
curl "https://api.odds-api.io/v3/odds?eventId=58231904&bookmakers=Bet365,GG.BET,Thunderpick&apiKey=YOUR_KEY"The response has a bookmakers object keyed by bookmaker name, each holding an array of named markets with their outcomes and prices:
{
"bookmakers": {
"Bet365": [
{
"name": "ML",
"odds": [{ "home": "1.72", "away": "2.10" }]
},
{
"name": "Spread",
"odds": [{ "hdp": -1.5, "home": "2.35", "away": "1.58" }]
}
]
}
}Not every bookmaker offers every market, so treat a missing market as normal rather than as an error.
Keeping live markets current
In-map markets move fast, so pull them over the WebSocket rather than polling. The markets parameter is required for the odds channel, and every update replaces the full market set for that event and bookmaker:
wscat -c "wss://api.odds-api.io/v3/ws?apiKey=YOUR_KEY&markets=ML,Spread,Totals&sport=esports&status=live"Suspended markets are dropped from the payload instead of being flagged, so their absence is the suspension signal. The details are in our guide to live esports scores over WebSocket.
Testing a market against history
Before you price or model anything, check how a market behaved. /historical/events returns settled matches for a sport, league and date range, and /historical/odds returns the odds for one of those events, with an optional markets filter:
curl "https://api.odds-api.io/v3/historical/odds?eventId=58231904&bookmakers=Bet365&markets=ML,Spread&apiKey=YOUR_KEY"Where to start
Odds-API.io covers 15 esports titles from 265+ bookmakers, part of 34 sports and 12,000+ leagues on one integration. Start at the Esports Odds API hub for the per-title market lists, or follow how to build an esports betting app for the full flow from listing matches to settling bets. The free tier is 100 requests per hour and needs no card.
