Subscribe message
Send a JSON message after connecting to start receiving events:action are optional.
Subscription types
Thetype field selects a preset of event types. If you also set filters.event_types, it overrides the preset.
Events:
settlement, status_updatePending and confirmed Polymarket settlements. The default subscription type.Events:
settlement, trade, status_updateAll trade activity including confirmed on-chain trades.Events:
settlement, tradePrice-moving events only. Useful for building price feeds.Events:
blockNew Polygon block notifications with Polymarket-specific stats (settlement count, trade volume).Events:
settlement, trade, position_change, deposit, status_update, position_split, position_mergeAll activity for specific wallets. Best used with the wallets filter.Events:
settlement, trade, position_change, status_update, position_split, position_mergeAll activity for specific markets. Best used with tokens, slugs, or condition_ids filters.Events:
settlement, tradeWhale alerts. Defaults to min_size: 1000 ($1K+) unless you set your own.Events: all except
position_split and position_mergeUnfiltered stream of every event (firehose), including oracle events. High throughput — use with caution. This counts toward your plan’s firehose connection limit. To include position_split/position_merge, add them explicitly via the event_types filter override.Firehose refers to any WebSocket subscription with no filters applied — receiving every event at full throughput. Filtered subscriptions (specifying wallets, tokens, slugs, or size thresholds) don’t count toward your firehose limit and use far less bandwidth.
Events:
oracleUMA Optimistic Oracle events: market resolutions, proposals, disputes, flags, and admin actions. See Oracle Event.Events:
price_feedReal-time Chainlink Data Streams prices (~1/second). Use the feeds filter to select specific feeds (e.g. ["BTC/USD"]). See Price Feed Event.Filters
All filters are optional. Omit thefilters object entirely to receive all events matching the subscription type.
Market identification
Filter by Polymarket conditional token IDs. Match if any token in the list appears in the event.
Filter by market URL slugs. Resolved to token IDs at subscribe time — zero performance cost after that.
Filter by Polymarket condition IDs. Resolved to token IDs at subscribe time.
Wallet filtering
Filter by wallet addresses (case-insensitive). Matches if the wallet is involved as maker or taker.
Trade filtering
Filter by trade side. Case-insensitive.Values:
"BUY" or "SELL"Minimum trade size in USD. Events below this size are dropped.
Maximum trade size in USD. Events above this size are dropped.
Filter by settlement status.
| Value | Description |
|---|---|
"pending" | Only pre-chain detections |
"confirmed" | Only confirmed in a block |
"all" | Both pending and confirmed (default) |
Event control
Override the subscription type’s default event list. Valid values:
"settlement", "trade", "status_update", "block", "position_change", "deposit", "position_split", "position_merge"Number of recent matching events to receive immediately after subscribing. Max: 200.
Price feed filtering
Filter by price feed names. Only applies to Omit to receive all available feeds.
chainlink subscriptions.Matching logic
Filters use AND logic between different filter types and OR logic within each filter:- An event must match all active filter categories (wallets AND tokens AND side AND size range)
- Within a category, matching any value is sufficient (wallet A OR wallet B)
- Empty/omitted filters match everything in that category
Multiple subscriptions
You can send multiplesubscribe messages on the same connection — they stack. Each subscribe creates an independent subscription with its own filters. Events matching any of your active subscriptions are delivered, deduplicated so you never receive the same event twice.
Subscribe response
After subscribing, you receive two messages: 1. Snapshot — recent events matching your filters:subscription_id if you need to remove a specific subscription later.

