---
title: "Get Event Candlesticks"
method: GET
path: "/series/{series_ticker}/events/{ticker}/candlesticks"
tags: ["events"]
---

# Get Event Candlesticks

`GET /series/{series_ticker}/events/{ticker}/candlesticks`

## Request

- Base URL: `https://external-api.kalshi.com/trade-api/v2`
- URL: `https://external-api.kalshi.com/trade-api/v2/series/{series_ticker}/events/{ticker}/candlesticks`
- Auth: none declared

End-point for returning aggregated data across all markets corresponding to an event.

## Path parameters

- `ticker` string, required
- `series_ticker` string, required

## Query parameters

- `start_ts` integer, required
- `end_ts` integer, required
- `period_interval` 1 | 60 | 1440, required

## Response `200`

Event candlesticks retrieved successfully

- GetEventCandlesticksResponse
  - `market_tickers` string[], required: Array of market tickers in the event.
  - `market_candlesticks` array[], required: Array of market candlestick arrays, one for each market in the event.
    - MarketCandlestick[]
      - `end_period_ts` integer, required: Unix timestamp for the inclusive end of the candlestick period.
      - `yes_bid` BidAskDistribution, required
        - `open_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `low_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `high_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `close_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
      - `yes_ask` BidAskDistribution, required
        - `open_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `low_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `high_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `close_dollars` string, required: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
      - `price` PriceDistribution, required
        - `open_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `low_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `high_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `close_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `mean_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `previous_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `min_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
        - `max_dollars` string: Fixed-point US dollar string. Most request fields accept 2-4 decimal places (e.g., "0.56", "0.5600"); responses emit up to 6. Valid quote intervals for a given market are constrained by that market's price level structure.
      - `volume_fp` string, required: Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.
      - `open_interest_fp` string, required: Fixed-point contract count string (2 decimals, e.g., "10.00"; referred to as "fp" in field names). Requests accept 0-2 decimal places (e.g., "10", "10.0", "10.00"); responses always emit 2 decimals. Fractional contract values (e.g., "2.50") are supported; the minimum granularity is 0.01 contracts.
  - `adjusted_end_ts` integer, required: Adjusted end timestamp if the requested candlesticks would be larger than maxAggregateCandidates.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `500`: Internal server error

## Changes

- **2026-04-13** `218c1f661cbd`: 10 breaking, 8 warning
  - removed the required property `market_candlesticks/items/items/open_interest` from the response with the `200` status
  - removed the required property `market_candlesticks/items/items/volume` from the response with the `200` status
  - removed the required property `market_candlesticks/items/items/yes_ask/close` from the response with the `200` status
  - removed the required property `market_candlesticks/items/items/yes_ask/high` from the response with the `200` status
  - …14 more
- **2026-01-26** `ea5437268cb9`: 2 info
  - added the required property `market_candlesticks/items/items/open_interest_fp` to the response with the `200` status
  - added the required property `market_candlesticks/items/items/volume_fp` to the response with the `200` status
- **2025-11-06** `6ad7527f54aa`: 29 breaking, 36 info
  - the `query` request parameter `period_interval` was restricted to a list of enum values
  - for the `query` request parameter `period_interval`, the format changed from `int64` to `int32`
  - removed the media type `application/json` for the response with the status `500`
  - the response property `market_candlesticks/items/items/price/close` became nullable for the status `200`
  - …61 more
- **2025-10-17** `6ce8fe6c1c3b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/series/:series_ticker/events/:ticker/candlesticks/get.md)

---

[API](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints.md) - [All operations](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
