pub struct Market {Show 25 fields
pub openpx_id: String,
pub exchange: String,
pub ticker: String,
pub event_ticker: Option<String>,
pub numeric_id: Option<String>,
pub title: String,
pub rules: Option<String>,
pub status: MarketStatus,
pub market_type: MarketType,
pub outcomes: Vec<Outcome>,
pub condition_id: Option<String>,
pub volume: f64,
pub volume_24h: Option<f64>,
pub last_trade_price: Option<f64>,
pub best_bid: Option<f64>,
pub best_ask: Option<f64>,
pub tick_size: Option<f64>,
pub min_order_size: Option<f64>,
pub close_time: Option<DateTime<Utc>>,
pub open_time: Option<DateTime<Utc>>,
pub created_at: Option<DateTime<Utc>>,
pub settlement_time: Option<DateTime<Utc>>,
pub neg_risk: Option<bool>,
pub neg_risk_market_id: Option<String>,
pub result: Option<String>,
}Expand description
A prediction market on the unified surface. Prices are YES probabilities in [0, 1].
Fields§
§openpx_id: StringOpenPX primary key in <exchange>:<ticker> form (e.g. "kalshi:KXBTCD-25APR1517").
exchange: StringSource exchange. Options: kalshi, polymarket.
ticker: StringNative ticker — Kalshi market ticker or Polymarket slug (e.g. "KXBTCD-25APR1517").
event_ticker: Option<String>Parent event ticker — Kalshi event_ticker or Polymarket event slug (e.g. "KXBTC-25MAR14").
numeric_id: Option<String>Polymarket numeric DB id used for REST deep-links (e.g. "1031769"); null on Kalshi.
title: StringHuman-readable market title (e.g. "Will BTC close above $100k on Apr 15?").
rules: Option<String>Resolution rules in plain text; null when upstream omits them.
status: MarketStatusLifecycle state. Options: active, closed, resolved.
market_type: MarketTypeOutcome shape. Options: binary, categorical, scalar.
outcomes: Vec<Outcome>Ordered outcomes; binary markets have two ("Yes", "No"), categorical have N.
condition_id: Option<String>Polymarket CTF condition id (e.g. "0xabc..."); null on Kalshi.
volume: f64Lifetime trading volume in USD (e.g. 12345.67).
volume_24h: Option<f64>24-hour trading volume in USD; null when upstream omits it.
last_trade_price: Option<f64>Last trade price as YES probability in [0, 1] (e.g. 0.62).
best_bid: Option<f64>Best bid as YES probability in [0, 1] (e.g. 0.61).
best_ask: Option<f64>Best ask as YES probability in [0, 1] (e.g. 0.63).
tick_size: Option<f64>Minimum price increment in dollars (e.g. 0.01).
min_order_size: Option<f64>Minimum order size in contracts (e.g. 1.0).
close_time: Option<DateTime<Utc>>Market close time in UTC (e.g. "2026-04-25T20:00:00Z").
open_time: Option<DateTime<Utc>>Market open time in UTC.
created_at: Option<DateTime<Utc>>Market creation time in UTC.
settlement_time: Option<DateTime<Utc>>Settlement time in UTC; null until the market resolves on-chain.
neg_risk: Option<bool>Polymarket neg-risk flag; null on Kalshi.
neg_risk_market_id: Option<String>Polymarket neg-risk market id; null on Kalshi.
result: Option<String>Winning outcome label after settlement (e.g. "Yes"); null until resolved.
Implementations§
Source§impl Market
impl Market
Sourcepub fn make_openpx_id(exchange: &str, ticker: &str) -> String
pub fn make_openpx_id(exchange: &str, ticker: &str) -> String
Create openpx_id from exchange and ticker
Sourcepub fn parse_openpx_id(openpx_id: &str) -> Option<(&str, &str)>
pub fn parse_openpx_id(openpx_id: &str) -> Option<(&str, &str)>
Parse openpx_id into (exchange, ticker)
Sourcepub fn matches_search(&self, query: &str) -> bool
pub fn matches_search(&self, query: &str) -> bool
Check if market matches search query (case-insensitive)
pub fn is_binary(&self) -> bool
pub fn is_open(&self) -> bool
Sourcepub fn outcome(&self, label: &str) -> Option<&Outcome>
pub fn outcome(&self, label: &str) -> Option<&Outcome>
Find an outcome by label (case-insensitive).
Sourcepub fn token_id_yes(&self) -> Option<&str>
pub fn token_id_yes(&self) -> Option<&str>
Yes-side token id, when exposed (Polymarket binary markets).
Sourcepub fn token_id_no(&self) -> Option<&str>
pub fn token_id_no(&self) -> Option<&str>
No-side token id, when exposed (Polymarket binary markets).