Skip to main content
All active markets are available from GET /markets/active. You can filter by sport, league, event, market type, and more. To look up a specific market by hash, use GET /markets/find.

Fetch markets by sport

Pass one or more sportIds to scope results to a particular sport.
# NFL and NBA together
curl "https://api.sx.bet/markets/active?sportIds=1,4"
Use GET /sports to get a full list of sport IDs and their labels.

Fetch markets by league

Pass a leagueId to get all active markets in a specific league.
# English Premier League (leagueId=29)
curl "https://api.sx.bet/markets/active?leagueId=29"
Use GET /leagues/active to get a full list of active league IDs.

Fetch markets by event

If you already have a sportXeventId (returned on any market object), you can fetch all markets for that specific fixture.
curl "https://api.sx.bet/markets/active?eventId=L16068923"
This returns every market type available for that single game — moneylines, spreads, totals, and any period or prop markets.

Fetch a specific market by marketHash

If you have a marketHash, use GET /markets/find to retrieve it directly. You can pass up to 30 hashes in a single request.
curl "https://api.sx.bet/markets/find?marketHashes=0x024902...dd7667b,0x1c8f12...bcbc83"
GET /markets/find also returns settled markets, so it’s useful for looking up historical results.

Filters

Main lines only

For spread and total markets, multiple lines are usually available at once (e.g. over 1.5, 2.5, 3.5 goals). Set onlyMainLine=true to return only the primary line for each market type — the line where both sides are closest to 50/50.
curl "https://api.sx.bet/markets/active?leagueId=29&onlyMainLine=true"

Live markets only

Set liveOnly=true to return only markets currently available for in-play betting.
curl "https://api.sx.bet/markets/active?liveOnly=true"

Filter by market type

Pass one or more market type IDs using the type parameter to narrow results to a specific bet type.
# Moneyline and Asian Handicap
curl "https://api.sx.bet/markets/active?type=52,3"
Common market types:
typeName
11X2 (win / draw / no win)
5212 (moneyline, no draw)
22612 Including Overtime
3Asian Handicap (spread)
2Under/Over (totals)
See the full list on the Market Types page.

Pagination

GET /markets/active uses cursor-based pagination. Each response includes a nextKey field — pass it as paginationKey in your next request. Keep paginating until nextKey is absent or empty. Maximum pageSize is 50.

Real-time market updates

Rather than polling GET /markets/active, subscribe to WebSocket channels to receive market changes as they happen. Three channels are relevant when working with markets:
ChannelWhat you receive
markets:globalMarket status changes — new markets added, suspended, or settled
main_line:globalMain line shifts on spread and totals markets
fixtures:live_scoresLive score updates for a specific event
For setup and full payload references, see Real-time Data →.