v2

latestOpenAPI 3.1.0Proprietary2026-08-054985119.4 KB
markets

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.

get/v1/markets/search

Query parameters

qstring nullable

Search query

Search query

exchange_namestring nullable

Filter by exchange name (KALSHI, POLYMARKET)

Filter by exchange name (KALSHI, POLYMARKET)

categorystring[] nullable

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).

subcategorystring nullable

Filter by subcategory (e.g. Basketball, Football)

Filter by subcategory (e.g. Basketball, Football)

status'active' | 'closed' | 'inactive' | 'all'

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.

expiration_date_startstring date-time nullable

Start of expiration date range (inclusive, ISO 8601)

Start of expiration date range (inclusive, ISO 8601)

expiration_date_endstring date-time nullable

End of expiration date range (exclusive, ISO 8601)

End of expiration date range (exclusive, ISO 8601)

start_datetime_afterstring date-time nullable

Filter to markets with start_datetime >= this (ISO 8601)

Filter to markets with start_datetime >= this (ISO 8601)

start_datetime_beforestring date-time nullable

Filter to markets with start_datetime < this (ISO 8601)

Filter to markets with start_datetime < this (ISO 8601)

event_tickerstring nullable

Filter by event_ticker (exact match)

Filter by event_ticker (exact match)

last_price_minnumber nullable

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).

last_price_maxnumber nullable

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).

volume_mininteger nullable

Filter to events whose total summed volume >= this value.

Filter to events whose total summed volume >= this value.

sort_bystring nullable

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

include_combos'exclude' | 'include' | 'only'

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.

limitinteger

Maximum number of results

Maximum number of results

offsetinteger

Offset for pagination

Offset for pagination

event_limitinteger nullable

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_offsetinteger nullable

Event offset for event-based pagination

Event offset for event-based pagination

markets_per_eventinteger nullable

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

querystring required
totalinteger required
total_eventsinteger nullable