Skip to main content
Room ID: polymarket_position_metrics
Endpoint: wss://api.struct.to/ws
Rate: 0.025 credits per message
Stream OHLC, volume, and probability metrics for individual outcome positions. Updates are pushed whenever position-level metrics change within the tracked timeframe windows.

Subscribe

The position_ids filter is required. You may optionally specify timeframes to limit which windows you receive. A maximum of 100 filters is allowed per client.

Filters

FilterTypeRequiredDescription
position_idsstring[]YesOutcome token IDs to track
timeframesstring[]NoTimeframe windows to receive updates for

Example

{
  "type": "join_room",
  "payload": {
    "room_id": "polymarket_position_metrics"
  }
}
{
  "type": "room_message",
  "payload": {
    "room_id": "polymarket_position_metrics",
    "message": {
      "action": "subscribe",
      "position_ids": ["12345"]
    }
  }
}

Response

{
  "type": "position_metrics_stream_subscribe_response",
  "room_id": "polymarket_position_metrics",
  "data": {
    "position_ids": ["12345"],
    "timeframes": [],
    "rejected": []
  }
}

Events

position_metrics_update

{
  "type": "position_metrics_update",
  "room_id": "polymarket_position_metrics",
  "data": {
    "condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "position_id": "12345678901234567",
    "outcome": "Yes",
    "outcome_index": 0,
    "timeframe": "1h",
    "timestamp": 1743500000,
    "usd_volume": "45000.00",
    "usd_buy_volume": "28000.00",
    "usd_sell_volume": "17000.00",
    "fees": 90.0,
    "txns": 120,
    "buys": 80,
    "sells": 40,
    "unique_traders": 35,
    "price_open": 0.62,
    "price_close": 0.65,
    "price_high": 0.67,
    "price_low": 0.60,
    "probability_open": 0.62,
    "probability_close": 0.65,
    "probability_high": 0.67,
    "probability_low": 0.60
  }
}
Last modified on April 13, 2026