Kalshi Crypto Market Windows and Series, Explained
Kalshi's crypto tickers look cryptic. Here's how the series map to market windows, and how to pull exactly the cadence you want.
Kalshi organizes its crypto markets into a few series per asset: a 15-minute up/down series (KX{ASSET}15M), a threshold series (KX{ASSET}), and a directional series (KX{ASSET}D). A single threshold or directional series runs hourly, daily, and weekly markets at the same time, so a market's window is a property of the individual market — carried in its market_type field — not of the series alone. DepthFeed exposes that window as a ?type= filter, so you can pull exactly the cadence you want.
The series, per asset
For each crypto asset Kalshi lists, the tickers follow a pattern. Replace {ASSET} with the asset code (e.g. BTC, ETH):
- KX{ASSET}15M — the 15-minute up/down series: rapid-fire markets on whether the asset rises or falls over a 15-minute window.
- KX{ASSET} — the threshold series: 'will the asset be above/below level X' style markets.
- KX{ASSET}D — the directional series.
The window is per-market, carried by market_type
The threshold and directional series each run hourly, daily, and weekly markets concurrently, so you can't read a market's window from its series alone. Kalshi's market_type field carries each market's actual window, and DepthFeed exposes it on the API as a ?type= filter (15m, 1h, 24h, 1w).
One related gotcha: identify the asset from the series prefix, not by substring-matching the ticker. Searching for 'bnb' inside a ticker, for instance, also matches unrelated codes — the series prefix (KX{ASSET}…) is the reliable key for the asset.
Series and windows, at a glance
| Series | Markets it runs | Windows (?type=) |
|---|---|---|
| KX{ASSET}15M | 15-minute up/down | 15m |
| KX{ASSET} | Threshold (above/below) | 1h · 24h · 1w |
| KX{ASSET}D | Directional | 1h · 24h · 1w |
Why this matters for data and backtests
If you try to read a market's window from its series, or detect the asset by substring-matching the ticker, you'll mis-bucket markets and your backtest will compare apples to oranges. Use the series prefix for the asset and the market_type field for the window, and the 15-minute, hourly, daily, and weekly windows stay clean across all seven crypto assets (BTC, ETH, SOL, XRP, DOGE, BNB, HYPE).
All of it is captured with the full yes/no order book, up to 100 levels per side, polled continuously from Kalshi's public REST API; the licensed historical archive extends the same series further back.
Key takeaways
- 01Series per asset: KX{ASSET}15M (15-minute up/down), KX{ASSET} (threshold), KX{ASSET}D (directional).
- 02Threshold and directional series each run hourly, daily, and weekly markets concurrently.
- 03Window is per-market — read it from market_type (filter via ?type=: 15m, 1h, 24h, 1w), not from the series.
- 04Identify the asset by the series prefix, not by substring-matching the ticker.
DepthFeed serves the full Polymarket & Kalshi order book over a REST API and live WebSocket. Free Explorer tier, no card.
Start free