Skip to main content
WSS
What this stream is for. This WebSocket is a charting-specific feed designed to plug straight into the TradingView Charting Library or any chart widget that follows the TradingView data shape. If you’re rendering candlestick or line charts in your app and need them to update in real time, use this feed. If you need full market depth, Greeks, or T&S, use the Market Data WebSocket instead.

Key Features

Connect Then Authenticate

Open a WebSocket to the endpoint, then send a request to POST /auth with your token. Subscribe only after authSuccess.

Real-Time Quotes

Stream live bid/ask, last price, OHLC, volume, and change for charting.

Real-Time Trades

Receive last-trade updates (price, size, timestamp) for tape and chart integration.

Subscribed Quotes

Subscribe to one or more symbols; receive event messages with quote and trade data for each subscribed symbol.

TradingView Format

Quote and trade payloads use TradingView-friendly field names for easy integration.

Equities & Options

Support for stock tickers and OSI option symbols.

Keep-Alive

Ping/pong for connection health; optional correlation ID for pong.

Endpoint

Connect to the WebSocket at /v1/charts/ws.Production: wss://api.aries.com/v1/charts/ws
Staging: wss://api.aries.com/v1/charts/ws
Health check: GET /tv/health (HTTP)

Authentication

Authentication is required. Use an OAuth2 access token (e.g. from POST /v1/oauth2/token). After the connection is open, send a request message with method POST, path /auth, and body { "token": "<your_access_token>" }. Wait for a response with action authSuccess before sending subscribe messages. If the server returns authRequired or error, authentication failed (e.g. invalid or expired token).
This WebSocket follows a TradingView-compatible message format. All request/response messages use the shared envelope: type, id, payload (with method, path, body for requests).

Equities

Standard stock ticker symbols (e.g., AAPL, MSFT, GOOGL, TSLA). Use them exactly as a brokerage screen would display them.

Options

Option contracts use OSI (Options Symbology Initiative) symbols. Format: ROOT + YYMMDD + C/P + strike-in-cents (e.g., AAPL240119C00150000 is the AAPL Jan-19-2024 $150 Call).
Every message you send or receive uses the same outer JSON shape:
The subscription payload.type controls what kind of data the server streams back:
  • quotes (default) — Bid/ask, last price, OHLC, volume, change, and change percent. This is what most chart widgets need for the price/quote display.
  • bars — Accepted as a subscription type, but the server currently streams the same quotes-shaped quote/trade events for a bars subscription. It does not emit distinct OHLC bar/candle objects, resolutions, or intervals today. Use quotes unless you have a specific reason to send bars.

Live Chart Updates

Display real-time price movements on interactive charts.

TradingView Widgets

Feed real-time data into TradingView charting library or embedded widgets.

Quote Displays

Show last price, bid/ask, and volume in chart widgets (after authenticating).

Technical Analysis

Provide data for indicators and overlays in charting tools.

Connection

Connect to the Charting WebSocket the same way you would the Market Data WebSocket: establish the connection, then authenticate, then subscribe to symbols to receive real-time quotes and trades.

Connect to the endpoint

Open a secure WebSocket connection to:

Authenticate

Immediately after the connection is open, send one request message to authenticate. Do not send subscribe messages until you receive a successful auth response. Send the following auth message:
Server responds (success): type: "response", with payload.action: "authSuccess", optional payload.id (echoed from request), payload.timestamp (Unix milliseconds), and payload.data.expiresIn (session expiry in milliseconds). Server responds (failure): payload.action: "authRequired" or payload.action: "error" with payload.error (e.g. “token is required”, “authentication failed”). Reconnect or send a new auth request with a valid token.

Subscribe to symbols

After authSuccess, send subscribe messages to start receiving quote and trade event messages for the requested symbols. See Subscribing to Chart Data below.

Subscribing to Chart Data

After you have connected and authenticated, you can subscribe to real-time quotes (and trades) for one or more symbols. Each subscription uses a subscribe message; the server then sends event messages containing quote/trade data for those symbols.

Basic subscription structure

Send a subscribe message with type fixed as "subscribe", any id you want (used to correlate the server’s responses), and a payload describing what you want to receive: Full message to send:

Subscription examples

Single symbol (quotes)

Subscribe to real-time quotes for one equity:
You will receive event messages with payload.type: "quotes" and payload.symbol: "AAPL" containing payload.data.quote and payload.data.trade.
Subscribe to quotes for several symbols by sending one subscribe message per symbol (each with its own id if needed):First symbol:
Second symbol:
Third symbol:
The server sends event messages for each subscribed symbol; use payload.symbol to route updates.
For option contracts, use the OSI symbol:

Connection Flow

1

Connect

Open a WebSocket connection to wss://api.aries.com/v1/charts/ws
2

Authenticate

Send a request message: type: "request", payload: { "method": "POST", "path": "/auth", "body": { "token": "<access_token>" } }. Wait for a response with payload.action: "authSuccess".
3

Subscribe

Send subscribe messages with payload.type and payload.symbol for each symbol you want.
4

Receive events

Process event messages containing quote and trade data for your subscribed symbols.
5

Unsubscribe (optional)

Send unsubscribe with the same symbol to stop updates.
6

Keep-Alive (optional)

Send ping periodically; server responds with pong.

Client → Server Messages

Subscribe

Provide payload.type and payload.symbol; the full message is built as:

Unsubscribe

Stop receiving updates for a symbol. Only payload.symbol is required — the server unsubscribes by symbol, so payload.type is not needed and is ignored.

Ping

Keep-alive; server responds with pong. Optional id is echoed in the pong.

Server → Client Messages

Event (quote/trade update)

Server pushes quote and/or trade data for subscribed symbols.
The field names below (ch, chp, lp, n, v, etc.) are TradingView’s short-form keys. They look cryptic but they’re standardized — the TradingView Charting Library expects exactly these names. Do not rename them in your handler if you’re piping data into a TradingView widget.
Event payload fields: payload.data fields: payload.data.quote.v fields — these are the values the chart actually plots. All numbers and all optional (only changed fields may be present in an update): payload.data.trade fields — emitted whenever a new print appears on the tape:

Response (auth or error)

Auth success: type: "response", payload.action: "authSuccess", optional payload.id (echoed request ID), payload.timestamp (Unix milliseconds), payload.data.expiresIn (session expiry in milliseconds). Error (e.g. invalid subscribe): type: "response", payload.error with message.

Pong

Reply to ping.

Quick Start Example

Connect, authenticate, then subscribe to quotes (same pattern as the Market Data WebSocket):

Support

Need help with the Charting WebSocket?

Email Support

Sign-in Request
type:object

Sign in with access token

Subscribe Request
type:object

Subscribe to quotes/trades for a symbol

Unsubscribe Request
type:object

Unsubscribe from a symbol

Ping Request
type:object

Keep-alive ping

Quote/Trade Event
type:object

Server-pushed quote and/or trade update

Error Response
type:object

Error response for subscribe/unsubscribe or auth

Auth Required Response
type:object

Server requests authentication

Auth Success Response
type:object

Successful authentication response

Pong Response
type:object

Pong reply to ping