Skip to main content

fetch_markets

Returns one page of markets plus an opaque cursor. Signature
async fn fetch_markets(
    params: &FetchMarketsParams,
) -> Result<(Vec<Market>, Option<String>), OpenPxError>
FetchMarketsParams
FieldTypeDescription
limitusize?Per-page limit. Capped at 1000 (Kalshi) / 500 (Polymarket).
cursorstring?Opaque cursor returned from a prior call.
statusMarketStatusFilter?active, closed, resolved, or all. Defaults to active.
series_idstring?Kalshi series ticker (e.g. "KXBTC") or Polymarket series ID.
event_idstring?Kalshi event ticker or Polymarket event ID/slug. When set, series_id, cursor, and limit are ignored.
use openpx::{FetchMarketsParams, MarketStatusFilter};

let params = FetchMarketsParams {
    status: Some(MarketStatusFilter::Active),
    limit: Some(100),
    ..Default::default()
};
let (markets, cursor) = ex.fetch_markets(&params).await?;

fetch_market

Fetch a single market by its native ID. Signature
async fn fetch_market(market_id: &str) -> Result<Market, OpenPxError>
Exchangemarket_id format
KalshiTicker, e.g. KXBTC-25MAR14-T20000
PolymarketCondition ID, e.g. 0x311d0c4b…
let market = ex.fetch_market("KXBTC-25MAR14-T20000").await?;
See the Market schema for every field returned.