List markets (flat)
Changed onReturns a paginated list of individual markets, most-traded first. Unlike the event-grouped GET /markets, results aren't grouped by event and are never capped per event, so every market is reachable. Filter by venue, category, subcategory, or one or more series.
Paginate with cursor until it returns null; meta.total is the total number of matches. For a complete sync, de-duplicate by ticker. Markets with equal volume are not guaranteed a stable order between requests. Scoping to a subcategory or series_ticker set avoids this entirely.
Request
- Base URLhttps://api.totalis.trade
- Authnone required
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
Filter by category, e.g. sports or crypto.
Source venue for a market.
Filter by venue: kalshi or polymarket.
Subcategory wire format (lowercase snake_case). Valid values depend on the selected category and are enforced server-side.
Filter by subcategory, e.g. world_cup. Requires category.
Filter by series cadence: daily, weekly, monthly, or hourly.
Filter by one or more series, comma-separated and case-sensitive, e.g. KXWCAST,KXWCTCORNERS. Up to 100.
Filter by status. Defaults to tradeable markets (active,open); pass a comma-separated list of active, open, closed, settled, finalized, or all. An empty or unrecognised value returns 400.
Opaque pagination cursor from a previous response's meta.cursor. Do not construct manually.
Number of markets per page, from 1 to 500. Defaults to 100. Only the first 10,000 matches are reachable. Narrow the filters to page further.
Response
OK
Changes
- info
endpoint added
- info