> ## Documentation Index
> Fetch the complete documentation index at: https://api.docs.rocketfi.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Public WebSocket streams

> Broadcast market data over a single /ws connection — books, marks, funding, and related feeds.

RocketFi delivers **public-style** updates over the same **`/ws`** endpoint as private streams. After you connect, you send **JSON** messages to **subscribe** or **unsubscribe** to logical channels; the server pushes typed payloads defined in **[AsyncAPI](https://beta.rocket-cluster-1.com/docs/ws-asyncapi.yaml)** and summarized on the **[WebSocket API](/websocket-stream)** page.

## Connection

1. Open **WSS** to the host for your environment — see **[Environments](/guides/environments)** (for example **`wss://beta.rocket-cluster-1.com/ws`**; confirm path and servers in AsyncAPI).
2. Public feeds normally need **no API key or signing** on the wire. If your environment documents extra transport rules, follow **[Authentication](/guides/authentication)** and AsyncAPI.

## What counts as “public”

Multiplexed streams typically include **market-wide** feeds such as:

* Instrument metadata and listing-style updates
* Order book snapshots and deltas (when offered)
* Last trade, mark, index, or candle-style updates
* Funding or similar broadcast events

The authoritative list of **subscription kinds** and **payload shapes** is in AsyncAPI (`ClientMessage` / `ServerMessage`). Prefer the generated reference when integrating.

## Stream pages (sidebar)

Expand **Streams** under this section for one page per public subscription (order book, price feeds, candles, funding, and so on). Each page attaches the **`ws`** channel from **`specs/asyncapi.yaml`** so you get the same **playground** and message schemas as on **[WebSocket API](/websocket-stream)**.

## Subscribing

* Send **`Subscribe`** with the kind and parameters your feed requires; send **`Unsubscribe`** to stop.
* After a reconnect, **subscribe again**; subscriptions usually do not resume automatically.
* Avoid sending duplicate subscribes for the same logical feed so you do not receive duplicate events.

The server acknowledges with **`SubscribeConfirmation`** / **`UnsubscribeConfirmation`** when the operation is accepted.

## Heartbeats

Send **`Ping`** JSON frames; the server replies with **`Pong`**. Use this in addition to any **WebSocket-level** ping policy your infrastructure requires so idle connections are not dropped.

## Ordering and recovery

Use **sequence** or **timestamp** fields when the schema provides them. On disconnect, reconnect, **resubscribe**, and apply your book merge rules if you consume depth updates.

## Errors

Structured failures use **`ServerMessage::Error`**. Interpret codes and messages per your integration, then fix the subscription, backoff, or reconnect as needed — see **[Error responses](/guides/errors)**.

For **account-scoped** streams (orders, positions, balances), read **[Private WebSocket streams](/guides/ws-private)**.
