Skip to main content
A “bond zone” is the near-certain end of a market: an outcome trading at, say, ≥ 95¢ (almost certain to win) or ≤ 5¢ (almost certain to lose). The close_to_bond event fires when a trade prints inside a zone you define, so you can react to outcomes that are effectively resolved before the oracle settles them. The same event and filters are available two ways:

When to use this

  • Resolution front-running: surface markets the crowd already treats as decided, ahead of on-chain settlement.
  • Risk / exit signals: alert when a position you hold flips to near-certain-loss so you can exit the remaining size.
  • Mispricing scans: watch one side of a market for prints at the opposite extreme of where you think it should trade.

Defining the bond zone

The bond zone is defined entirely by how you combine min_price and max_price. The relationship between the two values selects one of four modes:
min < max is a band, not a bond. If you set min_price: 0.75 and max_price: 0.90, you do not get “fires above 90% or below 75%”. Because min < max, it switches to bounded-range mode and fires only when the price lands inside the 75–90% band. To alert on the two near-certain extremes, you must set min > max (see below).

Alerting on near-certain outcomes

To get notified when an outcome becomes near-certain in either direction (at or above 90% or at or below 10%), set min_price higher than max_price:
Because 0.90 > 0.10, this is read as two separate edges. A trade at 96¢ fires with bond_side: "high"; a trade at 4¢ fires with bond_side: "low". For a single edge, set just one of the two.

How price is read

  • The traded position’s own price is used: the price of the exact outcome token (position_id) that printed.
  • Trades at a price of exactly 0 or 1 are skipped, since there is no remaining risk to alert on.
  • price is on a 0.01.0 scale (so 95¢ = 0.95).

Picking the right side

On a binary market, “YES at ≤10%” and “NO at ≥90%” are the same event priced from opposite tokens. If you add position_outcome_indices: [0] you will only ever see trades that print on the Yes/Up token (index 0); trades on the No token (index 1) won’t fire even when they hit the same bond zone. Omit position_outcome_indices to catch the zone regardless of which side the trade prints on.

Examples

A near-certain-win alert for one specific market, Yes side only:
Near-certain wins across whole categories, scoped by tags:
tags matches a market’s tags or its category by display label (for example "Sports", "Crypto Prices"), case-insensitive. Both extremes, scoped to the Yes/Up token so each event alerts once:
Two-edge mode (min_price > max_price) fires from both tokens. On a near-certain market the Yes token near 90¢ triggers bond_side: "high" and the No token near 10¢ triggers bond_side: "low", so each event arrives as two separate deliveries. Add position_outcome_indices: [0] (Yes/Up only) to watch one side and get one delivery per extreme.

Reading the payload

Every delivery tells you which zone was hit and the threshold it breached:
  • bond_side: "high" (near-certain) or "low" (near-zero).
  • threshold: the filter value that was breached. In bounded-range mode this is min_price.
  • price: the value that triggered the alert, on a 0.01.0 scale.
See the full field list on the websocket alert page.

Available filters

At least one of min_price or max_price is required. Without either, every trade in every market would fire.
Scope by market taxonomy. tags matches a market’s own tags or its category, given as the display label shown on Polymarket (for example "Sports", "Politics", or "FIFA World Cup"), not a slug. series_slugs matches the market’s parent series by slug (for example "nba-finals"). Both are case-insensitive, accept up to 500 values each, and an empty or omitted list applies no taxonomy restriction.
Last modified on June 16, 2026