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 moresportIds to scope results to a particular sport.
GET /sports to get a full list of sport IDs and their labels.
Fetch markets by league
Pass aleagueId to get all active markets in a specific league.
GET /leagues/active to get a full list of active league IDs.
Fetch markets by event
If you already have asportXeventId (returned on any market object), you can fetch all markets for that specific fixture.
Find fixtures by team name
If you do not already have aneventId, 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.
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 amarketHash, 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). SetonlyMainLine=true to return only the primary line for each market type — the line where both sides are closest to 50/50.
Live markets only
SetliveOnly=true to return only markets currently available for in-play betting.
Filter by market type
Pass one or more market type IDs using thetype parameter to narrow results to a specific bet type.
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.
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 pollGET /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.