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.
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.
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.
This returns every market type available for that single game — moneylines, spreads, totals, and any period or prop markets.

Find fixtures by team name

If you do not already have an eventId, use GET /search to look up active fixtures by team name. Pass a query between 3 and 100 characters. The match is case-insensitive, and it supports partial names. Results are limited to 8 active fixtures, ordered by gameTime.
Each result includes the eventId, scheduled gameTime, both team names, and a type array of available market type IDs for that fixture. Pass the eventId to GET /markets/active to fetch markets for that fixture.

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.
GET /markets/find also returns settled markets, so it is useful for looking up historical results.

Filters

Main lines only

For spread and total markets, multiple lines are usually available at once (for example 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.

Live markets only

Set liveOnly=true to return only markets currently available for in-play betting.

Filter by market type

Pass one or more market type IDs using the type parameter to narrow results to a specific bet type.
Common market types: See the full list on the Market Types page.

Pagination

GET /markets/active uses cursor-based pagination. Each response includes a nextKey. Pass it as paginationKey in your next request. The maximum pageSize is 100, which is also the default.
Stop when nextKey is absent, never when a page comes back short. A short page can still carry a nextKey, with the next page empty.
The page-size parameter is pageSize on this route, not perPage. A wrong name is silently ignored and you get a default-sized page, never an error.

Real-time market updates

Rather than poll GET /markets/active, subscribe to a channel and receive market changes as they happen. Three channels are relevant to markets:
None of the three keeps history, so a change you miss while disconnected is gone. Seed from REST on connect. Also, markets:global publishes an array, while fixtures publishes a bare object. See Real-time data.
Last modified on August 11, 2026