Base URL
Conventions
- No
nullin a response. A value that is unset is omitted. Test for presence rather than fornull. - Timestamps are epoch milliseconds (
event_start,start_date,updated_at). - Money is a number in dollars, rounded to cents (
volume,liquidity). A price is a per-share YES or NO price between 0 and 1; seeMarketPricefor the display forms. - Comma-separated query lists. Where a parameter accepts several values, pass them as one
comma-separated string:
?sub_category=nfl,nba. Every accepted value is listed on Enumerations. - Cached responses. Market endpoints are cached for 5 seconds;
/sub_categoriesfor 5 minutes.
The included block
Every market-returning endpoint carries an included object beside its primary data, with the
events, teams, entities (players) and sub_categories (leagues) that the markets reference.
Resolve a market’s event_id, team_id or entity_id against it rather than fetching each resource.
included.sub_categories is identity only: id, name and icon. Whether a league is tradeable right
now, and which tabs it offers, come from GET /sub_categories.
Market groups
A market group is the unit the listing endpoints return:
Each market carries a
type that selects its shape, and a status of active, settled or
expired. A settled market also carries result.
Reading a game page
GET /prediction_markets/{id}returns the game’s gameline group plusfilters, the tabs to render.- Each tab says exactly what to send to
GET /events/{event_id}/details: itstypesas?type=, itsgroup_byas?group_by=, and on Player Props each filter’stypesas?prop_type=. - A player prop section with
has_more: trueis paged byGET /prediction_marketswith the sameevent_idandprop_type, which returns players in the same order.

