Market Data

The TypeScript SDK provides a QuoteClient that wraps all market-data endpoints. Every method returns a strongly-typed response object. v0.4.0 changed 4 methods (getBrief / getQuoteDepth / getTradeTick / getFutureRealTimeQuote) to Request-object signatures (breaking) and added 41 new methods covering stock basics, options, futures, funds, warrants, industries, financial calendar, overnight quotes, etc. Request parameters are written in camelCase in TypeScript and are transparently converted to snake_case on the wire.

Quick Start

import {
  createClientConfig,
  HttpClient,
  QuoteClient,
} from '@tigeropenapi/tigeropen';

const config = createClientConfig();
const qc = new QuoteClient(new HttpClient(config, undefined, { useQuoteServerUrl: true }));

// Market status
const states = await qc.getMarketState('US');

// Real-time briefs (v0.4.0: Request object)
const briefs = await qc.getBrief({ symbols: ['AAPL', 'TSLA'] });

// K-line
const klines = await qc.getKline('AAPL', 'day');

Basic Quotes

getMarketState

qc.getMarketState(market: string): Promise<MarketState[]>

Description

Current trading session status for the specified market.

Parameters

NameTypeRequiredDescription
marketstringYesMarket code: 'US' / 'HK' / 'CN' / 'SG'

Returns

Promise<MarketState[]> — each item has market, marketStatus, status, openTime.

Example

const states = await qc.getMarketState('US');

getBrief

qc.getBrief(req: BriefRequest): Promise<Brief[]>

v0.4.0 Breaking: changed from positional symbols: string[] to Request object.

Description

Real-time snapshot quotes. Wire method quote_real_time.

Request — BriefRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes, e.g. ['AAPL', 'TSLA']
includeHourTradingbooleanNoInclude pre/post session
secTypestringNoSecurity type
langstringNoLanguage

Returns

Promise<Brief[]>symbol, latestPrice, preClose, open/high/low/close, change/changeRate, volume, bidPrice/askPrice, latestTime, etc.

Example

const briefs = await qc.getBrief({
  symbols: ['AAPL', 'TSLA', '00700'],
});
for (const b of briefs) {
  console.log(`${b.symbol} ${b.latestPrice} (${b.changeRate})`);
}

getKline

qc.getKline(symbol: string, period: string): Promise<Kline[]>

Description

Historical OHLCV candles for the symbol.

Parameters

NameTypeRequiredDescription
symbolstringYesStock code
periodstringYes'day' / 'week' / 'month' / 'year' / '1min' / '5min' / '15min' / '30min' / '60min'

Returns

Promise<Kline[]>symbol, period, items: KlineItem[] (time/open/high/low/close/volume/amount), optional nextPageToken.

Example

const klines = await qc.getKline('AAPL', 'day');

getTimeline

qc.getTimeline(symbols: string[]): Promise<Timeline[]>

Description

Intraday minute-level price and volume timeline for today's session.

Parameters

NameTypeRequiredDescription
symbolsstring[]YesStock codes

Returns

Promise<Timeline[]> — each item has symbol, period, preClose, plus intraday/preHours/afterHours buckets (each with items: TimelineItem[]).

Example

const tl = await qc.getTimeline(['AAPL']);

getTradeTick

qc.getTradeTick(req: TradeTickRequest): Promise<TradeTick[]>

v0.4.0 Breaking: changed from positional symbols: string[] to Request object.

Description

Tick-by-tick trades. Wire method trade_tick.

Request — TradeTickRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
beginIndexnumberNoStart index
endIndexnumberNoEnd index
limitnumberNoRow limit
langstringNoLanguage

Returns

Promise<TradeTick[]>symbol, beginIndex, endIndex, items (time/price/volume/type).

Example

const ticks = await qc.getTradeTick({ symbols: ['AAPL'] });

getQuoteDepth

qc.getQuoteDepth(req: DepthQuoteRequest): Promise<Depth[]>

v0.4.0 Breaking: changed from positional (symbol, market) to Request object; symbols now supports batch.

Description

Order-book depth. Only 'US' / 'HK'. Wire method quote_depth.

Request — DepthQuoteRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
marketstringNoMarket: 'US' / 'HK'
tradeSessionstringNoTrading session
langstringNoLanguage

Returns

Promise<Depth[]>symbol, asks, bids; each DepthLevel has price/count/volume.

Example

const depths = await qc.getQuoteDepth({
  symbols: ['AAPL'],
  market: 'US',
});

Option Quotes

getOptionExpiration

qc.getOptionExpiration(symbol: string): Promise<OptionExpiration[]>

Description

Option expiration dates for the underlying.

Parameters

NameTypeRequiredDescription
symbolstringYesUnderlying symbol

Returns

Promise<OptionExpiration[]>symbol, dates: string[], timestamps: number[], optional optionSymbols/periods/counts.

Example

const exps = await qc.getOptionExpiration('AAPL');

getOptionChain

qc.getOptionChain(symbol: string, expiry: string): Promise<OptionChain[]>

Description

Full option chain for a given expiry. expiry must be 'YYYY-MM-DD'; the SDK converts to a millisecond timestamp on the wire.

Parameters

NameTypeRequiredDescription
symbolstringYesUnderlying symbol
expirystringYesExpiration date in 'YYYY-MM-DD' format

Returns

Promise<OptionChain[]>symbol, expiry, items: OptionChainRow[]. Each row has optional call / put leg (OptionLeg) with greeks, bid/ask, IV, etc.

Example

const chain = await qc.getOptionChain('AAPL', '2025-01-17');

getOptionBrief

qc.getOptionBrief(identifiers: string[]): Promise<Brief[]>

Description

Real-time quotes for option contracts. The SDK parses each OCC identifier internally.

Parameters

NameTypeRequiredDescription
identifiersstring[]YesOCC-style identifiers, e.g. ['AAPL 250117C00150000']

Returns

Promise<Brief[]> — in addition to stock fields, option briefs populate expiry, strike, right, multiplier, openInterest.

Example

const optBriefs = await qc.getOptionBrief(['AAPL  250117C00150000']);

getOptionKline

qc.getOptionKline(identifier: string, period: string): Promise<Kline[]>

Description

Historical bars for an option contract.

Parameters

NameTypeRequiredDescription
identifierstringYesOCC-style option identifier
periodstringYesBar period (same values as getKline)

Returns

Promise<Kline[]> (same shape as getKline).

Example

const optKline = await qc.getOptionKline('AAPL  250117C00150000', 'day');

Futures Quotes

getFutureExchange

qc.getFutureExchange(): Promise<FutureExchange[]>

Description

List of supported futures exchanges.

Returns

Promise<FutureExchange[]>code, name, zoneId.

Example

const exchanges = await qc.getFutureExchange();

getFutureContracts

qc.getFutureContracts(exchangeCode: string): Promise<FutureContractInfo[]>

Description

Available futures contracts on the specified exchange.

Parameters

NameTypeRequiredDescription
exchangeCodestringYesExchange code, e.g. 'CME', 'HKEX'

Returns

Promise<FutureContractInfo[]>contractCode, name, type, contractMonth, lastTradingDate, currency, multiplier, minTick, exchange.

Example

const contracts = await qc.getFutureContracts('CME');

getFutureRealTimeQuote

qc.getFutureRealTimeQuote(req: FutureBriefRequest): Promise<FutureQuote[]>

v0.4.0 Breaking: changed from positional contractCodes: string[] to Request object.

Description

Real-time futures quotes. Wire method future_real_time_quote.

Request — FutureBriefRequest

NameTypeRequiredDescription
contractCodesstring[]YesContract codes, e.g. ['ES2506', 'NQ2506']
langstringNoLanguage

Returns

Promise<FutureQuote[]>contractCode, latestPrice, bidPrice/askPrice, volume, openInterest, open/high/low, settlement, limitUp/limitDown.

Example

const futQuotes = await qc.getFutureRealTimeQuote({
  contractCodes: ['ES2506', 'NQ2506'],
});

getFutureKline

qc.getFutureKline(req: FutureKlineRequest): Promise<FutureKline[]>

Description

Historical bars for futures. beginTime/endTime are ms timestamps; use -1 (or omit) for unbounded.

Request — FutureKlineRequest

NameTypeRequiredDescription
contractCodesstring[]YesContract codes
periodstringYesBar period
beginTimenumberNoStart (ms); -1 = unbounded
endTimenumberNoEnd (ms); -1 = unbounded
limitnumberNoRow limit
pageTokenstringNoPage token

Returns

Promise<FutureKline[]>items: FutureKlineItem[] with time/open/high/low/close/volume/lastTime/openInterest/settlement, plus optional nextPageToken.

Example

const futKline = await qc.getFutureKline({
  contractCodes: ['ES2506'],
  period: 'day',
  beginTime: -1,
  endTime: -1,
});

Fundamentals

getFinancialDaily

qc.getFinancialDaily(req: FinancialDailyRequest): Promise<FinancialDailyItem[]>

Description

Daily fundamental metrics such as shares outstanding.

Request — FinancialDailyRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
marketstringYesMarket
fieldsstring[]YesFields, e.g. ['shares_outstanding']
beginDatestringYesStart date ('YYYY-MM-DD')
endDatestringYesEnd date ('YYYY-MM-DD')

Returns

Promise<FinancialDailyItem[]>symbol/field/date/value.

Example

const daily = await qc.getFinancialDaily({
  symbols: ['AAPL'],
  market: 'US',
  fields: ['shares_outstanding'],
  beginDate: '2025-01-01',
  endDate: '2025-01-31',
});

Capital Flow

getCapitalFlow

qc.getCapitalFlow(symbol: string, market: string, period: string): Promise<CapitalFlow | undefined>

Description

Capital inflow/outflow time series.

Parameters

NameTypeRequiredDescription
symbolstringYesStock code
marketstringYesMarket
periodstringYes'intraday' / 'day' / 'week' / 'month' / 'year' / 'quarter'

Returns

Promise<CapitalFlow | undefined>symbol, period, items: CapitalFlowItem[] (time/timestamp/netInflow).

Example

const flow = await qc.getCapitalFlow('AAPL', 'US', 'day');

getCapitalDistribution

qc.getCapitalDistribution(symbol: string, market: string): Promise<CapitalDistribution | undefined>

Description

Today's capital distribution snapshot by order size.

Parameters

NameTypeRequiredDescription
symbolstringYesStock code
marketstringYesMarket

Returns

Promise<CapitalDistribution | undefined>symbol, netInflow, inAll/inBig/inMid/inSmall, outAll/outBig/outMid/outSmall.

Example

const dist = await qc.getCapitalDistribution('AAPL', 'US');

Market Scanner

marketScanner

qc.marketScanner(req: MarketScannerRequest): Promise<ScannerResult | undefined>

Description

Filter stocks by custom criteria.

Request — MarketScannerRequest

NameTypeRequiredDescription
marketstringYesMarket
pagenumberNoPage (0-based)
pageSizenumberNoPage size
cursorIdstringNoCursor pagination ID
baseFilterListArray<Record<string, unknown>>NoBase filters
accumulateFilterListArray<Record<string, unknown>>NoAccumulator filters
financialFilterListArray<Record<string, unknown>>NoFinancial filters
multiTagsFilterListArray<Record<string, unknown>>NoMulti-tag filters
sortFieldDataRecord<string, unknown>NoSort rule

Returns

Promise<ScannerResult | undefined>page, totalPage, totalCount, pageSize, cursorId, items: ScannerResultItem[].

Example

const res = await qc.marketScanner({ market: 'US', page: 0, pageSize: 10 });

grabQuotePermission

qc.grabQuotePermission(): Promise<QuotePermission[]>

Description

Current account's market-data subscription permissions.

Returns

Promise<QuotePermission[]>name, expireAt.

Example

const perms = await qc.grabQuotePermission();

getMarketScannerTags (new in v0.4.0)

qc.getMarketScannerTags(req: MarketScannerTagsRequest): Promise<MarketScannerTags | undefined>

Description

Available multi_tags fields and their enum values for the market scanner. Wire method market_scanner_tags.

Request — MarketScannerTagsRequest

NameTypeRequiredDescription
marketstringNoMarket
multiTagFieldListstring[]NoMulti-tag fields (wire: multi_tag_field_list)
langstringNoLanguage

Returns

Promise<MarketScannerTags | undefined> (tagFields / tags: MarketScannerTag[], each with field/name/values).

Example

const tags = await qc.getMarketScannerTags({ market: 'US' });

Stock Basics (new in v0.4.0)

getSymbols

qc.getSymbols(req: SymbolsRequest): Promise<string[]>

Description

All symbol codes for the specified market (symbol-only list). Wire method all_symbols.

Request — SymbolsRequest

NameTypeRequiredDescription
marketstringNoMarket: 'US' / 'HK' / 'CN' / 'SG'
secTypestringNoSecurity type
includeOtcbooleanNoInclude OTC
langstringNoLanguage

Returns

Promise<string[]> — list of symbol codes.

Example

const symbols = await qc.getSymbols({ market: 'US' });

getSymbolNames

qc.getSymbolNames(req: SymbolsRequest): Promise<SymbolName[]>

Description

Symbol + bilingual name list. Wire method all_symbol_names.

Returns

Promise<SymbolName[]>symbol, name, market.

Example

const items = await qc.getSymbolNames({ market: 'US' });

getTradeMetas

qc.getTradeMetas(req: TradeMetasRequest): Promise<TradeMeta[]>

Description

Trade metadata: lot size, min tick, shortable/marginable flags. Wire method quote_stock_trade.

Request — TradeMetasRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
langstringNoLanguage

Returns

Promise<TradeMeta[]>symbol, lotSize, minTick, spreadScale, shortableFlag, marginableFlag.

Example

const metas = await qc.getTradeMetas({ symbols: ['AAPL', '00700'] });

getStockDelayBriefs

qc.getStockDelayBriefs(req: StockDelayBriefsRequest): Promise<Brief[]>

Description

Delayed real-time briefs (same shape as getBrief). Wire method quote_delay.

Request — StockDelayBriefsRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
secTypestringNoSecurity type
langstringNoLanguage

Example

const briefs = await qc.getStockDelayBriefs({ symbols: ['AAPL'] });

getBars

qc.getBars(req: BarsRequest): Promise<Kline[]>

Description

Full-feature K-line API with time range, pagination, adjustment mode, extended hours. beginTime/endTime are ms timestamps.

Request — BarsRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
periodstringNoBar period
rightstringNo'br' / 'nr'
beginTimenumberNoStart ms
endTimenumberNoEnd ms
limitnumberNoRow limit
beginIndex / endIndexnumberNoIndex pagination
pageTokenstringNoPage token
tradeSessionstringNoTrading session
datestringNoSpecific date
withFundamentalbooleanNoInclude fundamentals
secTypestringNoSecurity type
langstringNoLanguage

Returns

Promise<Kline[]> (same as getKline).

Example

const bars = await qc.getBars({
  symbols: ['AAPL'],
  period: 'day',
  limit: 100,
});

getBarsByPage

qc.getBarsByPage(req: BarsByPageRequest): Promise<KlineItem[]>

Description

Client-side pagination wrapper over getBars that fetches up to totalSize bars and returns a flattened array sorted oldest-first.

Request — BarsByPageRequest

NameTypeRequiredDescription
symbolstringYesSingle stock code
periodstringYesBar period
beginTimenumberNoStart ms
endTimenumberNoEnd ms
totalSizenumberNoTarget total bars (default 1000)
pageSizenumberNoBars per request (default 200)
rightstringNoAdjustment
tradeSessionstringNoTrading session
langstringNoLanguage

Example

const items = await qc.getBarsByPage({
  symbol: 'AAPL',
  period: 'day',
  totalSize: 500,
  pageSize: 200,
});

getTimelineHistory

qc.getTimelineHistory(req: TimelineHistoryRequest): Promise<Timeline[]>

Description

Historical intraday timeline for a given trading date. Wire method history_timeline.

Request — TimelineHistoryRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
datestringNoDate ('yyyy-MM-dd')
rightstringNoAdjustment
tradeSessionstringNoTrading session
langstringNoLanguage

Example

const tl = await qc.getTimelineHistory({
  symbols: ['AAPL'],
  date: '2025-09-01',
});

getTradeRank

qc.getTradeRank(req: TradeRankRequest): Promise<TradeRankItem[]>

Description

Volume / turnover leaderboards. Wire method trade_rank.

Request — TradeRankRequest

NameTypeRequiredDescription
marketstringYesMarket
langstringNoLanguage

Returns

Promise<TradeRankItem[]>symbol/name/latestPr/change/changeRate/volume/amount.

Example

const rank = await qc.getTradeRank({ market: 'HK' });

getShortInterest

qc.getShortInterest(req: ShortInterestRequest): Promise<ShortInterest[]>

Description

US short interest data. Wire method quote_shortable_stocks.

Request — ShortInterestRequest

NameTypeRequiredDescription
symbolsstring[]YesStock codes
langstringNoLanguage

Returns

Promise<ShortInterest[]>symbol, settlementDate, shortInterest, avgDailyVolume, daysToCover, percentOfFloat, shortInterestPrevious, percentChange.

Example

const si = await qc.getShortInterest({ symbols: ['TSLA'] });

getStockBroker

qc.getStockBroker(req: StockBrokerRequest): Promise<StockBroker | undefined>

Description

HK broker queue at each order-book level (requires HK Level 2 permission). Wire method stock_broker.

Request — StockBrokerRequest

NameTypeRequiredDescription
symbolstringYesSingle HK symbol
limitnumberNoMax brokers per level
secTypestringNoSecurity type
langstringNoLanguage

Returns

Promise<StockBroker | undefined>symbol, levelAskList, levelBidList; each StockBrokerItem has level/price/brokers: BrokerDetail[].

Example

const sb = await qc.getStockBroker({ symbol: '00700', limit: 40 });

getStockIndustry

qc.getStockIndustry(req: StockIndustryRequest): Promise<StockIndustry[]>

Description

GICS industry classification for a stock. Wire method stock_industry.

Request — StockIndustryRequest

NameTypeRequiredDescription
symbolstringYesStock code
marketstringNoMarket
secTypestringNoSecurity type
langstringNoLanguage

Returns

Promise<StockIndustry[]>symbol, gSector, gGroup, gInd, gSubInd, level.

Example

const si = await qc.getStockIndustry({ symbol: 'AAPL', market: 'US' });

getQuotePermission (with date range)

qc.getQuotePermission(req: QuotePermissionRequest): Promise<QuotePermission[]>

Description

Same as grabQuotePermission but with a date range and more detail. Wire method get_quote_permission.

Request — QuotePermissionRequest

NameTypeRequiredDescription
beginDatestringNoStart ('yyyyMMdd')
endDatestringNoEnd ('yyyyMMdd')
langstringNoLanguage

Example

const perms = await qc.getQuotePermission({
  beginDate: '20250101',
  endDate: '20251231',
});

getKlineQuota

qc.getKlineQuota(req: KlineQuotaRequest): Promise<KlineQuota[]>

Description

Remaining K-line API quota. Wire method kline_quota.

Request — KlineQuotaRequest

NameTypeRequiredDescription
withDetailsbooleanNoInclude per-symbol detail
langstringNoLanguage

Returns

Promise<KlineQuota[]>method, used, quota, detail: KlineQuotaDetail[] with symbol/market/usedBars/quotaBars/lastAccess.

Example

const quota = await qc.getKlineQuota({ withDetails: true });

Option Quotes (new in v0.4.0)

All option-extension methods share the nested OptionQueryItem:

interface OptionQueryItem {
  symbol?: string;
  expiry?: number;   // ms timestamp
  strike?: string;
  right?: string;    // 'CALL' / 'PUT'
  period?: string;   // for K-line / timeline only
  beginTime?: number;
  endTime?: number;
  limit?: number;
  beginIndex?: number;
  endIndex?: number;
  pageToken?: string;
}

getOptionBars

qc.getOptionBars(req: OptionBarsRequest): Promise<Kline[]>

Request — OptionBarsRequest: optionQuery: OptionQueryItem[] / market / lang. Wire method option_kline (v2.0).

Example

const bars = await qc.getOptionBars({
  optionQuery: [{
    symbol: 'AAPL', expiry: 1750291200000, strike: '200', right: 'CALL', period: 'day',
  }],
  market: 'US',
});

getOptionTradeTicks

qc.getOptionTradeTicks(req: OptionTradeTicksRequest): Promise<TradeTick[]>

Request: contracts: OptionQueryItem[] / lang. Wire method option_trade_tick.

Example

const ticks = await qc.getOptionTradeTicks({
  contracts: [{ symbol: 'AAPL', expiry: 1750291200000, strike: '200', right: 'CALL' }],
});

getOptionTimeline

qc.getOptionTimeline(req: OptionTimelineRequest): Promise<Timeline[]>

Request: optionQuery: OptionQueryItem[] / market / lang. Wire method option_timeline.


getOptionDepth

qc.getOptionDepth(req: OptionDepthRequest): Promise<Depth[]>

Request: optionBasic: OptionQueryItem[] / market / lang. Wire method option_depth.


getOptionSymbols

qc.getOptionSymbols(req: OptionSymbolsRequest): Promise<OptionSymbol[]>

Request — OptionSymbolsRequest: market / lang. Wire method option_symbol.

Returns

Promise<OptionSymbol[]> (symbol / market / nameCN / nameEN).

Example

const syms = await qc.getOptionSymbols({ market: 'US' });

getOptionAnalysis

qc.getOptionAnalysis(req: OptionAnalysisRequest): Promise<OptionAnalysis[]>

Request — OptionAnalysisRequest

NameTypeRequiredDescription
symbolsstring[]YesUnderlying symbols
marketstringNoMarket
periodstringNoHistorical volatility period
requireVolatilityListbooleanNoReturn historical volatility series
langstringNoLanguage

Returns

Promise<OptionAnalysis[]>symbol, historicalVol30D/60D/90D, impliedVol, volatilityList.

Example

const res = await qc.getOptionAnalysis({
  symbols: ['AAPL'],
  market: 'US',
});

Futures Quotes (new in v0.4.0)

getFutureContract

qc.getFutureContract(req: FutureContractSingleRequest): Promise<FutureContractInfo[]>

Request — FutureContractSingleRequest: contractCode / type / lang. Wire method future_contract_by_contract_code.

Example

const cs = await qc.getFutureContract({ contractCode: 'CL2609' });

getAllFutureContracts

qc.getAllFutureContracts(req: AllFutureContractsRequest): Promise<FutureContractInfo[]>

Request — AllFutureContractsRequest: type / exchange / lang. Wire method future_contracts.

Example

const cs = await qc.getAllFutureContracts({ type: 'CL' });

getCurrentFutureContract

qc.getCurrentFutureContract(req: FutureContractSingleRequest): Promise<FutureContractInfo | undefined>

Example

const c = await qc.getCurrentFutureContract({ type: 'CL' });

getFutureContinuousContracts

qc.getFutureContinuousContracts(req: FutureContinuousContractsRequest): Promise<FutureContractInfo[]>

Request: type / lang. Wire method future_continuous_contracts.


getFutureHistoryMainContract

qc.getFutureHistoryMainContract(req: FutureHistoryMainContractRequest): Promise<FutureMainContractHistory[]>

Request — FutureHistoryMainContractRequest

NameTypeRequiredDescription
contractCodesstring[]YesContract codes
beginTimenumberNoStart ms
endTimenumberNoEnd ms
langstringNoLanguage

Returns

Promise<FutureMainContractHistory[]>contractCode / symbol / beginDate / endDate.


getFutureBars

qc.getFutureBars(req: FutureBarsRequest): Promise<FutureKline[]>

Request — FutureBarsRequest

NameTypeRequiredDescription
contractCodesstring[]NoContract codes
contractCodestringNoSingle contract code
periodstringYesBar period
beginTimenumberNoStart ms
endTimenumberNoEnd ms
beginIndex / endIndexnumberNoIndex pagination
limitnumberNoRow limit
pageTokenstringNoPage token
langstringNoLanguage

Example

const bars = await qc.getFutureBars({
  contractCodes: ['CL2609'],
  period: 'day',
  limit: 200,
});

getFutureBarsByPage

qc.getFutureBarsByPage(req: FutureBarsByPageRequest): Promise<FutureKlineItem[]>

Request — FutureBarsByPageRequest

NameTypeRequiredDescription
contractCodestringYesContract code
periodstringYesBar period
beginTimenumberNoStart ms
endTimenumberNoEnd ms
totalSizenumberNoTarget total bars
pageSizenumberNoBars per request
langstringNoLanguage

getFutureTradeTicks

qc.getFutureTradeTicks(req: FutureTradeTicksRequest): Promise<FutureTradeTickItem[]>

Request — FutureTradeTicksRequest

NameTypeRequiredDescription
contractCodestringYesContract code
beginIndex / endIndexnumberNoIndex pagination
limitnumberNoRow limit
langstringNoLanguage

Returns

Promise<FutureTradeTickItem[]>contractCode / index / time / price / volume / direction. Wire method future_tick (v3.0).


getFutureDepth

qc.getFutureDepth(req: FutureDepthRequest): Promise<FutureDepth[]>

Request: contractCodes: string[] / lang. Wire method future_depth.

Returns

Promise<FutureDepth[]>contractCode / timestamp / asks / bids.


getFutureTradingTimes

qc.getFutureTradingTimes(req: FutureTradingTimesRequest): Promise<FutureTradingTime | undefined>

Request — FutureTradingTimesRequest

NameTypeRequiredDescription
contractCodestringYesContract code
tradingDatestringNoTrading date
langstringNoLanguage

Returns

Promise<FutureTradingTime | undefined>contractCode / bizDate / zone / tradingTimes: FutureTradingSegment[] (each with start/end/type). Wire method future_trading_date.


Funds (new in v0.4.0)

getFundSymbols

qc.getFundSymbols(req: FundSymbolsRequest): Promise<string[]>

Request: lang. Wire method fund_all_symbols.


getFundContracts

qc.getFundContracts(req: FundContractsRequest): Promise<FundContractInfo[]>

Request: symbols: string[] / lang. Wire method fund_contracts.

Returns

Promise<FundContractInfo[]>symbol / name / currency / fundType / inception / netAssetVal / expenseRatio.


getFundQuote

qc.getFundQuote(req: FundQuoteRequest): Promise<FundQuote[]>

Request: symbols: string[] / lang. Wire method fund_quote.

Returns

Promise<FundQuote[]>symbol / latestNav / change / changeRate / date.

Example

const q = await qc.getFundQuote({ symbols: ['SPY'] });

getFundHistoryQuote

qc.getFundHistoryQuote(req: FundHistoryQuoteRequest): Promise<FundHistoryQuote[]>

Request — FundHistoryQuoteRequest

NameTypeRequiredDescription
symbolsstring[]YesFund codes
beginTimenumberNoStart ms
endTimenumberNoEnd ms
limitnumberNoRow limit
langstringNoLanguage

Returns

Promise<FundHistoryQuote[]>symbol / date / nav. Wire method fund_history_quote.


Warrants (new in v0.4.0)

getWarrantBriefs

qc.getWarrantBriefs(req: WarrantBriefsRequest): Promise<WarrantBrief[]>

Request: symbols: string[] / lang. Wire method warrant_briefs.

Returns

Promise<WarrantBrief[]>symbol / name / latestPrice / change / changeRate / volume / amount / underlying / issuer / expiryDate / strikePrice / warrantType.


getWarrantFilter

qc.getWarrantFilter(req: WarrantFilterRequest): Promise<WarrantFilterResult | undefined>

Request — WarrantFilterRequest

NameTypeRequiredDescription
symbolstringYesUnderlying symbol
page / pageSizenumberNoPagination
sortFieldName / sortDirstringNoSorting
issuerNamestringNoIssuer filter
expireYmstringNoExpiry year-month ('yyyyMM')
langstringNoLanguage

Returns

Promise<WarrantFilterResult | undefined>total / items / pageSize / page. Wire method warrant_filter.


Industry (new in v0.4.0)

getIndustryList

qc.getIndustryList(req: IndustryListRequest): Promise<IndustryItem[]>

Request — IndustryListRequest: industryLevel / lang. Wire method industry_list.

Returns

Promise<IndustryItem[]>id / name / level.


getIndustryStocks

qc.getIndustryStocks(req: IndustryStocksRequest): Promise<IndustryStock[]>

Request — IndustryStocksRequest: industryId / market / lang. Wire method industry_stock_list.

Returns

Promise<IndustryStock[]>symbol / name / industryId / change / changeRate.


Financial & Calendar (new in v0.4.0)

getFinancialCurrency

qc.getFinancialCurrency(req: FinancialCurrencyRequest): Promise<FinancialCurrency[]>

Request: symbols: string[] / market / lang. Wire method financial_currency.

Returns

Promise<FinancialCurrency[]>symbol / market / currency.


getFinancialExchangeRate

qc.getFinancialExchangeRate(req: FinancialExchangeRateRequest): Promise<ExchangeRate[]>

Request — FinancialExchangeRateRequest

NameTypeRequiredDescription
currencyListstring[]YesCurrency list, e.g. ['USD', 'HKD']
beginDatestringNoStart ('yyyyMMdd')
endDatestringNoEnd ('yyyyMMdd')
timezonestringNoTimezone
langstringNoLanguage

Note: beginDate / endDate use 'yyyyMMdd' (no hyphens), distinct from ms timestamps used by K-line APIs.

Returns

Promise<ExchangeRate[]>currency / date / rate / baseCurrency. Wire method financial_exchange_rate.

Example

const rates = await qc.getFinancialExchangeRate({
  currencyList: ['HKD', 'EUR'],
  beginDate: '20250101',
  endDate: '20250131',
});

getTradingCalendar

qc.getTradingCalendar(req: TradingCalendarRequest): Promise<TradingCalendarItem[]>

Request — TradingCalendarRequest

NameTypeRequiredDescription
marketstringYesMarket
beginDatestringNoStart ('yyyy-MM-dd')
endDatestringNoEnd ('yyyy-MM-dd')
langstringNoLanguage

Returns

Promise<TradingCalendarItem[]>market / date / isTrading / sessionType. Wire method trading_calendar.

Example

const cal = await qc.getTradingCalendar({
  market: 'US',
  beginDate: '2025-01-01',
  endDate: '2025-12-31',
});