↑ ↓ move · Enter open · Esc close

REST API / Discover / Search

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.

GET/v2/search
Plans All plansMatched quota: see Rate limits

Parameters

qstringrequired

Search 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_typestring

Filter by event type (e.g. election, Politics, Science and Technology).

statusstring

Filter by event visibility: active (default), completed, or all. Completed includes events past their visibility window, not necessarily settled markets. Unsupported values return 400.

date_fromstring

Only events on or after this date (ISO 8601, e.g. 2026-06-01).

date_tostring

Only events on or before this date (ISO 8601, e.g. 2026-12-31).

include_groupsboolean

Include matched groups and prices (default true). Set false for event summaries and group counts.

include_pricesboolean

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

typesstring

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

limitinteger

Max results to return (1-100, default 20).

cursorstring

Pagination cursor from a previous response.

Response

querystring

The search query that was used.

countinteger

Number of events returned.

eventsobject[]

Matching events with groups and prices.

Show 6 fields
event_namestring

Name of the event.

event_typestring

Event category (election, Politics, etc.).

event_datestring

Event date (ISO 8601).

statusstring

active or completed.

group_countinteger

Number of matched groups in this event.

groupsobject[]

Matched market groups.

Show 11 fields
group_idinteger

Group ID (use with /v2/unified-orderbook).

titlestring

Group title (candidate / proposition name).

platform_countinteger

Number of platforms with this market.

marketsobject[]

Markets in this group.

Show 6 fields
platformstring

Platform name (kalshi, polymarket, etc.).

market_idstring

Platform-native market ID.

source_urlstring

Direct link to the market on the platform.

last_pricenumber | null

Midpoint 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 | null

Current best YES bid, in cents. Omitted with include_prices=false.

yes_asknumber | null

Current best YES ask, in cents. Omitted with include_prices=false.

market_classstring | null

Type 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 | null

Specific type (e.g. spread, player_home_runs). null for game moneylines and non-sports groups. Open-ended; branch on market_class.

periodstring | null

full or 1H (sports groups only).

linenumber | null

Line for spread/total/player-prop groups.

sidestring | null

home/away for spreads, over/under for totals and player props.

playerstring | null

Player name on player-prop groups; null otherwise.

teamstring | null

Full team name on team-line groups; null otherwise.

next_cursorstring | null

Cursor for next page of results (null if no more).

_metaobject

Present only when prices were requested and could not be read.

Show 1 fields
prices_unavailableboolean

true when current prices could not be read. Every price is then null; retry later.

Full API response