Skip to main content
Prediction Market data is currently in beta. It is actively being worked on and improved, but may be unreliable. Polymarket data is live, and Kalshi data will be added soon.Subscriptions require a Growth or Enterprise plan. Learn more.

Returns

Arguments

Subscription example

subscription {
  onPredictionMarketBarsUpdated(marketId: "0x25aa90b3cd98305e849189b4e8b770fc77fe89bccb7cf9656468414e01145d38:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137") {
    bars {
      min1 {
        t
        volumeUsd
        volumeCollateralToken
        volumeShares
        uniqueTraders
        trades
        lastEventTimestamp
        allTimeVolumeUsd
        openInterestUsd {
          o
          h
          l
          c
        }
        outcome0 {
          venueOutcomeId
          trades
          buys
          sells
          volumeShares
          buyVolumeShares
          sellVolumeShares
          volumeUsd
          buyVolumeUsd
          sellVolumeUsd
          priceUsd {
            o
            h
            l
            c
          }
          liquidityUsd {
            o
            h
            l
            c
          }
        }
        outcome1 {
          venueOutcomeId
          trades
          volumeShares
          volumeUsd
          priceUsd {
            o
            h
            l
            c
          }
        }
      }
      hour1 {
        t
        volumeUsd
        allTimeVolumeUsd
        outcome0 {
          volumeUsd
          priceUsd {
            o
            h
            l
            c
          }
        }
      }
      day1 {
        t
        volumeUsd
        allTimeVolumeUsd
        outcome0 {
          priceUsd {
            o
            c
          }
        }
      }
    }
  }
}
Example Response
{
  "data": {
    "onPredictionMarketBarsUpdated": {
      "bars": {
        "min1": {
          "t": 1773357420,
          "volumeUsd": "1.999905",
          "volumeCollateralToken": "2",
          "volumeShares": "1000000000",
          "uniqueTraders": 1,
          "trades": 1,
          "lastEventTimestamp": 1773357437,
          "allTimeVolumeUsd": "124698566.079866",
          "openInterestUsd": {
            "o": "8218458.66957",
            "h": "8218458.66957",
            "l": "8218458.66957",
            "c": "8218458.66957"
          },
          "outcome0": {
            "venueOutcomeId": "54073086346734626735797775941991553522163760164405051969883391401961188364109:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137",
            "trades": 1,
            "buys": 1,
            "sells": 0,
            "volumeShares": "1000000000",
            "buyVolumeShares": "1000000000",
            "sellVolumeShares": "0",
            "volumeUsd": "1.999905",
            "buyVolumeUsd": "1.999905",
            "sellVolumeUsd": "0",
            "priceUsd": {
              "o": "0.002",
              "h": "0.002",
              "l": "0.002",
              "c": "0.002"
            },
            "liquidityUsd": {
              "o": "7899206.931142",
              "h": "7899206.931142",
              "l": "7897876.523427",
              "c": "7897876.523427"
            }
          },
          "outcome1": {
            "venueOutcomeId": "111080671036126109659854287535401661966194360665829017654832975124868412594547:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137",
            "trades": 0,
            "volumeShares": "0",
            "volumeUsd": "0",
            "priceUsd": {
              "o": "0.998954",
              "h": "0.998954",
              "l": "0.998954",
              "c": "0.998954"
            }
          }
        },
        "hour1": {
          "t": 1773356400,
          "volumeUsd": "6583.556291",
          "allTimeVolumeUsd": "124698566.079866",
          "outcome0": {
            "volumeUsd": "1.999905",
            "priceUsd": {
              "o": "0.002",
              "h": "0.002",
              "l": "0.002",
              "c": "0.002"
            }
          }
        },
        "day1": {
          "t": 1773273600,
          "volumeUsd": "2790868.223935",
          "allTimeVolumeUsd": "124698566.079866",
          "outcome0": {
            "priceUsd": {
              "o": "0.002",
              "c": "0.002"
            }
          }
        }
      }
    }
  }
}

Usage Guidelines

  • Market ID format:
    • Polymarket: <marketAddress>:Polymarket:<exchangeAddress>:<networkId> (e.g., 0x25aa90b3cd98305e849189b4e8b770fc77fe89bccb7cf9656468414e01145d38:Polymarket:0xc5d563a36ae78145c45a50134d48a1215220f80a:137)
    • Kalshi: <marketSlug>:Kalshi (e.g., KXMVECROSSCATEGORY-S2026A4A05B370DF-F1FBA451AA9:Kalshi)
  • Subscribe using marketId to receive live bar chart data for a specific prediction market (outcome)
  • Price OHLC values range from 0.00 to 1.00, representing the probability (0% to 100%) of that outcome
  • Updates stream in real-time as trades occur on the specific market

Troubleshooting Tips

Market bars (onPredictionMarketBarsUpdated) track individual outcomes with price OHLC data, while event bars (onPredictionEventBarsUpdated) aggregate data across all outcomes. Use market bars for charting outcome probabilities and event bars for overall event activity.
Each outcomeX field represents one possible result in the market. For binary markets, outcome0 is typically “Yes” and outcome1 is “No”. For multi-outcome markets, there may be outcome2, outcome3, etc. Check the market metadata via getPredictionMarkets to see outcome labels.
In theory, all outcome prices should sum to 1.00 (representing 100% probability across all possibilities). In practice, prices may not sum exactly to 1.00 due to spreads, liquidity, and arbitrage opportunities. Large deviations indicate market inefficiency or low liquidity.
volumeShares tracks the number of outcome shares traded, while volumeUsd tracks the USD value of those shares. Since share prices fluctuate (e.g., 0.65 per share), the same number of shares has different USD values over time. Use volumeShares for share-based analysis and volumeUsd for monetary analysis.
For real-time price tracking, use min1 or min5. For intraday charts, use min15 or hour1. For daily overviews, use hour4 or day1. Higher resolutions reduce noise but may miss short-term price movements. Request only needed resolutions to minimize data transfer.
Use the buys and sells counts along with buyVolumeUsd and sellVolumeUsd within each outcome’s data. More buys than sells (or higher buy volume) indicates bullish sentiment on that outcome, while the opposite suggests bearish sentiment.