Skip to content

Market Data API Documentation

Subscription Required

A subscription is required to use SQWARE Terminal services, including the APIs and real-time data feeds described. API keys and management can be found on your account page.

This document provides details and example responses for the available API endpoints.

General Response Structure

All successful (200 OK) responses follow this general structure:

{
  "meta": {
    "request_timestamp": "YYYY-MM-DDTHH:MM:SS.ffffffZ", // UTC timestamp of the request
    "data_source": "database (cached) | live_data_feed | etc.", // Indicates data origin
    "notes": "Optional notes about the response" // Additional information
  },
  "data": {
    // THIS IS THE PAYLOAD SPECIFIC TO THE ENDPOINT.
    // It can be a single JSON object or an array of JSON objects.
    // Its specific structure is detailed in each endpoint's documentation.
  },
  "errors": null // Will be null on success. On error, contains a list of ErrorDetail objects.
}

Error responses (e.g., 400 Bad Request, 404 Not Found, 500 Internal Server Error) will have a similar meta block, the data field will usually be null, and the errors list will be populated with one or more ErrorDetail objects:

{
  "code": 400, // HTTP status code or a specific error code
  "message": "Descriptive error message.",
  "field": "optional_field_name" // Optional: relates the error to a specific input field
}

Forex Data

Note: The underlying Forex API endpoints may utilize external data providers. Functionality and data availability may be subject to change by these providers.

1. Forex Quote

  • Description: Retrieves the latest top-of-book quote for a single Forex pair.
  • Endpoint: GET /v1/fx/quotes/<ticker>
  • Path Parameters:
    • ticker: (String, Required) - The Forex pair ticker (e.g., EURUSD).
  • Query Parameters: None.
  • Success Response (200 OK):
    • The data field contains a single JSON object representing the latest quote.
    • Structure matches the example below.
  • Example Request: GET /v1/fx/quotes/EURUSD
  • Example Response:
{
  "meta": {
    "request_timestamp": "2023-10-27T10:00:00.123456Z",
    "data_source": "live_data_feed"
  },
  "data": {
    "ticker": "EURUSD",
    "quote_timestamp": "2023-10-27T09:59:58.987000Z", // UTC timestamp of the quote
    "bid_price": 1.0550, // Latest bid price
    "bid_size": 1000000, // Latest bid size
    "ask_price": 1.0552, // Latest ask price
    "ask_size": 1000000, // Latest ask size
    "mid_price": 1.0551  // Calculated mid price
  },
  "errors": null
}

2. Forex Historical Prices

  • Description: Retrieves daily historical OHLCV (Open, High, Low, Close, Volume) data for a single Forex pair over a specified date range.
  • Endpoint: GET /v1/fx/historical/<ticker>
  • Path Parameters:
    • ticker: (String, Required) - The Forex pair ticker (e.g., GBPUSD).
  • Query Parameters:
    • startDate: (String, Required, Format: YYYY-MM-DD) - The start date for the historical data range (inclusive).
    • endDate: (String, Required, Format: YYYY-MM-DD) - The end date for the historical data range (inclusive).
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of historical price objects.
    • Each object in the array matches the structure shown in the example below.
  • Example Request: GET /v1/fx/historical/GBPUSD?startDate=2023-10-23&endDate=2023-10-24
  • Example Response:
{
  "meta": {
    "request_timestamp": "2023-10-27T10:05:00.112233Z",
    "data_source": "live_data_feed"
  },
  "data": [
    {
      "ticker": "GBPUSD",
      "date": "2023-10-23", // Date of the historical bar (YYYY-MM-DD)
      "open": 1.2150,
      "high": 1.2180,
      "low": 1.2120,
      "close": 1.2165,
      "volume": 120000,
      "adj_open": null, // Adjusted prices/volume/splits are not typically applicable/available for Forex EOD
      "adj_high": null,
      "adj_low": null,
      "adj_close": null,
      "adj_volume": null,
      "div_cash": null,
      "split_factor": null
    },
    {
      "ticker": "GBPUSD",
      "date": "2023-10-24",
      "open": 1.2160,
      "high": 1.2200,
      "low": 1.2155,
      "close": 1.2190,
      "volume": 135000,
      "adj_open": null,
      "adj_high": null,
      "adj_low": null,
      "adj_close": null,
      "adj_volume": null,
      "div_cash": null,
      "split_factor": null
    }
    // ... more historical bars ...
  ],
  "errors": null
}

Stock Data

1. Stock Quote

  • Description: Retrieves the latest quote data for one or more stock tickers from the IEX feed. Supports single or bulk requests via a comma-separated string of tickers.
  • Endpoint: GET /v1/stocks/quotes/<tickers_str>
  • Path Parameters:
    • tickers_str: (String, Required) - A single stock ticker (e.g., AAPL) or a comma-separated string of tickers (e.g., AAPL,MSFT).
  • Query Parameters: None.
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of stock quote objects.
    • Each object in the array represents a quote for one ticker and matches the structure shown in the example below.
  • Example Request (Single): GET /v1/stocks/quotes/AAPL
  • Example Request (Bulk): GET /v1/stocks/quotes/AAPL,MSFT
  • Example Response (for bulk AAPL,MSFT - structure shown):
{
  "meta": {
    "request_timestamp": "2023-10-27T16:30:00.654321Z",
    "data_source": "live_data_feed"
  },
  "data": [
    {
      "ticker": "AAPL",
      "quote_timestamp": "2023-10-27T16:28:30.000000Z", // Timestamp of the quote/last trade
      "last_price": 170.50, // Last traded price (may be null depending on IEX entitlement)
      "last_size": 100,      // Size of the last trade (may be null)
      "bid_price": 170.49, // Current bid price (may be null)
      "bid_size": 500,      // Size of the current bid (may be null)
      "ask_price": 170.51, // Current ask price (may be null)
      "ask_size": 300,      // Size of the current ask (may be null)
      "mid_price": 170.50,  // Mid price (calculated from bid/ask if available)
      "open_price": 169.80, // Today\'s opening price
      "high_price": 171.20, // Today\'s high price
      "low_price": 169.50,  // Today\'s low price
      "prev_close": 169.00, // Previous day\'s closing price
      "volume": 25000000, // Today\'s accumulated volume
      "composite_last": 170.45 // Composite last price from feed
    },
    {
      "ticker": "MSFT",
      "quote_timestamp": "2023-10-27T16:29:15.000000Z",
      "last_price": 330.10,
      "last_size": 50,
      // ... other fields for MSFT following the same structure ...
      "volume": 15000000,
      "composite_last": 330.05
    }
    // ... more stock quotes if multiple tickers requested ...
  ],
  "errors": null
}

2. Stock Historical Prices

  • Description: Retrieves daily historical OHLCV data for a single stock over a specified date range, including adjusted prices and dividend/split information if available. This uses a standard daily feed.
  • Endpoint: GET /v1/stocks/historical/<ticker>
  • Path Parameters:
    • ticker: (String, Required) - The stock ticker (e.g., MSFT).
  • Query Parameters:
    • startDate: (String, Required, Format: YYYY-MM-DD) - The start date for the historical data (bars on this date will be included).
    • endDate: (String, Optional, Format: YYYY-MM-DD) - The end date for the historical data. If omitted, data up to the latest available for startDate might be returned depending on the resampling frequency and the data provider's behavior.
    • resampleFreq: (String, Required) - The frequency at which to resample the data. Supported values include: 1min, 5min, 15min, 30min, 1hour, 1day.
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of historical price objects.
    • Each object in the array represents a historical bar for the ticker on a specific date and matches the structure shown in the example below.
  • Example Request: GET /v1/stocks/historical/MSFT?startDate=2023-01-03&endDate=2023-01-04
  • Example Response:
{
  "meta": {
    "request_timestamp": "2023-10-27T16:35:00.334455Z",
    "data_source": "cached_data_store"
  },
  "data": [
    {
      "ticker": "MSFT",
      "date": "2023-01-03", // Date of the historical bar (YYYY-MM-DD)
      "open": 240.00,
      "high": 242.50,
      "low": 238.90,
      "close": 241.80,
      "volume": 25000000, // Trading volume
      "adj_open": 239.50, // Adjusted opening price (for splits/dividends)
      "adj_high": 242.00, // Adjusted high price
      "adj_low": 238.40,  // Adjusted low price
      "adj_close": 241.30,// Adjusted closing price
      "adj_volume": 25050000, // Adjusted volume
      "div_cash": 0.0,    // Cash dividend amount on this date
      "split_factor": 1.0 // Split factor on this date
    },
    {
      "ticker": "MSFT",
      "date": "2023-01-04",
      "open": 241.50,
      "high": 245.00,
      "low": 240.10,
      "close": 244.20,
      "volume": 28000000,
      "adj_open": 241.00,
      "adj_high": 244.50,
      "adj_low": 239.60,
      "adj_close": 243.70,
      "adj_volume": 28070000,
      "div_cash": 0.0,
      "split_factor": 1.0
    }
    // ... more historical bars ...
  ],
  "errors": null
}

3. IEX Intraday Historical Prices

  • Description: Retrieves intraday historical OHLCV (Open, High, Low, Close, Volume) price bars for a specific stock ticker from the IEX feed at a specified resampling frequency. The volume reported is specific to IEX trades for the given intraday period.
  • Endpoint: GET /v1/stocks/iex_historical/<ticker>
  • Path Parameters:
    • ticker: (String, Required) - The stock ticker (e.g., AAPL).
  • Query Parameters:
    • startDate: (String, Required, Format: YYYY-MM-DD) - The start date for the historical data (bars on this date will be included).
    • endDate: (String, Optional, Format: YYYY-MM-DD) - The end date for the historical data. If omitted, data up to the latest available for startDate might be returned depending on the resampling frequency and the data provider's behavior.
    • resampleFreq: (String, Required) - The frequency at which to resample the data. Supported values include: 1min, 5min, 15min, 30min, 1hour, 1day.
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of intraday historical price bar objects.
    • Each object in the array represents a bar for the ticker at a specific time within the date range and matches the structure shown in the example below.
  • Example Request: GET /v1/stocks/iex_historical/AAPL?startDate=2023-10-27&resampleFreq=5min
  • Example curl Request:
    curl "http://localhost:5000/v1/stocks/iex_historical/AAPL?startDate=2023-10-27&resampleFreq=5min"
    
  • Example Response (structure for 5min bars):
{
  "meta": {
    "request_timestamp": "2023-10-28T10:00:00.123456Z",
    "data_source": "live_data_feed"
  },
  "data": [
    {
      "date": "2023-10-27T09:30:00Z", // Timestamp of the bar (UTC)
      "open": 170.00,
      "high": 170.05,
      "low": 169.80,
      "close": 169.95,
      "volume": 50500 // Volume for this bar
    },
    {
      "date": "2023-10-27T09:35:00Z",
      "open": 169.95,
      "high": 170.10,
      "low": 169.90,
      "close": 170.05,
      "volume": 30200
    }
    // ... more intraday bars ...
  ],
  "errors": null
}

End-of-Day (EOD) Stock Data

This section details endpoints for accessing End-of-Day (EOD) stock data from our feeds, which includes metadata and historical price information. EOD prices are typically for equities and mutual funds.

1. EOD Ticker Metadata

  • Description: Retrieves metadata for a specific stock ticker from the EOD feed, such as its name, exchange, description, and the date range of available historical data.
  • Endpoint: GET /v1/eod/<ticker>/meta
  • Path Parameters:
    • ticker: (String, Required) - The stock ticker (e.g., AAPL).
  • Query Parameters: None.
  • Success Response (200 OK):
    • The data field contains a single JSON object representing the EOD metadata for the ticker.
    • Structure matches the example below.
  • Example Request: GET /v1/eod/AAPL/meta
  • Example Response:
    {
      "meta": {
        "request_timestamp": "2023-11-15T10:00:00.123456Z",
        "data_source": "live_data_feed"
      },
      "data": {
        "ticker": "AAPL",
        "name": "Apple Inc",
        "exchangeCode": "NASDAQ",
        "description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories worldwide. It also sells various related services.",
        "startDate": "1980-12-12", // Start date of available historical data (YYYY-MM-DD)
        "endDate": "2023-11-14"   // End date of available historical data (YYYY-MM-DD)
      },
      "errors": null
    }
    

2. EOD Ticker Latest Price

  • Description: Retrieves the latest available End-of-Day (EOD) price data for a specific stock ticker. This typically represents the OHLCV data for the most recent trading day.
  • Endpoint: GET /v1/eod/<ticker>/prices/latest
  • Path Parameters:
    • ticker: (String, Required) - The stock ticker (e.g., AAPL).
  • Query Parameters: None.
  • Success Response (200 OK):
    • The data field contains a JSON array (list). For the \'latest\' endpoint, this list typically contains a single historical price object representing the latest EOD data.
    • The structure of the object(s) in the array matches the HistoricalPriceData structure shown in the EOD Historical Prices example.
  • Example Request: GET /v1/eod/AAPL/prices/latest
  • Example Response: Note: The data field contains a list, usually with a single entry for the latest price.
    {
      "meta": {
        "request_timestamp": "2023-11-15T10:05:00.987654Z",
        "data_source": "live_data_feed"
      },
      "data": [
        {
          "ticker": "AAPL",
          "date": "2023-11-14", // Date of the EOD price (YYYY-MM-DD)
          "open": 180.00,
          "high": 182.50,
          "low": 179.80,
          "close": 181.90,
          "volume": 45000000,
          "adj_open": 180.00,
          "adj_high": 182.50,
          "adj_low": 179.80,
          "adj_close": 181.90,
          "adj_volume": 45000000,
          "div_cash": 0.0,
          "split_factor": 1.0
        }
      ],
      "errors": null
    }
    

3. EOD Ticker Historical Prices

  • Description: Retrieves historical End-of-Day (EOD) OHLCV data for a single stock over a specified date range, including adjusted prices and dividend/split information if available. Supports resampling to different frequencies.
  • Endpoint: GET /v1/eod/<ticker>/prices/historical
  • Path Parameters:
    • ticker: (String, Required) - The stock ticker (e.g., MSFT).
  • Query Parameters:
    • startDate: (String, Required, Format: YYYY-MM-DD) - The start date for the historical data range (inclusive).
    • endDate: (String, Required, Format: YYYY-MM-DD) - The end date for the historical data range (inclusive).
    • resampleFreq: (String, Optional, Defaults to daily) - The frequency at which to resample the data. Supported values include: daily, weekly, monthly, annually.
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of historical price objects.
    • Each object in the array represents an EOD historical bar for the ticker on a specific date/period and matches the structure shown in the example below.
  • Example Request (Conceptual): GET /v1/eod/MSFT/prices/historical?startDate=2023-01-03&endDate=2023-01-04&resampleFreq=daily
  • Example curl Request:
    curl "http://localhost:5000/v1/eod/MSFT/prices/historical?startDate=2023-01-03&endDate=2023-01-04&resampleFreq=daily"
    
  • Example Response:
{
  "meta": {
    "request_timestamp": "2023-11-15T10:10:00.555444Z",
    "data_source": "cached_data_store"
  },
  "data": [
    {
      "ticker": "MSFT",
      "date": "2023-01-03", // Date of the historical bar (YYYY-MM-DD)
      "open": 240.00,
      "high": 242.50,
      "low": 238.90,
      "close": 241.80,
      "volume": 25000000,
      "adj_open": 239.50,
      "adj_high": 242.00,
      "adj_low": 238.40,
      "adj_close": 241.30,
      "adj_volume": 25050000,
      "div_cash": 0.0,
      "split_factor": 1.0
    },
    {
      "ticker": "MSFT",
      "date": "2023-01-04",
      "open": 241.50,
      "high": 245.00,
      "low": 240.10,
      "close": 244.20,
      "volume": 28000000,
      "adj_open": 241.00,
      "adj_high": 244.50,
      "adj_low": 239.60,
      "adj_close": 243.70,
      "adj_volume": 28070000,
      "div_cash": 0.0,
      "split_factor": 1.0
    }
    // ... more historical bars based on date range and resampleFreq ...
  ],
  "errors": null
}

Cryptocurrency Data

1. Crypto Prices (Latest/Historical Bars)

  • Description: Fetches cryptocurrency price bars for one or more specified crypto ticker(s). This endpoint can retrieve both the latest (live) price bars and historical price bars based on the presence of the startDate parameter.
  • Endpoint: GET /v1/crypto/prices/<tickers>
  • Path Parameters:
    • tickers: (String, Required) - A single crypto ticker (e.g., BTCUSD) or a comma-separated list of tickers (e.g., BTCUSD,ETHUSD,LTCBTC).
  • Query Parameters:
    • startDate: (String, Optional, Format: YYYY-MM-DD) - The start date for historical data. If omitted, the endpoint attempts to fetch the latest price data.
    • endDate: (String, Optional, Format: YYYY-MM-DD) - The end date for historical data. Only used if startDate is also provided. If omitted when startDate is present, data up to the latest available for startDate\'s period might be returned or a single day\'s data if resampleFreq implies that.
    • resampleFreq: (String, Required) - Specifies the time interval for price bars. Supported values include: 1min, 5min, 15min, 30min, 1hour, 6hour, 12hour, 1day. Crucial for defining the granularity of data for both live and historical requests.
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of objects, where each object represents price data for one requested crypto ticker.
    • Each object in the array contains ticker details and a priceData field which is itself a JSON array of price bar objects (CryptoPriceBarEntry).
    • The structure matches the example below.
  • Examples:
    • Latest 1-minute bars for BTCUSD (Live): GET /v1/crypto/prices/BTCUSD?resampleFreq=1min ```bash curl "http://localhost:5000/v1/crypto/prices/BTCUSD?resampleFreq=1min" ```
    • Latest 5-minute bars for BTCUSD and ETHUSD (Live, Bulk): GET /v1/crypto/prices/BTCUSD,ETHUSD?resampleFreq=5min ```bash curl "http://localhost:5000/v1/crypto/prices/BTCUSD,ETHUSD?resampleFreq=5min" ```
    • Historical daily bars for ETHBTC for a specific date range: GET /v1/crypto/prices/ETHBTC?startDate=2023-10-01&endDate=2023-10-02&resampleFreq=1day ```bash curl "http://localhost:5000/v1/crypto/prices/ETHBTC?startDate=2023-10-01&endDate=2023-10-02&resampleFreq=1day" ```
    • Historical hourly bars for LTCUSD for a single day: GET /v1/crypto/prices/LTCUSD?startDate=2023-10-01&resampleFreq=1hour
  • Example Response (for historical daily ETHBTC - illustrating the list structure for data and priceData):
{
  "meta": {
    "request_timestamp": "2023-10-27T12:05:00.543210Z",
    "data_source": "cached_data_store"
  },
  "data": [
    {
      "ticker": "ETHBTC",
      "baseCurrency": "ETH",
      "quoteCurrency": "BTC",
      "priceData": [ // Array of price bar entries for ETHBTC
        {
          "open": 0.05500,
          "high": 0.05550,
          "low": 0.05480,
          "close": 0.05520,
          "date": "2023-10-01T00:00:00Z", // Timestamp of the bar (UTC)
          "tradesDone": 1500,
          "volume": 250.75, // Volume in base currency
          "volumeNotional": 13.8417 // Volume in quote currency
        },
        {
          "open": 0.05520,
          "high": 0.05600,
          "low": 0.05510,
          "close": 0.05580,
          "date": "2023-10-02T00:00:00Z",
          "tradesDone": 1800,
          "volume": 300.50,
          "volumeNotional": 16.7679
        }
        // ... more bars for ETHBTC based on date range and resampleFreq ...
      ]
    }
    // If LTCBTC were also requested via <tickers>, its data would be another object in this outer "data" list,
    // with its own "priceData" array.
  ],
  "errors": null
}

2. Crypto Metadata

  • Description: Fetches metadata (like name, description, base/quote currency) for one or more crypto tickers.
  • Endpoint (All Tickers): GET /v1/crypto/meta
  • Endpoint (Specific Tickers): GET /v1/crypto/meta/<tickers> (comma-separated in path)
  • Path Parameters (Specific Tickers Endpoint):
    • tickers: (String, Required) - A single crypto ticker (e.g., BTCUSD) or a comma-separated list of tickers (e.g., BTCUSD,ETHUSD).
  • Query Parameters: None.
  • Success Response (200 OK):
    • The data field contains a JSON array (list) of crypto metadata objects.
    • Each object in the array represents metadata for one ticker and matches the structure shown in the example below.
  • Example Request (All): GET /v1/crypto/meta
  • Example Request (Specific): GET /v1/crypto/meta/BTCUSD,ETHUSD
  • Example Response (for specific BTCUSD,ETHUSD):
{
  "meta": {
    "request_timestamp": "2023-10-27T12:10:00.121212Z",
    "data_source": "live_data_feed"
  },
  "data": [
    {
      "ticker": "BTCUSD",
      "baseCurrency": "BTC",
      "quoteCurrency": "USD",
      "name": "Bitcoin / US Dollar",
      "description": "Price of Bitcoin in US Dollars from various exchanges."
    },
    {
      "ticker": "ETHUSD",
      "baseCurrency": "ETH",
      "quoteCurrency": "USD",
      "name": "Ethereum / US Dollar",
      "description": "Price of Ethereum in US Dollars from various exchanges."
    }
    // ... more metadata objects if more tickers requested or all were requested ...
  ],
  "errors": null
}

Market Data via WebSockets

This section explains how to use SQWARE Terminal WebSockets to receive real-time market data updates directly in your application.

Overview

SQWARE Terminal provides real-time market data updates via WebSockets. This allows your application to receive immediate notifications for subscribed events (e.g., new quotes, trades) as they happen. This complements our Market Data REST API (detailed above), which is used for requesting historical data, specific quotes on demand, and other non-streaming data.

Key Principle: The structure of the data objects pushed through WebSockets will exactly match the relevant data structures defined in the Market Data REST API sections of this document. This ensures consistency in how you handle data, whether retrieved via the REST API or streamed via WebSockets.


Connecting to WebSockets

To receive real-time data, your application will need to establish a WebSocket connection to our service.

  1. Endpoint URL: The specific WebSocket endpoint URL will be provided in your SQWARE Terminal account page or the official platform integration guides. Please refer to those resources for the correct URL to use.
  2. Authentication: Authentication is typically handled during the WebSocket connection handshake. This might involve sending an API key or a session token as part of the connection request headers or as an initial message once the connection is established. Please consult your API key and platform integration guides for specific authentication procedures.

Subscribing to Data Feeds

Once connected, your client will need to send a subscription message to specify which data feeds or events it wants to receive.

  • Subscription Message: This is typically a JSON message sent from your client to the WebSocket server. The format might look conceptually like this:

    {
      "action": "subscribe",
      "params": {
        "stream": "forex.quotes", // Example: subscribe to forex quotes
        "symbols": ["EURUSD", "GBPUSD"] // Specific symbols for the stream
      },
      "request_id": "your_unique_request_id_123" // Optional: for tracking responses
    }
    
  • Available Streams/Events: You can subscribe to various streams, such as:

    • Live Forex Quotes
    • Real-time Stock Trades/Quotes (e.g., from IEX)
    • Cryptocurrency Price Updates
    • (Refer to platform updates for a complete list of available streams and their subscription parameters.)
  • Subscription Confirmation: The server may send back a confirmation message acknowledging your subscription.


Message Payload Structure

Messages received from the WebSocket server will typically be in JSON format.

Each message might have a wrapper indicating the type of event or stream, but the core data payload will always align with the structures defined in the Market Data REST API sections of this document.

Example WebSocket Message (Conceptual - Forex Quote Update):

{
  "stream_type": "forex.quote.update", // Indicates the type of data/event
  "timestamp": "YYYY-MM-DDTHH:MM:SS.ffffffZ", // UTC timestamp of the event data point
  "data": {
    // THIS PAYLOAD IS SPECIFIC TO THE EVENT TYPE (forex.quote.update)
    // AND WILL MATCH THE "Forex Quote" STRUCTURE IN THE REST API SECTION.
    "ticker": "EURUSD",
    "quote_timestamp": "2023-10-27T09:59:58.987000Z",
    "bid_price": 1.0550,
    "bid_size": 1000000,
    "ask_price": 1.0552,
    "ask_size": 1000000,
    "mid_price": 1.0551
  }
}

Always refer to the relevant REST API endpoint documentation within this document for the precise structure of the data payload relevant to the type of real-time event you receive.


Managing Subscriptions & Best Practices

  • Unsubscribing: You can typically send an unsubscribe message (similar in format to the subscribe message) to stop receiving data for a particular stream.
  • Handle Disconnections: Implement logic in your client to detect WebSocket disconnections and attempt to reconnect automatically. Consider exponential backoff strategies for reconnections.
  • Efficient Parsing: Ensure your JSON parsing is efficient, especially for high-throughput streams.
  • Connection Limits: Be aware of any connection limits or message rate limits imposed by the service.
  • Error Handling: The WebSocket server might send error messages if a subscription request is invalid or other issues occur. Your client should be prepared to handle these.

Need help with real-time data via WebSockets? Join our 💬 Discord server or contact 📧 [email protected].