Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.oddpool.com/llms.txt

Use this file to discover all available pages before exploring further.

Four channel types, one envelope. Every message arrives wrapped in:
{"channel": "dist:fomc-2026-04-29", "data": { ... }}
The wrapper has exactly two top-level fields: channel (string) and data (object). Filter your message handler on channel, not on a type field — there is no type field in the wire format.

Channel types

ChannelSubscribe toDescriptionTier
distdist:fomc-2026-04-29Cross-venue probability distribution for all outcomesFree
bookbook:fomc-2026-04-29:holdNormalized orderbook updates for one outcomePro
tradetrade:fomc-2026-04-29:holdTrade executions for one outcomePro
snapshotsnapshot:fomc-2026-04-29Full state reset every 60s for all outcomesPro
dist and snapshot are event-level channels — subscribe with just the event_key. book and trade are per-outcome channels — append :{outcome_key} (use ?expand=channels on /feeds/catalog to get a ready-to-paste list). snapshot payload differs from dist: snapshot wraps the per-outcome list under data.distribution and adds full orderbook state per outcome. dist uses data.outcomes.

Distribution

Shows the market-implied probability for every outcome in an event, combining data from both venues.
{
  "event_key": "fomc-2026-04-29",
  "seq": 312,
  "published_ts": 1773892530947,
  "outcomes": [
    {
      "outcome": "hold",
      "label": "Fed maintains rate",
      "kalshi_prob": 0.945,
      "poly_prob": 0.955,
      "prob": 0.9479,
      "kalshi_depth_usd": 4714197.04,
      "poly_depth_usd": 1965879.48
    }
  ],
  "total_kalshi_depth_usd": 4784397.57,
  "total_poly_depth_usd": 2104564.65,
  "reference": {
    "source": "binance",
    "symbol": "BTCUSDT",
    "spot_bid": 68641.30,
    "spot_ask": 68641.31,
    "spot_mid": 68641.30,
    "futures_mark": 68723.51,
    "funding_rate": -0.00002124,
    "volume_24h": 951752117.03,
    "ts": 1774246512319
  }
}
FieldDescription
probCombined probability, weighted by each venue’s liquidity. Kalshi at 94.5% with 4.7M USD depth + Polymarket at 95.5% with 2.0M USD depth = 94.79%.
kalshi_prob / poly_probEach venue’s YES mid-price (best bid + best ask) / 2. Null if that venue has no data.
kalshi_depth_usd / poly_depth_usdTotal USD within +/-5c of mid on each venue. Shows how much liquidity backs each probability.
referenceExternal reference data (e.g., Binance spot/futures for crypto events). Only present on enriched feeds. See crypto feed for field details.

Book update

Normalized orderbook updates from both venues. Prices are contract prices (0-1), sizes are absolute quantities. Derived fields like best bid/ask, mid, spread, and depth are pre-computed on every update.
{
  "event_key": "fomc-2026-04-29",
  "outcome": "hold",
  "venue": "polymarket",
  "token": "yes",
  "venue_id": {
    "condition_id": "0x36e8ca2...",
    "token_id": "63586620628..."
  },
  "seq": 4217,
  "exchange_ts": 1773892530351,
  "received_ts": 1773892530360,
  "published_ts": 1773892530363,
  "update_type": "delta",
  "levels": [
    {"side": "bid", "price": "0.955", "size": 8300.00},
    {"side": "ask", "price": "0.965", "size": 0}
  ],
  "best_bid": "0.955",
  "best_ask": "0.965",
  "mid": "0.960",
  "spread": "0.010",
  "bid_depth_usd": 47141.97,
  "ask_depth_usd": 23456.78,
  "reference": { ... }
}
FieldDescription
venue_idIdentifiers to execute on the venue. Kalshi: market ticker. Polymarket: condition ID + token ID.
update_type”snapshot” = full book replacement. “delta” = only changed levels. Size of 0 = level removed.
levelsPrice levels with side (bid/ask), price (0-1), and size (absolute quantity after this update).
best_bid / best_ask / mid / spreadPre-computed from full cross-token book state, not just the levels in this update.
bid_depth_usd / ask_depth_usdTotal USD within +/-5c of mid on bid and ask sides.
referenceExternal reference data for enriched feeds. Only present on crypto events. Omitted for macro.

Trade

Every trade execution from both venues, including the specific contract traded, price, quantity, and a venue-provided trade ID.
{
  "event_key": "fomc-2026-04-29",
  "outcome": "hold",
  "venue": "kalshi",
  "token": "no",
  "action": "buy",
  "venue_id": {"market_ticker": "KXFEDDECISION-26APR-H0"},
  "seq": 89,
  "exchange_ts": 1773892530000,
  "received_ts": 1773892530008,
  "published_ts": 1773892530010,
  "price": "0.06",
  "qty": 136.00,
  "trade_id": "a4d77927-dafe-5bde-53ed-80f6129cfd19",
  "reference": { ... }
}

Timestamps

Every book and trade message carries four timestamps (Unix ms) for end-to-end latency decomposition.
FieldDescription
exchange_tsWhen the exchange says the event occurred. Null if not provided by the venue.
received_tsWhen we read the raw message off the venue WebSocket.
published_tsWhen the normalized message was published internally.
gateway_tsWhen the gateway sent the message to your WebSocket.