---
title: "Compact full market list for client-side instant search"
method: GET
path: "/api/markets/discover/v2/search-index"
tags: ["Discover"]
---

# Compact full market list for client-side instant search

`GET /api/markets/discover/v2/search-index`

## Request

- Base URL: `https://data.kairos.trade`
- URL: `https://data.kairos.trade/api/markets/discover/v2/search-index`
- Auth: API key in header `X-Client-Id` and API key in header `X-Api-Key` and API key in header `X-Api-Secret`

Returns every valid market (grouped by event) in a compact shape for the client to index locally. Responses are cached to keep this fast after the first build.

## Response `200`

Full compact market index.

- DiscoverSearchIndexResponse
  - `markets` DiscoverSearchIndexMarket[], required
    - `id` string, required
    - `ticker` string, required
    - `title` string, required
    - `eventTitle` string: Grouped rows only.
    - `yes_sub_title` string, nullable: Single rows only.
    - `no_sub_title` string, nullable: Single rows only.
    - `price` number, required
    - `volume` number
    - `volume24h` number
    - `volume1h` number
    - `liquidity` number
    - `rewardRate` number
    - `provider` string, required
    - `expiration` string, date-time, nullable
    - `category` string, nullable
    - `image` string, nullable
    - `icon` string, nullable
    - `isGrouped` boolean, required
    - `token_id` string, nullable
    - `outcomes` DiscoverSearchIndexOutcome[]: Grouped rows only.
      - `id` string
      - `title` string
      - `ticker` string
      - `price` number
      - `volume1h` number
      - `volume24h` number
      - `volumeTotal` number
      - `outcomeLabel` string
      - `token_id` string, nullable
      - `rewardRate` number
  - `total` integer, required
  - `timestamp` string, required

## Other responses

- `401`: No valid credential presented — missing/invalid API-key headers, or an invalid/expired session token.
- `403`: Authenticated but not permitted. Three distinct causes: the session user is not invited (`Invite required`), the API key lacks the operation's scope, or API-key access to the requested venue is switched off (`API access is disabled for <provider>`). Admin and API-key callers bypass the invite check; session and admin callers bypass scope and venue checks.
- `422`: Request failed FastAPI parameter validation.
- `429`: Rate limit exceeded for this route's sliding window, keyed on the session `sub` when authenticated and on the trusted client IP otherwise. Honor `Retry-After`. A per-API-key data ceiling (set per credential) rejects with `{"detail": "API key data rate limit exceeded"}` instead of the `error` envelope below.
- `500`: Search-index rebuild failed on a cache miss.

---

[API](https://skmtc.dev/kairos/apis/kairos-data-api.md) - [All operations](https://skmtc.dev/kairos/apis/kairos-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kairos/apis/kairos-data-api/revisions/cf6b76079e38?raw)
