Skip to content

Candles

Returns OHLCV (Open, High, Low, Close, Volume) candlestick data for Kalshi temperature prediction markets. Prices are in cents (0–100 range for binary markets).

GET /api/v1/candles

NameTypeRequiredDescription
marketstringNoMarket ticker (e.g., KXHIGHNY-26MAR20-T50)
eventstringNoEvent ticker (e.g., KXHIGHNY-26MAR20)
stationstringNoStation code (e.g., NYC)
seriesstringNoSeries ticker (e.g., KXHIGHNY)
fromstringNoStart time (RFC3339 or YYYY-MM-DD). Default: 24h ago
tostringNoEnd time (RFC3339 or YYYY-MM-DD). Default: now
intervalintegerNoCandle interval: 1, 5, 15, 30, 60, 1440
fillstringNoForward-fill gaps. Default: true. JSON only — ignored for csv/parquet
aggregateintegerNoRoll up to a larger interval (minutes). E.g., 60 for hourly
tzstringNoTimezone: UTC (default), station, or IANA name
formatstringNoOutput format: json (default), csv, parquet
columnsstringNoComma-separated column names to include (e.g., close,volume)
limitintegerNoMax results (default 10000)
offsetintegerNoPagination offset

When fill=true (default), gaps between traded candles are filled with the previous close price:

  • open = high = low = close = previous candle’s close
  • volume = 0, open_interest = previous candle’s open_interest
  • filled = true (so you can distinguish real trades from fills)

Set aggregate=60 to roll up 1-minute candles to hourly:

  • open = first candle’s open
  • high = max of all highs
  • low = min of all lows
  • close = last candle’s close
  • volume = sum of all volumes
Terminal window
curl "https://api.mostlyright.xyz/api/v1/candles?market=KXHIGHNY-26MAR20-T50&interval=1&from=2026-03-19T14:00:00Z&to=2026-03-19T14:05:00Z"
from therminal import TherminalClient
client = TherminalClient()
candles = client.candles(
market="KXHIGHNY-26MAR20-T50",
interval=1,
from_date="2026-03-19",
as_dataframe=True, # returns Pandas DataFrame
)
[
{
"market_ticker": "KXHIGHNY-26MAR20-T50",
"period_interval": 1,
"end_period_ts": "2026-03-19T14:02:00Z",
"open": 42,
"high": 45,
"low": 40,
"close": 43,
"volume": 100,
"open_interest": 500,
"filled": false
},
{
"market_ticker": "KXHIGHNY-26MAR20-T50",
"period_interval": 1,
"end_period_ts": "2026-03-19T14:03:00Z",
"open": 43,
"high": 43,
"low": 43,
"close": 43,
"volume": 0,
"open_interest": 500,
"filled": true
}
]
GET /api/v1/candles
Click "Send →" to try it live

Candle data is sourced from the Kalshi API. See Data Sources for full details on coverage, latency, and settlement rules.