Skip to main content
A rejected WebSocket handshake gets a normal HTTP status and a JSON error body, then the connection closes. It’s the same envelope a failed REST call uses:

Codes shared with REST

MISSING_API_KEY, INVALID_API_KEY, IP_NOT_ALLOWED, and PLAN_REQUIRED mean the same thing at a WebSocket handshake as they do on a REST request. See Errors for what causes each one and how to fix it.

Codes specific to WebSocket

You connected to /v1/ws/prices without a symbols parameter. It’s the one channel that needs it, since a live feed of every NGX-listed company at once isn’t useful to most integrations.Add a comma-separated list of tickers to the connection URL:
One or more symbols in your symbols list don’t exist. The response lists which ones in invalid:
Check for typos, or confirm the ticker against GET /companies or GET /companies/identifiers.
You asked for more symbols on one connection than your plan allows. See Limits for the table.Request fewer symbols, split your watchlist across more than one connection if your plan’s connection limit allows it, or upgrade your plan.
Your account already has as many WebSocket connections open as your plan allows, counted across all six channels combined. See Limits.Close an existing connection before opening a new one, or upgrade your plan for a higher connection limit.

Limits

Connection and symbol limits by plan

REST errors

Every error code shared with REST requests