# Tools With a Streaming Feed

Twenty-two cards publish a WebSocket. What comes down it ranges from every order-book delta to a once-a-second broadcast over half-minute-old quotes.

*https://predictionmarkets.tools/collections/streaming-feeds*

## What the flag claims

`interfaces.websocket: true` says the product publishes a persistent connection it pushes down.
It says nothing about what is on that connection, how often it moves, whether a key is needed to
open it, or whether the data behind it is any fresher than a poll would have been. Twenty-two of
the sixty cards here carry it, and behind that one boolean sit at least four unrelated products.

Six of the twenty-two are the platforms themselves — [Kalshi](https://predictionmarkets.tools/tools/kalshi),
[Polymarket](https://predictionmarkets.tools/tools/polymarket), [Polymarket US](https://predictionmarkets.tools/tools/polymarket-us),
[Limitless](https://predictionmarkets.tools/tools/limitless), [Myriad](https://predictionmarkets.tools/tools/myriad) and [Manifold](https://predictionmarkets.tools/tools/manifold) — where the
flag describes the developer surface the platform publishes rather than anything in the app you
sign into. Five of those surfaces have a card of their own:
[kalshi-api](https://predictionmarkets.tools/tools/kalshi-api), [polymarket-clob-api](https://predictionmarkets.tools/tools/polymarket-clob-api),
[polymarket-us-api](https://predictionmarkets.tools/tools/polymarket-us-api), [limitless-api](https://predictionmarkets.tools/tools/limitless-api) and
[manifold-api](https://predictionmarkets.tools/tools/manifold-api). Myriad's stream is documented on its own card. The other
sixteen split evenly: eight data APIs, and eight clients, SDKs and terminals.

## Four things come down these channels

**Every change to the book, as a delta.** Kalshi's WebSocket carries incremental order-book
updates, market tickers, public trades and your own fills; you apply the deltas and hold the book
yourself. [pykalshi](https://predictionmarkets.tools/tools/pykalshi) exists largely because of that — its `OrderbookManager`
applies the deltas and hands back the current book, which it describes as the piece every
market-making script otherwise writes badly once. [Predexon](https://predictionmarkets.tools/tools/predexon) runs an L2
order-book channel among eight Polymarket channels. [DepthFeed](https://predictionmarkets.tools/tools/depthfeed) is the recorded
version of the same idea: a book captured at every change rather than sampled on a clock, with the
raw tick tape of every book change sold on its top tier.

**Snapshots on a cadence.** [Predictefy](https://predictionmarkets.tools/tools/predictefy)'s WebSocket sends full book snapshots
rather than deltas, which is less code on your side — no sequence numbers, no resync — and also
means you cannot reconstruct what happened between two of them. [Polyrama](https://predictionmarkets.tools/tools/polyrama) is the
case to look at hardest: every page that shows market data subscribes to a socket that broadcasts
once a second, over quotes that themselves refresh every 30 seconds. The connection is live. The
number is up to half a minute old, and no amount of push cadence changes that.

**Events rather than prices.** Polymarket US runs a private stream for order, position and balance
updates beside its markets stream, and its batch routes make that stream load-bearing: a 200 on a
batch create is not a result, the per-entry exchange outcome is delivered on the order stream, and
`canceledOrderIds` is an echo of the request rather than a confirmation. If you are not holding
the socket, you do not know what happened. [limitless-sdk](https://predictionmarkets.tools/tools/limitless-sdk) streams position
changes, transactions, order events and market lifecycle events alongside book and price updates.
[manifold-api](https://predictionmarkets.tools/tools/manifold-api) has a per-market topic for updates to resting limit orders.

**Observations from before anything has settled.** Predexon's pending-trades channel reports
Polymarket fills seen in the Polygon public mempool before they are mined, which the vendor
describes as three to five seconds ahead of confirmation — and the documentation is careful that a
mempool observation is not a trade, since some never confirm. Its other channels carry UMA oracle
proposals and disputes, splits and merges, and collateral movements. None of that is a price, and
all of it moves before one does.

Most of these carry two channels rather than one, split by what they authenticate. Polymarket's
CLOB API is the clearest example: a public market channel with book snapshots, price changes, last
trade prices and tick-size changes, and a separate authenticated user channel carrying only your
own orders and fills. Polymarket's Python SDK subscribes across four — the CLOB market and user
channels plus the live-data and sports feeds — and handles reconnection and heartbeats for you,
which is work you would otherwise do twice. When you are reading the flag on a card, the question
worth asking is which of those two halves you actually need, because the public one is often free
and the private one is usually what the identity check is protecting.

## Whether it opens without a key

There is no rule here, so it has to be read per card.

- **Open.** Limitless's public channels for prices and market lifecycle answer without
  authentication, over Socket.IO on a `/markets` namespace. Manifold's WebSocket takes topic
  subscriptions with no key at all, and wants a ping every 30 to 60 seconds or it closes the
  connection. Myriad's read access is open, with a key issued on request only to raise the rate
  limit.
- **Signed, even for public data.** Kalshi's REST market data answers unauthenticated GETs, but
  the WebSocket handshake itself returns 401 without signed headers — including for channels that
  carry nothing but public data. There is no keyless live stream on that venue.
- **Gated behind an identity check.** Polymarket US's public gateway needs no key for markets,
  books and price history, but the developer key that opens either WebSocket requires the iOS app,
  an account and identity verification. That gate sits on the streams, not only on the writes.
- **Not sold at the bottom of the price list.** Predexon's free plan has no WebSocket at all; its
  Dev plan caps you at 10 subscriptions of 10 items across three channels, and Pro at 100
  subscriptions of 500 items or two wildcard subscriptions per channel.

## A stream is a meter

Two products here charge for the connection in a way that makes the market's own activity your
bill. [PMXT](https://predictionmarkets.tools/tools/pmxt) prices one REST call at one credit and one WebSocket message at 0.1, so
a book that ticks ten times a second exhausts the free month's credits in about seven hours of
streaming. Predictefy charges 2 credits per connection-minute — except for a Polymarket
pending-fills subscription, which is 800, a factor of four hundred, and about half an hour of the
free plan's 25,000 monthly credits.

Where the meter is not credits it is connections: PMXT allows 5 streams free, 20 on Starter and
100 on Pro; DepthFeed runs 5 subscriptions on one connection at 29 US dollars a month and 100 with
wildcards across five connections at 249. Working out what you can afford to watch is a question
about how many markets you need at once, and that number is usually larger than people expect.

One venue lets you find out before it costs anything: Kalshi runs a full demo environment on
separate hosts with separate credentials, which makes it the one place in this collection where a
streaming integration can be rehearsed without live money. Limitless is explicit about the
opposite — no sandbox, no testnet, no mock mode — and suggests rehearsing with minimum-size live
orders on a low-volume market instead.

## Async only, Node only, and per-venue

The flag is silent on three constraints that decide whether a stream fits your code at all.

Streaming is async in most of these SDKs and only async.
[polymarket-client](https://predictionmarkets.tools/tools/polymarket-client) implements `subscribe()` on its async clients and
not on the synchronous ones, so a sync script that wants live book updates has to poll or move.
[polymarket-us-python](https://predictionmarkets.tools/tools/polymarket-us-python) ships both a sync and an async client and both
of its WebSocket connections are async-only regardless. limitless-sdk is async throughout, on
`python-socketio`.

[polymarket-us-typescript](https://predictionmarkets.tools/tools/polymarket-us-typescript) adds a second constraint: its
WebSocket half checks for `window.document` and throws, because the exchange authenticates streams
with headers a browser WebSocket cannot send. Streaming there is Node-only by design, not by
omission.

And on a cross-venue client, streaming is per-venue even when the REST is unified.
[CCXT](https://predictionmarkets.tools/tools/ccxt) covers seven event venues in its prediction namespace, and live watch methods
exist for Polymarket, Myriad and Opinion only — Kalshi, Limitless, Binance and Hyperliquid have
none. One unified interface, four venues you still have to poll.

## What it changes, and what it does not

The honest reason most readers end up needing one of these is fan-out rather than speed.
Limitless documents it plainly: there is no batched order-book endpoint, one market per request,
and following several markets means the WebSocket. Polling thirty markets inside a rate limit is
the problem a stream solves.

What it does not solve is depth. A push feed shortens the distance between a change in the book
and your code seeing it; it does nothing about how much is resting in that book, and on the
short-dated markets most of these feeds specialise in, that is the number that decides your fill.
[Where the liquidity comes from](https://predictionmarkets.tools/guides/where-liquidity-comes-from) is the page for that, and
[what a trade actually costs](https://predictionmarkets.tools/guides/what-a-trade-actually-costs) for the fees and spread a
faster quote does not reduce. Predexon's own framing of its mempool channel is the right posture
for the whole collection: a leading indicator, not a fill.

Nothing in this collection has been streamed by this site against a funded account. Channel
contents, credit weights, connection limits and authentication rules above are read from each
vendor's own documentation and dated on the cards.

## Cards

- [CCXT](https://predictionmarkets.tools/tools/ccxt.md) — One client for seven prediction venues, inside a 104-exchange crypto library.
- [DepthFeed](https://predictionmarkets.tools/tools/depthfeed.md) — The recorded bid-ask ladder for crypto up-or-down markets, which no venue keeps itself.
- [Kalshi API](https://predictionmarkets.tools/tools/kalshi-api.md) — REST, WebSocket and FIX access to a CFTC-regulated event exchange.
- [Kalshi](https://predictionmarkets.tools/tools/kalshi.md) — A CFTC-designated exchange for event contracts, settled in dollars against named sources.
- [Limitless API](https://predictionmarkets.tools/tools/limitless-api.md) — REST and WebSocket for markets, books, candles and trading on Base.
- [limitless-sdk](https://predictionmarkets.tools/tools/limitless-sdk.md) — Limitless Exchange's own async Python SDK - CLOB and NegRisk orders, WebSocket, MIT.
- [Limitless](https://predictionmarkets.tools/tools/limitless.md) — Event contracts on Base, collateralised in USDC, traded on a central limit order book.
- [Manifold API](https://predictionmarkets.tools/tools/manifold-api.md) — Every read is keyless, the server is MIT-licensed, and the currency is play money.
- [Manifold](https://predictionmarkets.tools/tools/manifold.md) — Anyone can open a question, anyone can take a side, and the currency buys nothing.
- [Myriad](https://predictionmarkets.tools/tools/myriad.md) — Multi-chain event markets priced by an AMM and settled in stablecoins or in points.
- [PMXT](https://predictionmarkets.tools/tools/pmxt.md) — CCXT-shaped client for prediction markets, with a hosted API and a self-hosted mode.
- [polymarket-client](https://predictionmarkets.tools/tools/polymarket-client.md) — Polymarket's own unified Python SDK - sync and async, data through order signing.
- [Polymarket CLOB API](https://predictionmarkets.tools/tools/polymarket-clob-api.md) — Order books, prices and order placement on Polymarket's matching engine.
- [Polymarket US API](https://predictionmarkets.tools/tools/polymarket-us-api.md) — A keyless public gateway for reading, and a signed key behind KYC for trading.
- [Polymarket US Python SDK](https://predictionmarkets.tools/tools/polymarket-us-python.md) — Official SDK for Polymarket US - installs as polymarket-us, unreleased since January.
- [Polymarket US TypeScript SDK](https://predictionmarkets.tools/tools/polymarket-us-typescript.md) — Official TypeScript client for Polymarket US - npm has shipped nothing since January.
- [Polymarket US](https://predictionmarkets.tools/tools/polymarket-us.md) — Polymarket's CFTC-designated US exchange — dollars, KYC, and no on-chain oracle.
- [Polymarket](https://predictionmarkets.tools/tools/polymarket.md) — Self-custody event contracts on an on-chain order book, resolved by the UMA oracle.
- [Polyrama](https://predictionmarkets.tools/tools/polyrama.md) — Polymarket and Kalshi in one terminal, with wallet analytics and a REST API.
- [Predexon](https://predictionmarkets.tools/tools/predexon.md) — Tick-level book history as Parquet, billed by the gigabyte, plus a mempool-aware feed.
- [Predictefy](https://predictionmarkets.tools/tools/predictefy.md) — Sixteen venues behind one verb family, priced in credits, with nothing readable for free.
- [pykalshi](https://predictionmarkets.tools/tools/pykalshi.md) — Unofficial Kalshi client with what the generated SDK leaves out - streams and retries.

## FAQ

### Does a WebSocket on a card mean I can stream without an API key?

No, and the split is not the one you would guess. Limitless's public channels for prices and market lifecycle are open, and Manifold's WebSocket takes topic subscriptions without a key. Kalshi's handshake returns 401 without signed headers even for channels that carry only public data, so there is no keyless live stream there at all. Polymarket US gates its two streams behind a key that requires the iOS app and an identity check. Predexon sells no WebSocket at all on its free plan.

### What is actually on the channel?

Four different things, depending on the product. Every change to the book as a delta, which you apply yourself — Kalshi, pykalshi's local order book, Predexon's L2 channel. Full snapshots on a cadence, which Predictefy sends instead of deltas. Events rather than prices, such as order acknowledgements, position changes and market lifecycle. And observations made before anything has settled, such as Predexon's Polygon mempool channel.

### Is streaming cheaper than polling?

Not automatically, because several of these meter the messages. PMXT charges one credit per REST call and 0.1 per WebSocket message, so a book ticking ten times a second uses the free month in roughly seven hours of streaming. Predictefy charges 2 credits per connection-minute, and 800 a minute for a Polymarket pending-fills subscription — about half an hour of the free plan's monthly allowance. A stream is a meter, and the thing it meters is how often the market moves, not how often you ask.

### Does a live feed get me a better price?

On a market with real two-sided depth it can. On a thin one it delivers the same thin book faster, and the reason the fill is bad is that nothing is resting there, not that the quote was stale. The guide on where liquidity comes from is the part to read before paying for latency.
