---
title: "Get Market Candlesticks"
method: GET
path: "/series/{series_ticker}/markets/{ticker}/candlesticks"
tags: ["market"]
---

# Get Market Candlesticks

`GET /series/{series_ticker}/markets/{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}/markets/{ticker}/candlesticks`
- Auth: none declared

Time period length of each candlestick in minutes. Valid values: 1 (1 minute), 60 (1 hour), 1440 (1 day).
Candlesticks for markets that settled before the historical cutoff are only available via `GET /historical/markets/{ticker}/candlesticks`. See [Historical Data](https://docs.kalshi.com/getting_started/historical_data) for details.

## Path parameters

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

## Query parameters

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

## Response `200`

Candlesticks retrieved successfully

- GetMarketCandlesticksResponse
  - `ticker` string, required: Unique identifier for the market.
  - `candlesticks` MarketCandlestick[], required: Array of candlestick data points for the specified time range.
    - `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.

## Other responses

- `400`: Bad request
- `404`: Not found
- `500`: Internal server error

## Changes

- **2026-04-13** `218c1f661cbd`: 10 breaking, 8 warning
  - removed the required property `candlesticks/items/open_interest` from the response with the `200` status
  - removed the required property `candlesticks/items/volume` from the response with the `200` status
  - removed the required property `candlesticks/items/yes_ask/close` from the response with the `200` status
  - removed the required property `candlesticks/items/yes_ask/high` from the response with the `200` status
  - …14 more
- **2026-01-26** `ea5437268cb9`: 3 info
  - added the new optional `query` request parameter `include_latest_before_start`
  - added the required property `candlesticks/items/open_interest_fp` to the response with the `200` status
  - added the required property `candlesticks/items/volume_fp` to the response with the `200` status
- **2025-11-06** `6ad7527f54aa`: 2 breaking, 15 info
  - the `query` request parameter `period_interval` was restricted to a list of enum values
  - the `candlesticks/items/` response's property type changed from no type to `object` for status `200`
  - added the new enum value `1.00` to the `query` request parameter `period_interval`
  - added the new enum value `1440.00` to the `query` request parameter `period_interval`
  - …13 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/series/:series_ticker/markets/: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)
