Subscriptions (WebSockets) require a Growth or Enterprise plan. Learn more.
Example Response
Usage Guidelines
- Pass an array of
{ address, networkId }objects to subscribe to price updates for multiple tokens in a single subscription - Tokens can span different networks — e.g., SOL on Solana and WETH on Ethereum in one subscription
- Each update delivers a single
Priceobject for whichever token’s price changed — not a batch of all tokens at once - Optionally include
sourcePairAddressper token to override the default pricing pool - Recommended: ~25 tokens per subscription. You may have multiple subscriptions on a connection
- There is no “hard limit” on how many subscriptions you can have open on a connection, but we generally recommend ~20-30
- Your internet connection, and geolocation (proximity to US-West), may affect connection health and speeds, especially with many subscriptions
- See our Subscriptions concept for more information
Troubleshooting Tips
Token prices are changing between API calls for the same timestamp
Token prices are changing between API calls for the same timestamp
On chains with sub-second block times (like BSC), multiple price updates can occur within a single second. Since blockchain timestamps only have 1-second precision, multiple different prices can validly exist for the same timestamp.To workaround this, we’ve added a
blockNumber input and response field. This will give you pricing accuracy down to the blocknumber if blockchain timestamps are causing unexpected pricing discrepancies.If I subscribe to multiple trading pairs, can I later cancel a certain trading pair?
If I subscribe to multiple trading pairs, can I later cancel a certain trading pair?
Yes. You should be able to use shouldResubscribe for this. (https://www.apollographql.com/docs/react/data/subscriptions#options)
When should I use onPricesUpdated vs onPriceUpdated?
When should I use onPricesUpdated vs onPriceUpdated?
Use
onPricesUpdated when tracking multiple tokens — it lets you batch them into a single subscription instead of opening one subscription per token. Use onPriceUpdated if you only need a single token’s price feed.Do I get updates for all tokens at once?
Do I get updates for all tokens at once?
No. Each message contains a single
Price object for whichever token’s price just changed. High-volume tokens will produce updates more frequently than low-volume ones.