Search Markets
Search and browse markets across all exchanges.
Supports:
- Exact match on ticker, condition_id, slug, river_id
- Full-text search on name, description, tags
- Browse by filters (no query required)
- Results ranked by relevance
Defaults to status=active; pass status=all to include closed markets.
Query parameters
Search query
Search query
Filter by exchange name (KALSHI, POLYMARKET)
Filter by exchange name (KALSHI, POLYMARKET)
Filter by canonical category. Repeat the param to filter to multiple categories (Sports, Crypto, Politics, Finance, Entertainment, Science & Tech, Weather, World Affairs, Health, Social, Other).
Filter by canonical category. Repeat the param to filter to multiple categories (Sports, Crypto, Politics, Finance, Entertainment, Science & Tech, Weather, World Affairs, Health, Social, Other).
Filter by subcategory (e.g. Basketball, Football)
Filter by subcategory (e.g. Basketball, Football)
status query values for market search. ALL matches any status except inactive (never-activated exchange junk), which stays opt-in via INACTIVE.
Filter by instrument status. Defaults to active; pass 'all' for active and closed markets.
Start of expiration date range (inclusive, ISO 8601)
Start of expiration date range (inclusive, ISO 8601)
End of expiration date range (exclusive, ISO 8601)
End of expiration date range (exclusive, ISO 8601)
Filter to markets with start_datetime >= this (ISO 8601)
Filter to markets with start_datetime >= this (ISO 8601)
Filter to markets with start_datetime < this (ISO 8601)
Filter to markets with start_datetime < this (ISO 8601)
Filter by event_ticker (exact match)
Filter by event_ticker (exact match)
Filter to markets with last_price >= this value (0.0–1.0 YES probability).
Filter to markets with last_price >= this value (0.0–1.0 YES probability).
Filter to markets with last_price <= this value (0.0–1.0 YES probability).
Filter to markets with last_price <= this value (0.0–1.0 YES probability).
Filter to events whose total summed volume >= this value.
Filter to events whose total summed volume >= this value.
Sort mode for event-based pagination: trending, volume, newest, ending-soon, start-time, price
Sort mode for event-based pagination: trending, volume, newest, ending-soon, start-time, price
How /v1/markets/search treats Kalshi parlay containers (is_combo).
- EXCLUDE (default): drop combos — standard markets/browse behaviour.
- INCLUDE: return combos alongside standard markets.
- ONLY: return combos exclusively (the Combos browse tab / parlay search).
How to treat parlays: 'exclude' (default), 'include' alongside standard markets, or 'only' combos.
Maximum number of results
Maximum number of results
Offset for pagination
Offset for pagination
Paginate by events instead of markets. Up to 200 by default; values above that require start_datetime_after or start_datetime_before.
Paginate by events instead of markets. Up to 200 by default; values above that require start_datetime_after or start_datetime_before.
Event offset for event-based pagination
Event offset for event-based pagination
With event pagination, cap the markets returned per event to the top N by volume (query-matched markets always survive the cap). Each row's event_market_count carries the event's full market count so clients can lazy-load the rest.
With event pagination, cap the markets returned per event to the top N by volume (query-matched markets always survive the cap). Each row's event_market_count carries the event's full market count so clients can lazy-load the rest.
Response
Successful Response
Changes
Changed in 2 of the 9 revisions of this API.28
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ▲
the
queryrequest parameterstatuswas restricted to a list of enum valuesrequest-parameter-became-enum
- ▲
for the
queryrequest parameterstatus, default valueactivewas addedrequest-parameter-default-value-added
- ○
added the new optional
queryrequest parametermarkets_per_eventnew-optional-request-parameter
- ○
added the new enum value
activeto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the new enum value
allto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the new enum value
closedto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the new enum value
inactiveto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
for the
queryrequest parameterstatus, the type was generalized from no type tostringrequest-parameter-type-generalized
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ▲