If your app, dashboard, or wallet needs crypto prices that update while someone is watching, you need a stream, not a poll.
This guide covers what a developer needs in 2026: why polling falls behind, the three ways to get a price, when to use each, how to stream one coin or a hundred, and how to reconnect. Coinranking serves the same live messages over Server-Sent Events and WebSockets.
Why streaming matters
REST endpoints that return the current price are convenient, but the coin list updates about once a minute. In a fast market that lag shows up on screen. The snapshot-versus-stream decision is covered in REST vs WebSocket for crypto prices.
A stream pushes a new aggregated price and 24-hour volume as soon as they are calculated. SSE and WebSockets get that message at the same moment. Neither is the lower-latency path.
A stream is also cheaper. Polling once a second is 86,400 calls a day, and every answer inside the same minute is the same price. On Coinranking, one stream costs one API call, however many prices arrive.
| Method | Update | Best for |
|---|---|---|
| REST polling | About once a minute | Page load, search, reports |
| Server-Sent Events | Pushed when calculated | Price tickers, dashboards |
| WebSockets | Same messages as SSE | Watchlists that change, backend streams |
The three ways to get a price
REST polling. You repeatedly call /v2/coins or /v2/coin/:uuid/price. Simple, and always a snapshot. Polling every second does not make the data newer than the minute update.
Server-Sent Events. A one-way HTTP stream. The server keeps the connection open and pushes new prices. Browsers reconnect after a drop. This is the preferred stream for a front-end ticker. The side-by-side is in SSE vs WebSockets for real-time crypto prices. Setup is in the SSE docs.
WebSockets. A two-way connection. Use it when the client has to change the subscription without reconnecting. It does not accept orders, and it does not serve an order book. Docs: WebSockets.
How Coinranking streams prices
Both transports carry the same three topics:
- Rates: aggregated price and 24-hour volume per coin.
- Exchange rates: the price of a coin on one exchange.
- Tickers: trading-pair data per market.
https://api.coinranking.com/v2/real-time/sse/rates
wss://api.coinranking.com/v2/real-time/ratesExchange rates and tickers use /exchange-rates and /tickers, with /sse/ in the path for Server-Sent Events. Authenticate with x-access-token, as a header from a server, or as a query parameter from the browser. Overview: real-time documentation.
One coin, many coins, the whole market
One or a few coins. Pass currency-uuids[] on the SSE URL, or send currencyUuids on the WebSocket.
Up to 100 coins. One connection can hold a top-100 table or a portfolio. That is the maximum.
The whole market. list=all is a real subscription on both transports. It is a high-volume stream. A client that stops reading is disconnected.
throttle is 1s or 10s, per coin. The default is 1s.
Production habits
Reconnect. SSE does this after a drop, and the URL restores the feed. A rejected SSE request does not retry. WebSockets need backoff, then a new subscription message. Neither transport replays what you missed, and neither sends the current price on connect. Load that from REST first.
Keep the key on the server. Proxy the browser stream so the key never sits in the page.
Combine with REST. Load names, icons, and candles over REST, then stream the live layer. Candle history is a separate call: how to get OHLC candlestick data.
Watch the heartbeat. Both transports send one every 25 seconds. A deploy ends every open connection.
Which to choose
| Use case | Approach |
|---|---|
| Public website price ticker | SSE |
| Portfolio tracker or dashboard | SSE, unless the watchlist changes mid-session |
| Backend process that resubscribes | WebSocket |
| Mobile app that only displays prices | SSE |
| Corporate or restricted networks | SSE |
| A single exchange’s own book | That exchange’s WebSocket, not this API |
Start
- Get a key at coinranking.com/api. Streaming is on the Professional plan, free for 30 days. A free key gets REST only, and a stream answers it with 403.
- Open the real-time documentation.
- Use SSE for a page that only displays prices. Use a WebSocket when the subscription has to change on the open connection.
Copy-paste examples are in how to stream live crypto prices in JavaScript. If you are still choosing a provider, the field is compared in best crypto price streaming APIs in 2026.




