exchange_valueinteger required
exchange_namestring required
token_id_yesstring nullable
token_id_nostring nullable
tick_size_pricenumber required
tick_size_qtynumber required
minimum_order_sizenumber required
expiration_datetimestring nullable
Market expiration datetime (UTC)
start_datetimestring nullable
Game/event start datetime (UTC). Populated for sports; null otherwise.
open_datetimestring nullable
When the exchange opened the market for trading (UTC).
neg_risk_idstring nullable
condition_idstring nullable
descriptionstring nullable
status'active' | 'closed' | 'inactive' required
Instrument status derived in instruments table from exchange-specific fields.
Kalshi: maps from kalshi_markets.status
- 'active' -> ACTIVE
- everything else (closed, determined, finalized, settled, amended, inactive, initialized) -> CLOSED
Polymarket: maps from polymarket_markets.closed and polymarket_markets.active booleans
- closed=true -> CLOSED
- active=true (and not closed) -> ACTIVE
- else (active=false, closed=false) -> INACTIVE
subcategorystring nullable
event_tickerstring nullable
event_titlestring nullable
event_subtitlestring nullable
flipboolean nullable
Generic-asset members only: true when this member's YES side is the opposite of the asset's outcome. NULL outside basket-member contexts.
volume_24hinteger nullable
series_tickerstring nullable
last_pricenumber nullable
Most recent YES price normalized to 0.0–1.0 (probability). Kalshi cents / 100; Polymarket already 0.0–1.0. NULL when no trade has been observed.
primary_entity_namestring nullable
Resolved display name of the canonical structured-target entity (player, team, competitor, …) referenced by the market. NULL for markets without a structured target. Kalshi only — Polymarket has no equivalent concept.
event_market_countinteger nullable
Total number of markets in this row's event. Only populated on the event-paginated path; when markets_per_event trims an event, this is how clients know more markets exist than were returned.