---
title: "Kalshi Events"
method: GET
path: "/gateway/v1/prediction-market/kalshi/events"
tags: ["Prediction Market"]
---

# Kalshi Events

`GET /gateway/v1/prediction-market/kalshi/events`

## Request

- Base URL: `https://api.asksurf.ai`
- URL: `https://api.asksurf.ai/gateway/v1/prediction-market/kalshi/events`
- Auth: HTTP bearer

Returns Kalshi events with nested markets, optionally filtered by `event_ticker`.

Each event includes market count and a list of markets.

**Data refresh:** ~30 minutes

## Query parameters

- `event_ticker` string: Event ticker identifier. When omitted, returns top active events by volume. Use GET /v1/search/prediction-market?platform=kalshi&q={keyword} to discover valid tickers.
- `limit` integer: Results per page
- `offset` integer: Pagination offset

## Response `200`

OK

- DataResponseKalshiEvent
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `data` KalshiEvent[], nullable, required
    - `event_subtitle` string: Event subtitle
    - `event_ticker` string, required: Unique event ticker identifier
    - `event_title` string, required: Event title
    - `market_count` integer, required: Number of markets in this event
    - `markets` KalshiMarketItem[], nullable, required: Markets within this event
      - `category` string: Surf curated market category
      - `close_time` integer: Market close time (Unix seconds)
      - `end_time` integer: Market end time (Unix seconds)
      - `event_ticker` string, required: Parent event ticker
      - `event_title` string: Event title
      - `last_day_open_interest` number, double, required: Previous day open interest from daily report
      - `market_ticker` string, required: Unique market ticker identifier
      - `notional_volume_usd` number, double, required: Last day notional trading volume in USD (each contract = $1)
      - `open_interest` number, double, required: Open interest (contracts)
      - `payout_type` string, required: Payout type
      - `result` string: Market result if resolved
      - `start_time` integer: Market start time (Unix seconds)
      - `status` string, required: Market status
      - `subcategory` string: Surf curated market subcategory
      - `title` string, required: Market title
      - `total_volume` integer, required: Total trading volume (contracts)
  - `meta` OffsetMeta, required
    - `cached` boolean, required: Whether this response was served from cache
    - `credits_used` integer, required: Credits deducted for this request
    - `empty_reason` string: Hint explaining why the data array is empty, when applicable
    - `has_more` boolean: Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required: Maximum number of items returned in this response
    - `offset` integer, required: Number of items skipped (pagination offset)
    - `total` integer: Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer: Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) - [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/revisions/91774fdd5302?raw)
