Data hierarchy
Market data on SX Bet is organized in a hierarchy. Understanding this structure will help you navigate the API efficiently.| Level | Endpoint | Description | Filter by |
|---|---|---|---|
| Sports | GET /sports | All sports available on SX Bet | — |
| Leagues | GET /leagues/active | Active leagues for a given sport | sportId |
| Fixtures | GET /fixture/active | Active games/events for a given league | leagueId |
| Markets | GET /markets/active | Bettable binary outcomes for a given fixture | sportIds, eventId, leagueId, type, onlyMainLine |
| Orders | GET /orders | Active maker orders on a market | marketHashes, maker, sportXeventId, orderHash |
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, and it will display 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
sportId | Sport |
|---|---|
1 | Basketball |
2 | Hockey |
3 | Baseball |
4 | Golf |
5 | Soccer |
6 | Tennis |
7 | Mixed Martial Arts |
8 | Football |
9 | E Sports |
10 | Novelty Markets |
11 | Rugby Union |
12 | Racing |
13 | Boxing |
14 | Crypto |
15 | Cricket |
16 | Economics |
17 | Politics |
18 | Entertainment |
20 | Rugby League |
24 | Horse Racing |
26 | AFL |
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:
| Status ID | Name | Description |
|---|---|---|
1 | Not started | The event has not started yet |
2 | In progress | The event is live |
3 | Finished | The event has finished |
4 | Cancelled | The event has been cancelled |
5 | Postponed | The event is postponed. If a new start time is confirmed within 48 hours, it will revert to “Not started”. Otherwise, it will be cancelled. |
6 | Interrupted | The event has been interrupted (e.g. a rain delay). Coverage will resume under the same event ID. |
7 | Abandoned | The event has been abandoned and will not resume (e.g. a player injury in tennis). |
8 | Coverage lost | Coverage for this event has been lost |
9 | About to start | The event is about to start (shown up to 30 minutes before tip-off) |
The following endpoints use
sportXeventId instead of eventId as a query parameter: GET /trades/consolidated, GET /ordersThe following endpoints use sportXEventIds instead of eventId as a query parameter: GET /live-scores, GET /fixture/statusMarkets
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.
Fetch Markets
Learn how to query active markets from the SX Bet API
