pools sends a tick for every swap on the pools you filter for. prices sends a USD price whenever a token you watch is repriced. Messages on this endpoint are camelCase. Every client field also accepts its snake_case spelling.
Welcome
The server speaks first, so limits are discoverable:Subscribe to pools
The filter is
(pools OR mints) AND dex. An empty filter is an error; ask for all: true if you want everything. Unknown venue names and unparseable mints are reported back in the acknowledgement and do not fail the subscription.
Subscribe to prices
mints takes up to 100 tokens. minChangeBps suppresses updates smaller than that move.
Data frames
priceis quote per base from the last swap on that pool, andsignatureis the transaction that set it.txIndexandsignatureare left out when unknown.usdPriceis the same value/v1/pricereturns, from the same computation, so the two never disagree.- The
priceschannel is event driven. A token is repriced when a pool it sits on trades.
Control
channel on unsubscribe to drop both. Ping answers {"type":"pong","ts":…,"id":"4"}. The server also pings every 30 s.
lagged and should re-snapshot from /v1/pools/{mint}. Error codes and close codes are listed under Errors.
Limits
With
intervalMs: 0 a subscription on SOL alone produces a few hundred frames per second at busy times. Set an interval if you would rather have fewer, larger frames.