Search markets
Search
Search markets
Find markets by text query, by series, or both.
GET
Search markets
You must pass either
q or series_id (or both). Requests with neither return 400.
Use q for free-text search and series_id to scope results to one series. If you don’t have a series_id yet, find one via Search series. To list every outcome under a single known event, use Event markets instead.
Parameters
string
Full-text search on
question. Required when series_id is not provided.string
Filter to one series. Examples:
KXBTC15M, btc-up-or-down-15m, KXFEDDECISION. Required when q is not provided.string
kalshi or polymarket.string
default:"active"
active (still trading) or closed (settled with a result).string
Exact category match.
integer
Minimum volume.
integer
Minimum liquidity.
string
ISO timestamp. Returns markets with
settled_at >= settled_after. Pair with status=closed for backtest workflows.string
ISO timestamp. Returns markets with
settled_at <= settled_before.string
ISO timestamp filter on
discovered_at. For polling new listings.string
default:"relevance"
relevance, newest, volume, or liquidity. relevance requires q; without q the default is newest.integer
default:"20"
1-100.
integer
default:"0"
Pagination offset. The response is a bare JSON array — increment
offset by limit until you receive an empty array.Examples
Settled-window discovery for a backtest
List the closed markets that resolved in a window for a known series. The returnedmarket_id values feed directly into the Kalshi historical endpoints.