---
title: "One settled Kalshi market this roster won"
method: GET
path: "/api/v1/public/settled-wins/{ticker}"
tags: ["Public"]
---

# One settled Kalshi market this roster won

`GET /api/v1/public/settled-wins/{ticker}`

## Request

- Base URL: `https://kalshispy.com`
- URL: `https://kalshispy.com/api/v1/public/settled-wins/{ticker}`
- Auth: none required

Full record of one settled Kalshi market this roster won: outcome, consensus, every roster trader on the winning side with their realized profit and picture, close and expiration times, keywords, and `hints.similar` — comparable wins in the same series to judge it against. Returns 404 when the ticker is not an archived win (the roster was not on it, or was on the losing side); the 404 carries a hint to search the series instead. No API key needed.

## Path parameters

- `ticker` string, required: Kalshi market ticker, e.g. KXFED-26SEP-T4.00

## Response `200`

OK

- object
  - `ok` true, required
  - `data` SettledWinDetail, required
    - `ticker` string
    - `title` string
    - `outcome` string: Kalshi's short outcome label; empty for plain Yes/No markets.
    - `category` string
    - `category_key` 'politics' | 'elections' | 'sports' | 'entertainment' | 'economics' | 'financials' | 'crypto' | 'weather' | 'world' | 'scitech' | 'companies' | 'health' | 'social' | 'transportation' | 'mentions' | 'exotics' | 'other'
    - `series_ticker` string
    - `event_ticker` string
    - `result` 'yes' | 'no'
    - `settled_at` string, date-time
    - `whale_count` integer
    - `dissent_count` integer
    - `consensus_side` 'YES' | 'NO'
    - `consensus_pct` number
    - `net_profit_usd` number
    - `winners_profit_usd` number
    - `whales` object[]
      - `nickname` string
      - `side` 'YES' | 'NO'
      - `profit_usd` number
      - `image_url` string: The trader's picture, 160 px, served by KalshiSpy ('' when there is none).
    - `url` string, uri
    - `kalshi_url` string, uri
    - `close_time` string, date-time, nullable
    - `expiration_time` string, date-time, nullable
    - `keywords` string[]
    - `source` string
  - `meta` Meta, required
    - `generated_at` string, date-time
    - `definition` string
    - `verification` string
    - `docs` string, uri
    - `attribution` string
  - `hints` Hints, required
    - `tip` string
    - `next_steps` object[]
      - `label` string
      - `url` string, uri
      - `auth` 'api_key'
    - `similar` SettledWin[]
      - `ticker` string
      - `title` string
      - `outcome` string: Kalshi's short outcome label; empty for plain Yes/No markets.
      - `category` string
      - `category_key` 'politics' | 'elections' | 'sports' | 'entertainment' | 'economics' | 'financials' | 'crypto' | 'weather' | 'world' | 'scitech' | 'companies' | 'health' | 'social' | 'transportation' | 'mentions' | 'exotics' | 'other'
      - `series_ticker` string
      - `event_ticker` string
      - `result` 'yes' | 'no'
      - `settled_at` string, date-time
      - `whale_count` integer
      - `dissent_count` integer
      - `consensus_side` 'YES' | 'NO'
      - `consensus_pct` number
      - `net_profit_usd` number
      - `winners_profit_usd` number
      - `whales` SettledWhale[]
        - `nickname` string
        - `side` 'YES' | 'NO'
        - `profit_usd` number
      - `url` string, uri
      - `kalshi_url` string, uri

## Other responses

- `400`: Invalid parameter (`error.param` names it) or invalid cursor.
- `404`: Not found; `hints` suggests what to search instead.
- `429`: Per-IP rate limit (60 requests/minute); honour `Retry-After`.

---

[API](https://skmtc.dev/kalshispy/apis/kalshispy-api.md) · [All operations](https://skmtc.dev/kalshispy/apis/kalshispy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kalshispy/apis/kalshispy-api/revisions/5f483277dadc?raw)
