Skip to main content
Event: price_threshold
Endpoint: wss://api.struct.to/ws/alerts
Cost: 0.2 credits per event
Get notified when an outcome’s price (implied probability) crosses a target level. It is edge-triggered: it fires once on the crossing, not on every trade that stays past the level. Set min_probability for an upward target, max_probability for a downward target, or both to watch from either side.

Filters

FilterTypeRequiredDescription
min_probabilitynumberYes*Upward target, 0.0-1.0. Fire when the price crosses up to ≥ this value (e.g. 0.75). *At least one of min_probability or max_probability is required.
max_probabilitynumberYes*Downward target, 0.0-1.0. Fire when the price crosses down to ≤ this value (e.g. 0.25). *At least one of min_probability or max_probability is required.
one_shotbooleanNoUnsubscribe after the first delivery. Requires position_ids or condition_ids
fire_if_already_pastbooleanNoFire immediately if the first observed price is already past the target
condition_idsstring[]NoRestrict to specific conditions (max 500)
position_idsstring[]NoRestrict to specific positions (max 500)
outcomesstring[]NoFilter by outcome name, e.g. ["Yes", "No"] (max 500)
position_outcome_indicesnumber[]NoFilter by outcome index: 0 or 1 (max 500)
event_slugsstring[]NoRestrict to specific events (max 500)
tagsstring[]NoRestrict to markets carrying any of these tags or category names, case-insensitive (max 500)
series_slugsstring[]NoRestrict to markets in any of these series by slug, case-insensitive (max 500)
exclude_shortterm_marketsbooleanNoExclude short-term updown markets from results
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.

Subscribe

Fire when a specific market’s YES outcome crosses up through 75%:
{
  "op": "subscribe",
  "event": "price_threshold",
  "condition_ids": ["0x4fec624c0ff2bfae89956cebd6fbc9c58f995f824382dc587dc5a32a4b15940b"],
  "min_probability": 0.75
}

Response

{
  "event": "price_threshold",
  "timestamp": 1775913505260,
  "data": {
    "trader": "0x9d84cef98b41a5b88dafb55c05e9a7e0f1a4f4d6",
    "taker": "0x4bfb41d5b3570defd03c39a9a4d8de6bd8b8982e",
    "position_id": "452312848583266388373324160190187140051835877600158453279131187530910662656",
    "condition_id": "0x4fec624c0ff2bfae89956cebd6fbc9c58f995f824382dc587dc5a32a4b15940b",
    "outcome": "Yes",
    "outcome_index": 0,
    "question": "Will candidate X win the 2028 election?",
    "market_slug": "will-candidate-x-win",
    "event_slug": "us-presidential-election-2028",
    "trade_id": "0x9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0b",
    "hash": "0x1f2e3d4c5b6a7988deadbeefcafebabe0011223344556677889900aabbccddee",
    "block": 19456789,
    "confirmed_at": 1713012000,
    "amount_usd": 5000.00,
    "shares_amount": 5263.16,
    "fee": 50.00,
    "side": "Buy",
    "previous_price": 0.72,
    "price": 0.76,
    "probability": 0.76,
    "direction": "up",
    "threshold": 0.75
  }
}
Last modified on June 15, 2026