Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.openpx.trade/llms.txt

Use this file to discover all available pages before exploring further.

Subscribe inputs and receive frames for the unified trades WebSocket channel, crosswalked against the upstream AsyncAPI specs cached under schema/upstream/. Every source entry is one of three types — direct (taken from upstream), synthetic (constructed by OpenPX), or omitted (not exposed upstream).

Coverage

ExchangeDirectSyntheticOmitted
kalshi331
polymarket250

Subscribe payload

Fieldkalshi sourcepolymarket sourceNotes
market_id#/components/messages/subscribeCommand#/components/messages/subscriptionRequestkalshi: Kalshi auto-subscribes the trade channel alongside orderbook_delta on every subscribe(market_ticker) call. polymarket: Polymarket assets_ids[*]. The market channel emits last_trade_price for the asset; trades on the user channel surface as fills, not trades.
outcomeomittedsynthetickalshi: Trade frames carry side and taker_side; outcome (YES/NO) is implicit per Kalshi binary market. polymarket: Populated only when register_outcomes(yes_token, no_token) was called. Otherwise ActivityTrade.outcome is None.

Receive messages

Variantkalshi sourcepolymarket sourceNotes
Trade#/components/messages/trade#/components/messages/lastTradePricekalshi: Public Kalshi trade frame — exchange-side fills (any maker/taker pair). Mapped to ActivityTrade \{ source_channel: "kalshi_public_trade" \}. polymarket: Polymarket last_trade_price carries the most recent trade for an asset. Mapped to ActivityTrade \{ source_channel: "polymarket_last_trade_price" \}.

Session events

Variantkalshi sourcepolymarket sourceNotes
Connectedsyntheticsynthetic
Reconnectedsyntheticsynthetic
Laggedsyntheticsynthetic
Error#/components/messages/errorResponsesynthetic

Source specs

Tables are auto-generated from schema/mappings/. CI fails if any direct ref no longer resolves in the cached upstream AsyncAPI spec; the daily upstream-refresh PR surfaces drift here.