Skip to main content
The common.perpetuals.kalshi_orderbook table provides high-freshness orderbook snapshots for Kalshi perpetual markets. Each row captures the full bid and ask ladders for a market at a point in time. Use this table for liquidity analysis, spread monitoring, and market-depth assessment.

Table Columns

Data Notes:
  • One row per market per snapshot (snapshot_ts).
  • bids and asks are arrays of [price, quantity] levels, with prices per contract in US dollars.
  • underlying_bids and underlying_asks are the same ladders with prices converted to the underlying asset (price / contract_size); quantities are unchanged.
Unique Key: unique_key
Column NameData TypeDescription
projectVARCHARProject identifier, always ‘kalshi’.
protocolVARCHARProtocol identifier, always ‘kalshi’.
unique_keyVARCHARUnique identifier for the orderbook snapshot.
market_tickerVARCHARPerp market ticker.
snapshot_tsTIMESTAMP_NTZ(9)Snapshot timestamp.
contract_sizeFLOATUnits of the underlying asset represented by one contract.
bidsARRAYBid levels as an array of [price, quantity] entries (price per contract, USD).
asksARRAYAsk levels as an array of [price, quantity] entries (price per contract, USD).
underlying_bidsARRAYBid levels with prices converted to the underlying asset (USD).
underlying_asksARRAYAsk levels with prices converted to the underlying asset (USD).
bids_depthNUMBERNumber of bid levels in the snapshot.
asks_depthNUMBERNumber of ask levels in the snapshot.
partition_dateDATESnapshot date (used for partitioning).
ingested_atTIMESTAMP_NTZ(9)Timestamp the record was ingested into Allium’s database.

Sample Query

select
  market_ticker,
  snapshot_ts,
  bids_depth,
  asks_depth,
  bids[0] as best_bid,
  asks[0] as best_ask
from common.perpetuals.kalshi_orderbook
where market_ticker = 'KXBTCPERP'
  and partition_date >= current_date - interval '1 day'
order by snapshot_ts desc
limit 100