Data hierarchy
Market data on SX Bet is organized in a hierarchy. Understanding this structure will help you navigate the API efficiently.
A market row carries no odds — prices live at the book level, not on the market. The two pricing
routes are not interchangeable. The snapshot gives full depth for one market. Best odds gives the top
of book for up to a hundred. See Active markets.
Each level of this table paginates differently, and two of them do not paginate at all.
GET /markets/active uses pageSize + paginationKey, the newer list routes use perPage +
nextKey, and GET /sports, /leagues/active and /fixture/active return everything in one
response.
Try it yourself
Run the script below in your terminal. It walks you through the full hierarchy interactively. Select a sport, then a league, then a fixture. It then displays all available main-line markets for that fixture.Sports
SX Bet covers a wide range of sports. Each sport is identified by a numericsportId. Pass a sportId to other endpoints (such as /leagues/active) to filter results by sport.
Full list of sports
Full list of sports
This list may not be exhaustive. Query
GET /sports for the full, up-to-date list.Leagues
SX Bet supports many leagues across all sports. Each league is identified by aleagueId.
There are two ways to fetch leagues:
GET /leagues/active— Returns only leagues that currently have active fixtures. Pass asportIdto filter by sport.GET /leagues— Returns all leagues supported by SX Bet, including those without any active fixtures. Also accepts an optionalsportIdfilter.
Fixtures
A fixture on SX Bet represents an individual game or event — for example, Toronto Raptors vs. Detroit Pistons on March 10th, 2026. Many markets exist for any given fixture. To fetch active fixtures, queryGET /fixture/active with a leagueId. Each fixture is identified by a unique eventId.
Example fixture response:
startDate field contains the scheduled start time of the game in UTC. The status field indicates the current state of the fixture:
One identifier has three spellings, and the casing matters:
- You read
sportXeventId— lowercasee— from market, fixture and search rows. - You pass
eventIdto every route and channel. GET /live-scoresandGET /fixture/statustake a third form:sportXEventIds, capitalEand plural. Lowercase there is a400 ["sportXEventIds must be a string"].
Markets
A market represents a single binary outcome you can bet on — for example, “Over 2.5 Total Goals” vs. “Under 2.5 Total Goals”. Many markets exist for any given fixture. Every market on SX Bet is identified by a uniquemarketHash, which is used throughout the API to fetch orderbooks, post orders, and query trades.
Fetching markets
Querying active markets from the API.