Discover

Paginated, filtered, event-grouped market list for the Discover page

Returns a paginated, filtered, sorted, event-grouped market list for the Discover page, with server-side filtering (provider, category incl. alias remapping, free-text search, price/volume bounds, explicit market-id list, platform-tag/subcategory intersection, expiration window) and sorting. Most filter combinations are cacheable; free-text or bounded (price/volume) requests always run fresh and are not cached. Tag/subcategory filters that resolve to zero markets short-circuit to an empty payload; tag-filtered requests that would otherwise come back empty also get a best-effort fallback lookup so populated subtopics never render empty.

get/api/markets/discover/v2

Request

  • Base URL
    https://data.kairos.trade
  • Auth
    API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret

Query parameters

offsetinteger

Bounded by the candidate window the feed is assembled from; total is derived from that same window, so real pagination never reaches the cap.

limitinteger
sort_by'volume' | 'volume_24h' | 'volume_1h' | 'price' | 'newest' | 'liquidity' | 'rewards'
sort_order'asc' | 'desc'
providerstring

Provider id or all. Validated dynamically against currently active providers.

category'all' | 'politics' | 'crypto' | 'sports' | 'esports' | 'finance' | 'tech' | 'world' | 'weather' | 'elections' | 'geopolitics' | 'culture' | 'economy' | 'climate & science'

Topic category. Display aliases elections, geopolitics, economy, climate & science are remapped server-side to politics, world, finance, weather respectively before filtering.

searchstring

Free-text filter. Disables response caching for this request.

min_pricenumber

Inclusive lower bound, in cents (0-100). Disables response caching.

max_pricenumber

Inclusive upper bound, in cents (0-100). Disables response caching.

min_volume_1hnumber

Minimum hourly volume, matched against volume1hRank so a market whose hour nobody reports is judged on its day rather than dropped. Disables response caching.

market_idsstring

Comma-separated market ids (max 500 items, 128 chars each). Disables response caching.

tag_idsstring

Comma-separated platform-tag UUIDs, AND-intersected against market_ids/tag_slug (max 50). Disables response caching.

tag_slugstring

Single platform-tag slug (alternative to tag_ids).

subcategorystring

Subcategory (subtopic) tag slug, intersected with any other filters. Also accepts the tournament sentinel __tournament:<uuid> emitted by the web bracket UI, which short-circuits to an empty markets payload rather than 400ing.

expiration_afterstring date-time

ISO-8601 datetime lower bound (inclusive) on market expiration.

expiration_beforestring date-time

ISO-8601 datetime upper bound (exclusive) on market expiration.

zipperboolean

Interleave/zip results across providers instead of a flat sort.

Response

Paginated market list (event-grouped where applicable).

totalinteger required
offsetinteger required
limitinteger required
timestampstring required

ISO timestamp of the underlying cache build; empty string when the response falls back to a live query, or on the empty-filter short-circuit path.

Changes

No recorded changes to this operation across all 1 revision of this API.