Crypto Price SSE API
Real-time prices for 2.3M+ coins as Server-Sent Events: one GET request that stays open, one API call however long it runs. The recommended transport for front ends; back ends use WebSockets.
30 days free, then $199 a month. Card required, cancel any time.
$199/month · 30-day free trial · https://api.coinranking.com/v2/real-time/sse
# -N disables output buffering, -g stops curl from interpreting the [] in the URL
curl -N -g 'https://api.coinranking.com/v2/real-time/sse/rates?currency-uuids[]=Qwsogvtv82FCd¤cy-uuids[]=razxDUgYGNAdQ&throttle=10s' \
-H 'x-access-token: YOUR_KEY'
# First line confirms the subscription, then one data: line per price update
# data: {"type":"rate","currencyUuid":"Qwsogvtv82FCd","price":"125423.83","volume":"6270550403.28"}Three Streams, Same Data as the WebSockets
Each SSE path mirrors the WebSocket path of the same name: same subscriptions, throttle and message fields, plus a type field.
- SSE/sse/rates
One aggregated price and 24-hour volume per coin. Subscribe with
currency-uuids[](1–100) orlist=allfor every coin. A coin’s price and volume per exchange, tagged
cexordex. Subscribe withreferences[],exchange-uuids[],currency-uuids[]orlist=all.- SSE/sse/tickers
Trading-pair level with base and quote volume. Subscribe with
market-uuids[],exchange-uuids[],currency-uuids[]orlist=all.
DEX markets on the exchange-rates and tickers streams need the Real-Time DEX Data add-on.
SSE or WebSocket
One data set, two transports. Pick by where the client runs.
| Server-Sent Events | WebSocket | |
|---|---|---|
| Recommended for | Front ends | Back ends |
| Protocol | HTTP GET, text/event-stream | WebSocket upgrade, wss:// |
| Base URL | https://api.coinranking.com/v2/real-time/sse | wss://api.coinranking.com/v2/real-time |
| Authentication | x-access-token header, or query parameter for EventSource | x-access-token query parameter |
| Change subscriptions | Open a new stream | Send a JSON message on the open socket |
| Subscribe to everything | list=all | Up to 100 UUIDs per connection |
| Reconnect | Automatic in EventSource, after 5 seconds | Reopen the URL |
| Through proxies, CDNs, serverless | Yes, it is a normal HTTP response | Only where upgrades are allowed |
| Cost | 1 API call per stream | 1 API call per connection, +1 per subscription message |
| Plan | Professional | Professional |
Built for Production Front Ends
What the stream does for you, and the one thing to do yourself.
Validated Before It Streams
A bad UUID, throttle or key returns a normal JSON error with a code, before a single byte streams. Match on the code.
Confirmed on Open
The first message lists what you subscribed to and the throttle. Every data message carries a type field.
Heartbeats and Reconnect
A :ping keeps idle timeouts away and the stream announces retry: 5000. No maximum duration.
Any HTTP Client
EventSource, fetch, curl, Python requests with stream=True, Node, Deno, Bun. The docs have each one.
Keep the key on your server and proxy the stream through your own origin; the docs include a Node proxy and a fetch-based client that reads error codes EventSource cannot.
SSE by Plan
SSE and WebSockets are both included in the Professional plan and not available on Free or Startup.
| Free · $0 | Startup · $49/mo | Professional · $199/mo | |
|---|---|---|---|
| Price | $0 | $49 | $199 |
| Server-Sent Events | Not included | Not included | Included |
| WebSockets | Not included | Not included | Included |
| DEX markets on the streams | — | — | With the Real-Time DEX Data add-on, $119/month |
| REST calls per month | 5,000 | 1,000,000 | 5,000,000 |
| Free trial | — | 30 days | 30 days |
30-day free trial on Professional. Compare every plan.
SSE Questions
Coinranking SSE API streams the same real-time rates, exchange rates and tickers as Coinranking WebSockets as Server-Sent Events: a plain HTTP GET to /v2/real-time/sse/rates, /sse/exchange-rates or /sse/tickers that stays open and writes one data: line of JSON per update. Subscriptions, throttle, message fields and plan requirements are identical to the WebSocket path of the same name. See the SSE documentation.
Use Coinranking SSE for front ends and for any environment without a WebSocket client: browsers with the built-in EventSource, serverless and edge runtimes, curl, or any HTTP library that can read a response as it arrives. Use WebSockets for back ends that need to change subscriptions mid-stream; an SSE stream is one-way, so a new subscription means a new stream.
Opening a Coinranking SSE stream consumes one API request from your plan, however long it stays open; the messages themselves consume nothing. Each reconnect opens a new stream and costs one request again, so reconnect after a short delay rather than in a tight loop. This is the same per-connection model as the WebSockets.
Send the key in the x-access-token header, as for every REST call; curl, fetch and server-side HTTP libraries can all set it. The browser's built-in EventSource cannot set headers, so for that case only the key is also accepted as a ?x-access-token= query parameter. For a public website, keep the key on your server and proxy the stream through your own origin.
Coinranking SSE is included in the Professional plan at $199 a month, alongside WebSockets, with a 30-day free trial. DEX markets on /sse/exchange-rates and /sse/tickers need the Real-Time DEX Data add-on; with list=all and no add-on the stream opens normally and carries centralized exchanges only. Free and Startup do not include streaming.
Reconnect with the same URL; the subscriptions live in the URL, so there is no state to rebuild. EventSource reconnects by itself after the five seconds the stream announces with retry: 5000. The stream carries updates only and does not replay what was missed, so fetch a starting value from the REST endpoints if the first screen needs one before the first update arrives.
More of Coinranking API
Same key, same base URL.
Stream Prices over SSE
One GET request and the first price arrives. Professional is free for 30 days.
30 days free, then $199 a month. Card required, cancel any time.