v46

latestOpenAPI 3.0.3raw.githubusercontent.com2026-08-012445110.0 KB
Markets

List markets (flat)

Returns 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 aren't guaranteed a stable order between requests. Scoping to a subcategory or series_ticker set avoids this entirely.

get/v1/markets/list

Query parameters

category'crypto' | 'economics' | 'finance' | 'sports' | 'politics' | 'tech' | 'entertainment' | 'weather' | 'all'

Filter by category, e.g. sports or crypto.

venue'kalshi' | 'polymarket'

Source venue for a market.

Filter by venue: kalshi or polymarket.

subcategory'nba' | 'ncaa' | 'nfl' | 'nhl' | 'mlb' | 'ufc' | 'lol' | 'epl' | 'efl' | 'la_liga' | 'world_cup' | 'bundesliga' | 'liga_portugal' | 'ligue_1' | 'f1' | 'ipl' | 'btc' | 'eth' | 'sol' | 'stocks' | 'indices' | 'etfs' | 'earnings' | 'rates' | 'inflation' | 'commodities' | 'fx' | 'jobs' | 'ai' | 'companies' | 'other'

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.

frequency'daily' | 'weekly' | 'monthly' | 'hourly'

Filter by series cadence: daily, weekly, monthly, or hourly.

series_tickerstring

Filter by one or more series, comma-separated and case-sensitive, e.g. KXWCAST,KXWCTCORNERS. Up to 100.

statusstring

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.

cursorstring

Opaque pagination cursor from a previous response's meta.cursor. Do not construct manually.

limitinteger

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