Prediction Hunt/ API
WebSockets / Channels / Prices

Prices

WS·prices·Dev Tier+·KalshiPolymarketOpinionPredictItPredict.fun

Real-time bid, ask, last, and volume for subscribed markets or match groups. Works for any market we ingest — matched cross-platform groups and single-platform markets alike.

Overview

Use case: Power live dashboards, price alerts, and cross-venue comparisons without polling REST.

Requirements

  • Available with a Dev, Pro, or Enterprise API key.
  • Subscribe with market_ids (any platform-native id we ingest) and/or group_ids (matched cross-platform groups).
  • Wildcard subscriptions are not supported — specify at least one id.
  • Requires an authenticated WebSocket session (same as all channels).

Send

FieldTypeRequiredNotes
actionstringyesMust be "subscribe" for this section.
channelstringyesMust be "prices".
market_idsstring[]optionalMarket scope; can be combined with group_ids.
group_idsnumber[]optionalGroup scope; expands to markets linked to each group.
wildcardbehaviornot availableAt least one supported id list should be provided.

Receive

Data messages use the standard envelope: channel, type, ts, data. Types for this channel include: price_update.

After subscribed, you receive a price_update per resolved market that already has a cached tick (same shape as streaming updates). Markets we know about but haven't ticked yet stay subscribed silently and deliver on the next tick — no snapshot, no warning. A warning with code UNKNOWN_ID is only emitted when an id is not in our ingestion universe at all (typo, retired market, or a market we haven't discovered yet).

Data fields (inside data)

FieldTypeDescription
market_idstringPlatform-native market identifier.
sourcestringe.g. kalshi, polymarket, opinion.
group_idint?Match group id when the market is linked across platforms. Omitted for single-platform markets.
yes_bid / yes_asknumberYES side best bid and ask (0–1).
no_bid / no_asknumberNO side best bid and ask (0–1).
last_pricenumberLast traded price.
volumenumberReported volume.
tsnumberPayload timestamp from cache when present.