Kalshi Data Dictionary

Cross-sport betting and DFS rows point at an underlying event through a polymorphic (league_code, competition_id) pair, resolved through the main.competitions view — competition_id is a team-sport games.id or a golf.tournaments.id.

Main

kalshi.series9 fieldsendpoints →

Families of related Kalshi binary markets organized around a common theme — all NBA game-winner markets, all NBA spread markets, all NFL totals markets, election markets, weather markets. Tracks series-level metadata and sync state.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
categorystringSports > Football > NFLe.g. "Sports > Basketball > NBA"
ValuesSports > Football > NFLSports > Basketball > NBASports > Baseball > MLBSports > Golf > PGASports > Hockey > NHL
contract_typestringnullablegw"gw", "spread", "ou"
fetched_attimestamptz2026-06-19T12:24:51.121Z
frequencystringnullable"daily", "weekly"
is_activebooleantrue
league_codestringnullablenfle.g. "nba", "nfl", null for non-sport
Valuesnflnbamlbgolfnhl
series_tickerstringKXNBAGAMEe.g. "KXNBAGAME"
titlestringMVE NFL Pre Pack
kalshi.events15 fields· 1 refsendpoints →

A real-world event that anchors a set of Kalshi markets — for sports, a specific game or matchup; for politics, an election or vote; for finance, a price level on a target date. E.g., MEM@POR game-winner event has 2 markets (MEM wins, POR wins).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
competition_idbigintnullable6005250Polymorphic cross-schema ref — {league}.games (team sports) or golf.tournaments (golf), resolved during sync by league_code. Dereference via main.competitions. NULL until linked.
league_game_idstringnullableNBA CDN game ID for fallback cross-ref
series_idbigintkalshi.series1
away_teamstringnullableSASTricode: "MEM"
categorystringSports > Basketball > NBA
ValuesSports > Basketball > NBASports > Football > NFLSports > Golf > PGA
event_tickerstringKXNBAGAME-26FEB12DALLALe.g. "KXNBAGAME-26FEB06MEMPOR"
fetched_attimestamptz2026-03-30T01:56:47.997Z
game_datedatenullable2026-04-26T04:00:00.000ZGame date for sport events
home_teamstringnullableSASTricode: "POR"
league_codestringnullablenbaDenormalized for filtering
Valuesnbanflgolf
market_countintegernullable11
settled_attimestamptznullable
statusstringclosed"open", "closed", "settled"
titlestringToronto wins by over 8.5 Points?
kalshi.markets23 fields· 2 refsendpoints →

An individual binary contract on Kalshi — a YES/NO question with a defined resolution date and rule, priced between 0 and 100 cents. Stores latest known state (overwritten on sync).

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
competition_idbigintnullable73851Polymorphic cross-schema ref (denormalized from event) — {league}.games or golf.tournaments, by league_code. Dereference via main.competitions. NULL until linked.
event_idbigintkalshi.events66
series_idbigintkalshi.series2Denormalized from event for direct queries
close_timetimestamptznullable2026-02-27T03:00:00.000Z
contract_typestringspread"gw", "spread", "ou"
Valuesspreadgwou
expiration_timetimestamptznullable2026-02-26T00:30:00.000Z
fetched_attimestamptz2026-02-23T05:31:45.400Z
last_priceintegernullable1Cents (1-99)
linedecimalnullable1.5000Spread line for spread markets (e.g., -3.5). UNRELIABLE for ou (totals) markets — mostly null, and populated values hold the playoff series game number, not the total; parse the numeric ticker suffix (e.g. …-238 ⇒ 238) for the O/U line.
liquidityinteger0
open_interestinteger1304
open_timetimestamptznullable2026-02-07T02:07:00.000Z
resultstringnullableno"yes", "no", "scalar", null if undetermined
Valuesnoyesscalar
settled_attimestamptznullable2026-01-20T02:37:00.941ZSettlement timestamp from Kalshi settlement_ts
settlement_valueintegernullable0Settlement payout for YES side in cents (0-100 for binary, 1-99 possible for scalar)
statusstringfinalized"initialized", "inactive", "active", "closed", "determined", "disputed", "amended", "finalized"
subtitlestringnullable
tickerstringKXNBAGAME-26FEB12DALLAL-LALe.g. "KXNBAGAME-26FEB06MEMPOR-POR"
titlestringLos Angeles C at Houston: Total Points
volumeinteger2226Lifetime volume
yes_askintegernullable100Cents. 1-99 while an order book exists; 100 when there is no resting ask (the common state on settled markets).
yes_bidintegernullable0Cents. 1-99 while an order book exists; 0 when there is no resting bid (the common state on settled markets).

Markets

kalshi.market_statuses6 fieldsendpoints →

The trading-status period log for each Kalshi market — one row per state change with start/end timestamps, recording when the market was open, closed, settled, etc. Sparse coverage — captured 2025-10 through 2026-02 for ~1,500 markets; not currently updating.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
detailsjsonbnullable[object Object]
end_tstimestamptz2025-10-23T03:00:00.000Z
start_tstimestamptz2025-10-23T03:01:00.000Z
statusstringHALTED_FILLED"open", "closed", "settled", etc.
ValuesHALTED_FILLEDFILLEDDETECTED
tickerstringKXNBAGAME-25OCT22NOPMEM-NOP
kalshi.candles15 fields· 1 refsendpoints →

OHLC candlestick price summaries for Kalshi markets — the open, high, low, and close prices over standard time bins (1 minute, 5 minute, 1 hour, 1 day), with traded volume per bin. Flattened columns (not JSON) for SQL queryability.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
market_idbigintkalshi.markets8
end_period_tsinteger1770781714Unix timestamp of period end
open_interestinteger0OI at period end
period_intervalinteger1Seconds (1, 60, 3600, 86400)
tickerstringKXNBAGAME-26FEB11MEMDEN-DENDenormalized
ValuesKXNBAGAME-26FEB11MEMDEN-DENKXNBAGAME-26FEB11OKCPHX-PHX
volumeinteger1Period volume
yes_ask_closeintegernullable86
yes_ask_highintegernullable86
yes_ask_lowintegernullable30
yes_ask_openintegernullable86
yes_bid_closeintegernullable86
yes_bid_highintegernullable86
yes_bid_lowintegernullable30
yes_bid_openintegernullable86Cents
kalshi.market_snapshots11 fields· 1 refsendpoints →

Time-series price captures for Kalshi markets — the YES bid/ask and NO bid/ask, last trade price, and order-book depth recorded as prices move throughout the trading session. Same pattern as nba.game_line.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
market_idbigintkalshi.markets
captured_attimestamptz
is_openingbooleanFirst snapshot for this market
last_priceintegernullable
liquidityinteger
open_interestinteger
tickerstringDenormalized for efficient queries
volumeintegerCumulative at capture time
yes_askintegernullable
yes_bidintegernullable
kalshi.public_trades14 fields· 1 refsendpoints →

Every executed trade on Kalshi — price, size, side (YES or NO), and timestamp, comprising the public market tape. Represents completed market trades across all users.

FieldTypeReferencesExampleDescription
idkeybigintPrimary Key
market_idbigintkalshi.markets900
trade_idstringbefe59d2-106d-6057-517e-eeddd083eba6
countinteger1
count_fpstringnullable1.00
created_timetimestamptznullable2026-02-13T05:23:27.794Z
no_priceintegernullable1
no_price_dollarsstringnullable0.0100
pricefloatnullable0.99
raw_payloadjsonb[object Object]
taker_sidestringnullableno"yes" | "no"
Valuesnoyes
tickerstringKXNBATOTAL-26FEB12DALLAL-229
yes_priceintegernullable99
yes_price_dollarsstringnullable0.9900