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
| Chrome | Firefox | Safari | Opera | Edge |
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
| 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getSymbolList | options: 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 |
getSymbolHolidays | region: 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getInfo | params: 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 information | iTick Stock Info |
getIPO | params: Object- region: string (market code, e.g. US, HK)- code: string (stock code, e.g. AAPL) | Promise<APIResponse<StockIPO>> | Get stock IPO information | iTick Stock IPO |
getSplit | params: Object- region: string (market code, e.g. US, HK)- code: string (stock code, e.g. AAPL) | Promise<APIResponse<StockSplit>> | Get stock split information | iTick Stock Split Factor |
getTick | params: Object- region: string (market code, e.g. US, HK)- code: string (stock code, e.g. AAPL) | Promise<APIResponse<TickData>> | Get latest stock tick data | iTick Stock Real-time Tick |
getQuote | params: Object- region: string (market code, e.g. US, HK)- code: string (stock code, e.g. AAPL) | Promise<APIResponse<QuoteData>> | Get latest stock quote | iTick Stock Real-time Quote |
getDepth | params: Object- region: string (market code, e.g. US, HK)- code: string (stock code, e.g. AAPL) | Promise<APIResponse<DepthData>> | Get latest stock depth | iTick Stock Real-time Depth |
getKline | options: 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 data | iTick Stock K-line |
getTicks | params: Object- region: string (market code)- codes: string[] | string (stock code list) | Promise<APIResponse<TickDataMap>> | Get batch stock tick data | iTick Stock Batch Ticks |
getQuotes | params: Object- region: string (market code)- codes: string[] | string (stock code list) | Promise<APIResponse<QuoteDataMap>> | Get batch stock quotes | iTick Stock Batch Quotes |
getDepths | params: Object- region: string (market code)- codes: string[] | string (stock code list) | Promise<APIResponse<DepthDataMap>> | Get batch stock depths | iTick Stock Batch Depths |
getKlines | options: 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-lines | iTick Stock Batch K-lines |
createSocket | options?: CreateSocketOptions (optional, WebSocket connection options) | SocketClient | Create WebSocket connection for real-time data subscription | iTick 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getTick | params: Object- region: string (market code, e.g. BA, BT, PB)- code: string (asset code, e.g. BTCUSDT) | Promise<APIResponse<TickData>> | Get latest cryptocurrency tick data | iTick Crypto Real-time Tick |
getQuote | params: Object- region: string (market code, e.g. BA, BT, PB)- code: string (asset code, e.g. BTCUSDT) | Promise<APIResponse<QuoteData>> | Get latest cryptocurrency quote | iTick Crypto Real-time Quote |
getDepth | params: Object- region: string (market code, e.g. BA, BT, PB)- code: string (asset code, e.g. BTCUSDT) | Promise<APIResponse<DepthData>> | Get latest cryptocurrency depth | iTick Crypto Real-time Depth |
getKline | options: 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 data | iTick Crypto K-line |
getTicks | params: Object- region: string (market code)- codes: string[] | string (asset code list) | Promise<APIResponse<TickDataMap>> | Get batch cryptocurrency tick data | iTick Crypto Batch Ticks |
getQuotes | params: Object- region: string (market code)- codes: string[] | string (asset code list) | Promise<APIResponse<QuoteDataMap>> | Get batch cryptocurrency quotes | iTick Crypto Batch Quotes |
getDepths | params: Object- region: string (market code)- codes: string[] | string (asset code list) | Promise<APIResponse<DepthDataMap>> | Get batch cryptocurrency depths | iTick Crypto Batch Depths |
getKlines | options: 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-lines | iTick Crypto Batch K-lines |
createSocket | options?: CreateSocketOptions (optional, WebSocket connection options) | SocketClient | Create WebSocket connection for real-time data subscription | iTick 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getTick | params: Object- region: string (market code, e.g. GB)- code: string (currency pair code, e.g. EURUSD) | Promise<APIResponse<TickData>> | Get latest forex tick data | iTick Forex Real-time Tick |
getQuote | params: Object- region: string (market code, e.g. GB)- code: string (currency pair code, e.g. EURUSD) | Promise<APIResponse<QuoteData>> | Get latest forex quote | iTick Forex Real-time Quote |
getDepth | params: Object- region: string (market code, e.g. GB)- code: string (currency pair code, e.g. EURUSD) | Promise<APIResponse<DepthData>> | Get latest forex depth | iTick Forex Real-time Depth |
getKline | options: 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 data | iTick Forex K-line |
getTicks | params: Object- region: string (market code)- codes: string[] | string (currency pair code list) | Promise<APIResponse<TickDataMap>> | Get batch forex tick data | iTick Forex Batch Ticks |
getQuotes | params: Object- region: string (market code)- codes: string[] | string (currency pair code list) | Promise<APIResponse<QuoteDataMap>> | Get batch forex quotes | iTick Forex Batch Quotes |
getDepths | params: Object- region: string (market code)- codes: string[] | string (currency pair code list) | Promise<APIResponse<DepthDataMap>> | Get batch forex depths | iTick Forex Batch Depths |
getKlines | options: 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-lines | iTick Forex Batch K-lines |
createSocket | options?: CreateSocketOptions (optional, WebSocket connection options) | SocketClient | Create WebSocket connection for real-time data subscription | iTick 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getTick | params: Object- region: string (market code, e.g. US, GB)- code: string (index code, e.g. DJI, SPX) | Promise<APIResponse<TickData>> | Get latest index tick data | iTick Index Real-time Tick |
getQuote | params: Object- region: string (market code, e.g. US, GB)- code: string (index code, e.g. DJI, SPX) | Promise<APIResponse<QuoteData>> | Get latest index quote | iTick Index Real-time Quote |
getDepth | params: Object- region: string (market code, e.g. US, GB)- code: string (index code, e.g. DJI, SPX) | Promise<APIResponse<DepthData>> | Get latest index depth | iTick Index Real-time Depth |
getKline | options: 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 data | iTick Index K-line |
getTicks | params: Object- region: string (market code)- codes: string[] | string (index code list) | Promise<APIResponse<TickDataMap>> | Get batch index tick data | iTick Index Batch Ticks |
getQuotes | params: Object- region: string (market code)- codes: string[] | string (index code list) | Promise<APIResponse<QuoteDataMap>> | Get batch index quotes | iTick Index Batch Quotes |
getDepths | params: Object- region: string (market code)- codes: string[] | string (index code list) | Promise<APIResponse<DepthDataMap>> | Get batch index depths | iTick Index Batch Depths |
getKlines | options: 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-lines | iTick Index Batch K-lines |
createSocket | options?: CreateSocketOptions (optional, WebSocket connection options) | SocketClient | Create WebSocket connection for real-time data subscription | iTick 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getTick | params: 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 data | iTick Futures Real-time Tick |
getQuote | params: 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 quote | iTick Futures Real-time Quote |
getDepth | params: 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 depth | iTick Futures Real-time Depth |
getKline | options: 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 data | iTick Futures K-line |
getTicks | params: Object- region: string (market code)- codes: string[] | string (futures contract code list) | Promise<APIResponse<TickDataMap>> | Get batch futures contract tick data | iTick Futures Batch Ticks |
getQuotes | params: Object- region: string (market code)- codes: string[] | string (futures contract code list) | Promise<APIResponse<QuoteDataMap>> | Get batch futures contract quotes | iTick Futures Batch Quotes |
getDepths | params: Object- region: string (market code)- codes: string[] | string (futures contract code list) | Promise<APIResponse<DepthDataMap>> | Get batch futures contract depths | iTick Futures Batch Depths |
getKlines | options: 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-lines | iTick Futures Batch K-lines |
createSocket | options?: CreateSocketOptions (optional, WebSocket connection options) | SocketClient | Create WebSocket connection for real-time data subscription | iTick 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 Name | Parameter Description | Return Type | Description | Detailed Parameters |
|---|---|---|---|---|
getTick | params: Object- region: string (market code, e.g. US, HK)- code: string (fund code, e.g. SPY, QQQ) | Promise<APIResponse<TickData>> | Get latest fund tick data | iTick Fund Real-time Tick |
getQuote | params: Object- region: string (market code, e.g. US, HK)- code: string (fund code, e.g. SPY, QQQ) | Promise<APIResponse<QuoteData>> | Get latest fund quote | iTick Fund Real-time Quote |
getDepth | params: Object- region: string (market code, e.g. US, HK)- code: string (fund code, e.g. SPY, QQQ) | Promise<APIResponse<DepthData>> | Get latest fund depth | iTick Fund Real-time Depth |
getKline | options: 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 data | iTick Fund K-line |
getTicks | params: Object- region: string (market code)- codes: string[] | string (fund code list) | Promise<APIResponse<TickDataMap>> | Get batch fund tick data | iTick Fund Batch Ticks |
getQuotes | params: Object- region: string (market code)- codes: string[] | string (fund code list) | Promise<APIResponse<QuoteDataMap>> | Get batch fund quotes | iTick Fund Batch Quotes |
getDepths | params: Object- region: string (market code)- codes: string[] | string (fund code list) | Promise<APIResponse<DepthDataMap>> | Get batch fund depths | iTick Fund Batch Depths |
getKlines | options: 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-lines | iTick Fund Batch K-lines |
createSocket | options?: CreateSocketOptions (optional, WebSocket connection options) | SocketClient | Create WebSocket connection for real-time data subscription | iTick WebSocket Funds |
WebSocket Real-time Data
Supported Data Types
quote: Real-time quotedepth: Depth of markettick: Latest tickkline@1morkline@1: 1-minute K-linekline@5morkline@2: 5-minute K-linekline@15morkline@3: 15-minute K-linekline@30morkline@4: 30-minute K-linekline@1horkline@5: 1-hour K-linekline@2horkline@6: 2-hour K-line (crypto only)kline@4horkline@7: 4-hour K-line (crypto only)kline@1dorkline@8: Daily K-linekline@1workline@9: Weekly K-linekline@1Morkline@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;
}
});
- 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.
- 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.




