Search
Search for events and markets by text query. Returns matched events with their market groups, cross-platform prices, and group IDs for use with other endpoints. Supports filtering by event type and status.
/v2/searchParameters
qstringrequiredSearch query on event names and group titles. Short uppercase acronyms such as NFL match whole words; other terms use case-insensitive substring matching. Must be at least 3 characters.
event_typestringFilter by event type (e.g. election, Politics, Science and Technology).
statusstringFilter by event visibility: active (default), completed, or all. Completed includes events past their visibility window, not necessarily settled markets. Unsupported values return 400.
date_fromstringOnly events on or after this date (ISO 8601, e.g. 2026-06-01).
date_tostringOnly events on or before this date (ISO 8601, e.g. 2026-12-31).
include_groupsbooleanInclude matched groups and prices (default true). Set false for event summaries and group counts.
include_pricesbooleanInclude current prices on each market (default true): last_price, yes_bid and yes_ask, in cents. Set false to omit them for faster searches. Accepts true or false.
typesstringComma-separated market classes to keep in each event's groups: moneyline, spread, total, player_prop, other - or all. Filters by market_class. Default: all classes.
limitintegerMax results to return (1-100, default 20).
cursorstringPagination cursor from a previous response.
Response
querystringThe search query that was used.
countintegerNumber of events returned.
eventsobject[]Matching events with groups and prices.
Show 6 fields
event_namestringName of the event.
event_typestringEvent category (election, Politics, etc.).
event_datestringEvent date (ISO 8601).
statusstringactive or completed.
group_countintegerNumber of matched groups in this event.
groupsobject[]Matched market groups.
Show 11 fields
group_idintegerGroup ID (use with /v2/unified-orderbook).
titlestringGroup title (candidate / proposition name).
platform_countintegerNumber of platforms with this market.
marketsobject[]Markets in this group.
Show 6 fields
platformstringPlatform name (kalshi, polymarket, etc.).
market_idstringPlatform-native market ID.
source_urlstringDirect link to the market on the platform.
last_pricenumber | nullMidpoint of the current best YES bid and ask, in cents. null when either side is missing, the spread is wider than 20 cents, or the market is closed. Omitted with include_prices=false.
yes_bidnumber | nullCurrent best YES bid, in cents. Omitted with include_prices=false.
yes_asknumber | nullCurrent best YES ask, in cents. Omitted with include_prices=false.
market_classstring | nullType class of this group: moneyline, spread, total, player_prop, or other. null on non-sports groups. Switch on this - do not parse titles.
market_typestring | nullSpecific type (e.g. spread, player_home_runs). null for game moneylines and non-sports groups. Open-ended; branch on market_class.
periodstring | nullfull or 1H (sports groups only).
linenumber | nullLine for spread/total/player-prop groups.
sidestring | nullhome/away for spreads, over/under for totals and player props.
playerstring | nullPlayer name on player-prop groups; null otherwise.
teamstring | nullFull team name on team-line groups; null otherwise.
next_cursorstring | nullCursor for next page of results (null if no more).
_metaobjectPresent only when prices were requested and could not be read.
Show 1 fields
prices_unavailablebooleantrue when current prices could not be read. Every price is then null; retry later.