Room ID:
Endpoint:
Rate: 0.002 credits per message
polymarket_trades Endpoint:
wss://api.struct.to/ws Rate: 0.002 credits per message
Subscribe
All filters are optional. You can combine multiple filters to narrow the stream. A maximum of 500 total filters is allowed per client. If all filters are empty andsubscribe_all is false, the room automatically subscribes to all trades.
Filters
Example
Response
Events
trade_stream_update
The payload is a discriminated union based on the trade_type field. Each variant includes different fields. Below is an example of the most common type, OrderFilled.
OrderFilled / OrdersMatched
price and probability are not the same field:price: the outcome you are looking at (the token inoutcome_index/position_id).probability: always outcome index0(the Yes/Up token), no matter which outcome the payload is about.
outcome_index is 0. On the No side (index 1) they are complements: a price of 0.40 pairs with a probability of 0.60.builder_code is the lower-cased 0x... bytes32 identifier of the integrator that brokered the order (CLOB v2 only). 0x0000… means the order was placed directly through Polymarket. Both builder_code and builder_fee are omitted on v1 trades. See Fetching trades by builder code.Redemption
Merge
Split
PositionsConverted
Cancelled
Oracle Lifecycle
CoversInitialization, Proposal, Dispute, Settled, Resolution, ConditionResolution, Reset, Flag, Unflag, Pause, Unpause, ManualResolution, and NegRiskOutcomeReported.
RegisterToken
MakerRebate / Reward / Yield
pUSD credit paid directly to a trader wallet. The three variants share the same payload shape and differ only bytrade_type. shares_amount, price, fee, fee_shares, and fee_pct are always 0 for payout credits, and taker is the payout distributor address rather than a counterparty.
Pending trades: Fields unavailable from mempool (
block, confirmed_at, log_index, block_index, order_hash, taker, fee, fee_shares, fee_pct) are omitted. received_at (Unix milliseconds) is included instead.