JavaScript SDK - Browser Financial Data API REST & WebSocket Real-Time Streaming iTick Documentation SDK & Developer Tools Official iTick JavaScript Browser SDK providing REST API queries and WebSocket real-time data subscription for basic, stock, index, futures, fund, forex, and cryptocurrency market data with TypeScript support.

JavaScript SDK Documentation

The JavaScript version of iTick API SDK provides REST API queries and WebSocket real-time data subscription for basic, stock, index, futures, fund, forex, and cryptocurrency data. It is used to access real-time financial market data from the iTick API in browser environments.

Features

  • Comprehensive Market Coverage: Access global financial markets including stocks, cryptocurrencies, forex, indices, futures, and funds
  • Real-time Data: WebSocket-based real-time data streaming with automatic reconnection support
  • RESTful API: Simple and intuitive REST API for retrieving historical data and snapshots
  • Type Safety: Full TypeScript support with comprehensive type definitions
  • Automatic Reconnection: Built-in automatic reconnection mechanism (5-second interval, configurable unlimited attempts)
  • Heartbeat Keep-alive: Automatic ping/pong mechanism (30-second interval) to maintain stable connections
  • Modular Design: Independent modules organized by asset type for clearer structure
  • Flexible Subscription: Support for quote, depth, tick, and K-line data subscriptions

Supported Browsers

ChromeFirefoxSafariOperaEdge
Chrome browser logoFirefox browser logoSafari browser logoOpera browser logoEdge browser logo
Latest ✔Latest ✔Latest ✔Latest ✔Latest ✔

Installation

Project Installation

Using npm:

npm install @itick/browser-sdk

Using yarn:

yarn add @itick/browser-sdk

Using pnpm:

pnpm add @itick/browser-sdk

CDN

<!-- Using unpkg CDN -->
<script src="https://unpkg.com/@itick/browser-sdk@latest/dist/itick-sdk.min.js"></script>

<!-- Or using jsDelivr CDN -->
<script src="https://cdn.jsdelivr.net/npm/@itick/browser-sdk@latest/dist/itick-sdk.min.js"></script>

<script>
  const { BaseClient, StockClient, CryptoClient, ForexClient, IndicesClient, FutureClient, FundClient } = window.iTickSDK;
</script>

Quick Start

Basic Usage

import { StockClient } from "@itick/browser-sdk";

// Optional configuration (default host api.itick.org), other modules follow this configuration
const options = {
  baseURL: "https://api-free.itick.org",
  wssURL: "wss://api-free.itick.org",
};
// API Token
const token = process.env.ITICK_TOKEN;
// Initialize client
const client = new StockClient(token, options);

// Get stock quote
async function getQuote() {
  try {
    const response = await client.getQuote({ region: "US", code: "AAPL" });

    if (response.code === 0 && response.data) {
      console.log("Latest Price:", response.data.ld);
      console.log("Change %:", response.data.chp);
    }
  } catch (error) {
    console.error("Error:", error.message);
  }
}

getQuote();

Real-time Data via WebSocket

import { CryptoClient } from "@itick/browser-sdk";
const client = new CryptoClient(token);

// Create WebSocket connection with subscription data. SDK handles connection and automatically resubscribes after reconnection. No need to resend subscription data.
const socket = client.createSocket({
  maxReconnectTimes: 10, // Maximum reconnection attempts. Default is 0 (unlimited) if not specified
  pingInterval: 30000, // Ping interval, default 30 seconds
  reconnectInterval: 5000, // Reconnection interval, default 5 seconds
  subscribeData: {
    codes: ["BTCUSDT$BA", "ETHUSDT$BA"],
    types: ["quote", "tick"],
  },
});

// Create custom WebSocket connection
const socket = client.createSocket();

// Send subscription data after successful connection or reconnection
socket.onSocketOpen(() => {
  socket.subscribeData({
    codes: ["BTCUSDT$BA", "ETHUSDT$BA"],
    types: ["quote", "tick"],
  });
});

// Handle received messages
socket.onSocketMessage((res) => {
  console.log("Received data:", res);
});

// Handle errors
socket.onSocketError((error) => {
  console.error("WebSocket error:", error);
});

// Disconnect when done
// socket.disconnectSocket();

API Reference

Base Module

Financial product lists, market holiday information, and trading hours information.

import { BaseClient } from "@itick/browser-sdk";

const client = new BaseClient(token);

// Get symbol list
await client.getSymbolList({ type: "stock", region: "US" });
await client.getSymbolList({ type: "crypto", region: "BA" });
await client.getSymbolList({ type: "forex", region: "GB" });

// Get market holidays
await client.getSymbolHolidays("US");
await client.getSymbolHolidays("HK");

BaseClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getSymbolListoptions: Object
- type:enum (product type, e.g. stock,forex,fund,future,indices)
- region:string (market region code, e.g. US, BA, GB)
Promise<APIResponse<SymbolListData[]>>Get financial product list for specified market and asset type.iTick Symbol List
getSymbolHolidaysregion: string (market region code, e.g. US, HK)Promise<APIResponse<HolidayData[]>>Get holiday information for a specified market, including trading and non-trading schedules.iTick Market Holidays

Stock Module

Access global stock market data such as US and Hong Kong stocks.

import { StockClient } from "@itick/browser-sdk";

const client = new StockClient(token);

// Get single stock information
await client.getInfo({ region: "US", code: "AAPL" });

// Get real-time quote
await client.getQuote({ region: "US", code: "AAPL" });

// Get depth
await client.getDepth({ region: "US", code: "AAPL" });

// Get latest tick
await client.getTick({ region: "US", code: "AAPL" });

// Get K-line data
await client.getKline({
  region: "US",
  code: "AAPL",
  interval: "5m",
  limit: 100,
});

// Batch queries
await client.getQuotes({ region: "US", codes: ["AAPL", "MSFT", "GOOGL"] });
await client.getDepths({ region: "US", codes: ["AAPL", "MSFT"] });
await client.getTicks({ region: "US", codes: ["AAPL", "MSFT"] });
await client.getKlines({
  region: "US",
  codes: ["AAPL", "MSFT"],
  interval: "1d",
  limit: 50,
});

// IPO information
await client.getIPO({ region: "US", code: "RIVN" });

// Split factor 
await client.getSplit({ region: "US", code: "AAPL" });

StockClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getInfoparams: Object
- region: string (market code, e.g. US, HK)
- code: string (stock code, e.g. AAPL)
-exchange?:string (optional, listed exchange, e.g. NYSE, NASDAQ)
Promise<APIResponse<StockInfo>>Get basic stock informationiTick Stock Info
getIPOparams: Object
- region: string (market code, e.g. US, HK)
- code: string (stock code, e.g. AAPL)
Promise<APIResponse<StockIPO>>Get stock IPO informationiTick Stock IPO
getSplitparams: Object
- region: string (market code, e.g. US, HK)
- code: string (stock code, e.g. AAPL)
Promise<APIResponse<StockSplit>>Get stock split informationiTick Stock Split Factor
getTickparams: Object
- region: string (market code, e.g. US, HK)
- code: string (stock code, e.g. AAPL)
Promise<APIResponse<TickData>>Get latest stock tick dataiTick Stock Real-time Tick
getQuoteparams: Object
- region: string (market code, e.g. US, HK)
- code: string (stock code, e.g. AAPL)
Promise<APIResponse<QuoteData>>Get latest stock quoteiTick Stock Real-time Quote
getDepthparams: Object
- region: string (market code, e.g. US, HK)
- code: string (stock code, e.g. AAPL)
Promise<APIResponse<DepthData>>Get latest stock depthiTick Stock Real-time Depth
getKlineoptions: GetKlineOptions
- region: string (market code)
- code: string (stock code)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineData[]>>Get individual stock K-line dataiTick Stock K-line
getTicksparams: Object
- region: string (market code)
- codes: string[] | string (stock code list)
Promise<APIResponse<TickDataMap>>Get batch stock tick dataiTick Stock Batch Ticks
getQuotesparams: Object
- region: string (market code)
- codes: string[] | string (stock code list)
Promise<APIResponse<QuoteDataMap>>Get batch stock quotesiTick Stock Batch Quotes
getDepthsparams: Object
- region: string (market code)
- codes: string[] | string (stock code list)
Promise<APIResponse<DepthDataMap>>Get batch stock depthsiTick Stock Batch Depths
getKlinesoptions: GetKlinesOptions
- region: string (market code)
- codes: string[] | string (stock code list)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineDataMap>>Get batch stock K-linesiTick Stock Batch K-lines
createSocketoptions?: CreateSocketOptions (optional, WebSocket connection options)SocketClientCreate WebSocket connection for real-time data subscriptioniTick WebSocket Stocks

Cryptocurrency Module

Access cryptocurrency market data from multiple exchanges.

import { CryptoClient } from "@itick/browser-sdk";

const client = new CryptoClient(token);

// Get real-time data
await client.getQuote({ region: "BA", code: "BTCUSDT" });
await client.getDepth({ region: "BA", code: "ETHUSDT" });
await client.getTick({ region: "BA", code: "BTCUSDT" });

// Get K-line data
await client.getKline({
  region: "BA",
  code: "BTCUSDT",
  interval: "1h",
  limit: 100,
});

// Batch queries
await client.getQuotes({ region: "BA", codes: ["BTCUSDT", "ETHUSDT"] });

CryptoClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getTickparams: Object
- region: string (market code, e.g. BA, BT, PB)
- code: string (asset code, e.g. BTCUSDT)
Promise<APIResponse<TickData>>Get latest cryptocurrency tick dataiTick Crypto Real-time Tick
getQuoteparams: Object
- region: string (market code, e.g. BA, BT, PB)
- code: string (asset code, e.g. BTCUSDT)
Promise<APIResponse<QuoteData>>Get latest cryptocurrency quoteiTick Crypto Real-time Quote
getDepthparams: Object
- region: string (market code, e.g. BA, BT, PB)
- code: string (asset code, e.g. BTCUSDT)
Promise<APIResponse<DepthData>>Get latest cryptocurrency depthiTick Crypto Real-time Depth
getKlineoptions: GetKlineOptions
- region: string (market code)
- code: string (asset code)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineData[]>>Get individual cryptocurrency K-line dataiTick Crypto K-line
getTicksparams: Object
- region: string (market code)
- codes: string[] | string (asset code list)
Promise<APIResponse<TickDataMap>>Get batch cryptocurrency tick dataiTick Crypto Batch Ticks
getQuotesparams: Object
- region: string (market code)
- codes: string[] | string (asset code list)
Promise<APIResponse<QuoteDataMap>>Get batch cryptocurrency quotesiTick Crypto Batch Quotes
getDepthsparams: Object
- region: string (market code)
- codes: string[] | string (asset code list)
Promise<APIResponse<DepthDataMap>>Get batch cryptocurrency depthsiTick Crypto Batch Depths
getKlinesoptions: GetKlinesOptions
- region: string (market code)
- codes: string[] | string (asset code list)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineDataMap>>Get batch cryptocurrency K-linesiTick Crypto Batch K-lines
createSocketoptions?: CreateSocketOptions (optional, WebSocket connection options)SocketClientCreate WebSocket connection for real-time data subscriptioniTick WebSocket Cryptocurrency

Forex Module

Access forex market data.

import { ForexClient } from "@itick/browser-sdk";

const client = new ForexClient(token);

await client.getQuote({ region: "GB", code: "EURUSD" });
await client.getDepth({ region: "GB", code: "GBPUSD" });
await client.getTick({ region: "GB", code: "USDJPY" });
await client.getKline({ region: "GB", code: "EURUSD", interval: "1d", limit: 50 });

ForexClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getTickparams: Object
- region: string (market code, e.g. GB)
- code: string (currency pair code, e.g. EURUSD)
Promise<APIResponse<TickData>>Get latest forex tick dataiTick Forex Real-time Tick
getQuoteparams: Object
- region: string (market code, e.g. GB)
- code: string (currency pair code, e.g. EURUSD)
Promise<APIResponse<QuoteData>>Get latest forex quoteiTick Forex Real-time Quote
getDepthparams: Object
- region: string (market code, e.g. GB)
- code: string (currency pair code, e.g. EURUSD)
Promise<APIResponse<DepthData>>Get latest forex depthiTick Forex Real-time Depth
getKlineoptions: GetKlineOptions
- region: string (market code)
- code: string (currency pair code)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineData[]>>Get individual forex K-line dataiTick Forex K-line
getTicksparams: Object
- region: string (market code)
- codes: string[] | string (currency pair code list)
Promise<APIResponse<TickDataMap>>Get batch forex tick dataiTick Forex Batch Ticks
getQuotesparams: Object
- region: string (market code)
- codes: string[] | string (currency pair code list)
Promise<APIResponse<QuoteDataMap>>Get batch forex quotesiTick Forex Batch Quotes
getDepthsparams: Object
- region: string (market code)
- codes: string[] | string (currency pair code list)
Promise<APIResponse<DepthDataMap>>Get batch forex depthsiTick Forex Batch Depths
getKlinesoptions: GetKlinesOptions
- region: string (market code)
- codes: string[] | string (currency pair code list)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineDataMap>>Get batch forex K-linesiTick Forex Batch K-lines
createSocketoptions?: CreateSocketOptions (optional, WebSocket connection options)SocketClientCreate WebSocket connection for real-time data subscriptioniTick WebSocket Forex

Indices Module

Access global stock index data.

import { IndicesClient } from "@itick/browser-sdk";

const client = new IndicesClient(token);

await client.getQuote({ region: "US", code: "SPX" });
await client.getDepth({ region: "US", code: "NDX" });
await client.getKline({ region: "US", code: "DJI", interval: "1w", limit: 20 });

IndicesClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getTickparams: Object
- region: string (market code, e.g. US, GB)
- code: string (index code, e.g. DJI, SPX)
Promise<APIResponse<TickData>>Get latest index tick dataiTick Index Real-time Tick
getQuoteparams: Object
- region: string (market code, e.g. US, GB)
- code: string (index code, e.g. DJI, SPX)
Promise<APIResponse<QuoteData>>Get latest index quoteiTick Index Real-time Quote
getDepthparams: Object
- region: string (market code, e.g. US, GB)
- code: string (index code, e.g. DJI, SPX)
Promise<APIResponse<DepthData>>Get latest index depthiTick Index Real-time Depth
getKlineoptions: GetKlineOptions
- region: string (market code)
- code: string (index code)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineData[]>>Get individual index K-line dataiTick Index K-line
getTicksparams: Object
- region: string (market code)
- codes: string[] | string (index code list)
Promise<APIResponse<TickDataMap>>Get batch index tick dataiTick Index Batch Ticks
getQuotesparams: Object
- region: string (market code)
- codes: string[] | string (index code list)
Promise<APIResponse<QuoteDataMap>>Get batch index quotesiTick Index Batch Quotes
getDepthsparams: Object
- region: string (market code)
- codes: string[] | string (index code list)
Promise<APIResponse<DepthDataMap>>Get batch index depthsiTick Index Batch Depths
getKlinesoptions: GetKlinesOptions
- region: string (market code)
- codes: string[] | string (index code list)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineDataMap>>Get batch index K-linesiTick Index Batch K-lines
createSocketoptions?: CreateSocketOptions (optional, WebSocket connection options)SocketClientCreate WebSocket connection for real-time data subscriptioniTick WebSocket Indices

Futures Module

Access futures market data.

import { FutureClient } from "@itick/browser-sdk";

const client = new FutureClient(token);

await client.getQuote({ region: "US", code: "ES" });
await client.getDepth({ region: "US", code: "NQ" });
await client.getKline({ region: "US", code: "CL", interval: "5m", limit: 100 });

FutureClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getTickparams: Object
- region: string (market code, e.g. US, CN, HK)
- code: string (futures contract code, e.g. CL, GC)
Promise<APIResponse<TickData>>Get latest futures contract tick dataiTick Futures Real-time Tick
getQuoteparams: Object
- region: string (market code, e.g. US, CN, HK)
- code: string (futures contract code, e.g. CL, GC)
Promise<APIResponse<QuoteData>>Get latest futures contract quoteiTick Futures Real-time Quote
getDepthparams: Object
- region: string (market code, e.g. US, CN, HK)
- code: string (futures contract code, e.g. CL, GC)
Promise<APIResponse<DepthData>>Get latest futures contract depthiTick Futures Real-time Depth
getKlineoptions: GetKlineOptions
- region: string (market code)
- code: string (futures contract code)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineData[]>>Get individual futures contract K-line dataiTick Futures K-line
getTicksparams: Object
- region: string (market code)
- codes: string[] | string (futures contract code list)
Promise<APIResponse<TickDataMap>>Get batch futures contract tick dataiTick Futures Batch Ticks
getQuotesparams: Object
- region: string (market code)
- codes: string[] | string (futures contract code list)
Promise<APIResponse<QuoteDataMap>>Get batch futures contract quotesiTick Futures Batch Quotes
getDepthsparams: Object
- region: string (market code)
- codes: string[] | string (futures contract code list)
Promise<APIResponse<DepthDataMap>>Get batch futures contract depthsiTick Futures Batch Depths
getKlinesoptions: GetKlinesOptions
- region: string (market code)
- codes: string[] | string (futures contract code list)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineDataMap>>Get batch futures contract K-linesiTick Futures Batch K-lines
createSocketoptions?: CreateSocketOptions (optional, WebSocket connection options)SocketClientCreate WebSocket connection for real-time data subscriptioniTick WebSocket Futures

Fund Module

Access mutual fund and ETF data.

import { FundClient } from "@itick/browser-sdk";

const client = new FundClient(token);

await client.getQuote({ region: "US", code: "VOO" });
await client.getDepth({ region: "US", code: "QQQ" });
await client.getKline({ region: "US", code: "SPY", interval: "1d", limit: 100 });

FundClient Method Reference Table

Method NameParameter DescriptionReturn TypeDescriptionDetailed Parameters
getTickparams: Object
- region: string (market code, e.g. US, HK)
- code: string (fund code, e.g. SPY, QQQ)
Promise<APIResponse<TickData>>Get latest fund tick dataiTick Fund Real-time Tick
getQuoteparams: Object
- region: string (market code, e.g. US, HK)
- code: string (fund code, e.g. SPY, QQQ)
Promise<APIResponse<QuoteData>>Get latest fund quoteiTick Fund Real-time Quote
getDepthparams: Object
- region: string (market code, e.g. US, HK)
- code: string (fund code, e.g. SPY, QQQ)
Promise<APIResponse<DepthData>>Get latest fund depthiTick Fund Real-time Depth
getKlineoptions: GetKlineOptions
- region: string (market code)
- code: string (fund code)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineData[]>>Get individual fund K-line dataiTick Fund K-line
getTicksparams: Object
- region: string (market code)
- codes: string[] | string (fund code list)
Promise<APIResponse<TickDataMap>>Get batch fund tick dataiTick Fund Batch Ticks
getQuotesparams: Object
- region: string (market code)
- codes: string[] | string (fund code list)
Promise<APIResponse<QuoteDataMap>>Get batch fund quotesiTick Fund Batch Quotes
getDepthsparams: Object
- region: string (market code)
- codes: string[] | string (fund code list)
Promise<APIResponse<DepthDataMap>>Get batch fund depthsiTick Fund Batch Depths
getKlinesoptions: GetKlinesOptions
- region: string (market code)
- codes: string[] | string (fund code list)
- interval: KlineType (K-line interval type)
- limit: number (returned data count, max 500)
- et?: string | number (optional, end timestamp)
Promise<APIResponse<KlineDataMap>>Get batch fund K-linesiTick Fund Batch K-lines
createSocketoptions?: CreateSocketOptions (optional, WebSocket connection options)SocketClientCreate WebSocket connection for real-time data subscriptioniTick WebSocket Funds

WebSocket Real-time Data

Supported Data Types

  • quote: Real-time quote
  • depth: Depth of market
  • tick: Latest tick
  • kline@1m or kline@1: 1-minute K-line
  • kline@5m or kline@2: 5-minute K-line
  • kline@15m or kline@3: 15-minute K-line
  • kline@30m or kline@4: 30-minute K-line
  • kline@1h or kline@5: 1-hour K-line
  • kline@2h or kline@6: 2-hour K-line (crypto only)
  • kline@4h or kline@7: 4-hour K-line (crypto only)
  • kline@1d or kline@8: Daily K-line
  • kline@1w or kline@9: Weekly K-line
  • kline@1M or kline@10: Monthly K-line

Connection Options

const socket = client.createSocket({
  maxReconnectTimes: 10, // Maximum reconnection attempts (0 = unlimited)
  reconnectInterval: 5000, // Reconnection interval (milliseconds)
  pingInterval: 30000, // Ping interval (milliseconds)
  subscribeData: {
    codes: ["AAPL$US", "MSFT$US"],
    types: ["quote", "tick", "kline@1m"],
  },
});

Event Handlers

// Connection opened
socket.onSocketOpen(() => {
  console.log("Connected!");
});

// Receive message
socket.onSocketMessage((data) => {
  console.log("Received data:", data);
});

// Error occurred
socket.onSocketError((error) => {
  console.error("Error:", error);
});

// Connection closed
socket.onSocketClose(() => {
  console.log("Disconnected");
});

// Check connection status
const isConnected = socket.checkSocketConnected();

// Disconnect
socket.disconnectSocket();

Dynamic Subscriptions

// Subscribe after connection
socket.subscribeSocket({
  ac: "subscribe",
  types: ["quote", "depth"],
  codes: ["TSLA$US", "NVDA$US"],
});

// Unsubscribe
socket.subscribeSocket({
  ac: "unsubscribe",
  types: ["tick"],
  codes: ["AAPL$US"],
});

Error Handling

try {
  const response = await client.getQuote({ region: "US", code: "AAPL" });

  if (response.code !== 0) {
    console.error("API Error:", response.msg);
    return;
  }

  // Process data
  console.log(response.data);
} catch (error) {
  if (error instanceof Error) {
    console.error("Network error:", error.message);
  }
}

TypeScript Support

Complete TypeScript support and comprehensive type definitions:

import type {
  APIResponse,
  QuoteData,
  SocketKlineData,
  SocketTickData,
  SocketDepthData,
  SocketQuoteData,
} from "@itick/browser-sdk";

// Type-safe response
const response: APIResponse<QuoteData> = await client.getQuote({
  region: "US",
  code: "AAPL",
});

// Type-safe WebSocket messages
socket.onSocketMessage((response) => {
  const { code, data, msg, resAc } = response;
  if (data?.type === "quote") {
    const quoteData: SocketQuoteData = data;
  }
  if (data?.type === "kline@1") {
    const klineData: SocketKlineData = data;
  }
  if (data?.type === "tick") {
    const tickData: SocketTickData = data;
  }
  if (data?.type === "depth") {
    const depthData: SocketDepthData = data;
  }
});
  1. Node.js SDK

    Official iTick Node.js SDK providing REST API queries and WebSocket real-time data subscription for basic, stock, index, futures, fund, forex, and cryptocurrency market data with TypeScript support.

  2. MCP Server

    Official iTick MCP Server providing REST API queries and WebSocket real-time data subscriptions for basics, stocks, indices, futures, funds, forex, and cryptocurrencies.