Key Features
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.
Connection Details
Connection Details
Endpoint
Connect to the WebSocket at/v1/charts/ws.Production: wss://api.aries.com/v1/charts/wsStaging:
wss://api.aries.com/v1/charts/wsHealth check: GET /tv/health (HTTP)Authentication
Authentication is required. Use an OAuth2 access token (e.g. fromPOST /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). The server may send refreshAuth before expiry and authExpired when the session ends.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).Supported Symbols
Supported Symbols
Message Envelope
Message Envelope
All messages use a JSON envelope:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | request | subscribe | unsubscribe | ping | event | response | pong |
id | string | No | Correlation ID (client sets on request; server echoes on response) |
timestamp | string | No | RFC3339 timestamp |
payload | object | Yes | Message body |
Data Types
Data Types
- quotes (default): Bid/ask, last price, OHLC, volume, change, change percent, exchange, description. Suitable for price display and chart overlays.
- bars: Bar/candle data; use
type: "bars"in subscribe if supported.
Use Cases
Use Cases
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. Provide your token; the full auth message is built as:type: "response", with payload.action: "authSuccess" and optional payload.data.expiresIn (session TTL 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 withtype fixed as "subscribe", any id (for correlation), and a payload containing:
| Payload field | Required | Description |
|---|---|---|
type | Yes | quotes or bars |
symbol | Yes | Ticker (e.g. AAPL) or OSI option symbol |
Subscription examples
Single symbol (quotes)
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.Multiple symbols (quotes)
Multiple symbols (quotes)
Subscribe to quotes for several symbols by sending one subscribe message per symbol (each with its own Second symbol:Third symbol:The server sends event messages for each subscribed symbol; use
id if needed):First symbol:payload.symbol to route updates.Option contract (quotes)
Option contract (quotes)
For option contracts, use the OSI symbol:
Another equity (quotes)
Another equity (quotes)
Connection Flow
Authenticate
Send a request message:
type: "request", payload: { "method": "POST", "path": "/auth", "body": { "token": "<access_token>" } }. Wait for a response with payload.action: "authSuccess".Client → Server Messages
Subscribe
Providepayload.type and payload.symbol; the full message is built as:
Unsubscribe
Stop receiving updates for a symbol. Providepayload.type and payload.symbol (must match the subscription).
Ping
Keep-alive; server responds with pong. Optionalid is echoed in the pong.
Server → Client Messages
Event (quote/trade update)
Server pushes quote and/or trade data for subscribed symbols.payload.data.quote): s (status), n (symbol), v (values object: ch = change, short_name, lp = last price, open_price, high_price, low_price).
Trade (payload.data.trade): s (status), t (Unix seconds), lp (last price), v (volume).
payload.data.isDelayed: true if data is delayed; false for real-time.
Response (auth or error)
Auth success:type: "response", payload.action: "authSuccess", optional payload.data.expiresIn.
Error (e.g. invalid subscribe): type: "response", payload.error with message.