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
| Name | Type | Required | Description |
|---|---|---|---|
| market | string | Yes | Market 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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes, e.g. ['AAPL', 'TSLA'] |
| includeHourTrading | boolean | No | Include pre/post session |
| secType | string | No | Security type |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Stock code |
| period | string | Yes | '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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock 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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| beginIndex | number | No | Start index |
| endIndex | number | No | End index |
| limit | number | No | Row limit |
| lang | string | No | Language |
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;symbolsnow supports batch.
Description
Order-book depth. Only 'US' / 'HK'. Wire method quote_depth.
Request — DepthQuoteRequest
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| market | string | No | Market: 'US' / 'HK' |
| tradeSession | string | No | Trading session |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Underlying 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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Underlying symbol |
| expiry | string | Yes | Expiration 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
| Name | Type | Required | Description |
|---|---|---|---|
| identifiers | string[] | Yes | OCC-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
| Name | Type | Required | Description |
|---|---|---|---|
| identifier | string | Yes | OCC-style option identifier |
| period | string | Yes | Bar 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
| Name | Type | Required | Description |
|---|---|---|---|
| exchangeCode | string | Yes | Exchange 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
| Name | Type | Required | Description |
|---|---|---|---|
| contractCodes | string[] | Yes | Contract codes, e.g. ['ES2506', 'NQ2506'] |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| contractCodes | string[] | Yes | Contract codes |
| period | string | Yes | Bar period |
| beginTime | number | No | Start (ms); -1 = unbounded |
| endTime | number | No | End (ms); -1 = unbounded |
| limit | number | No | Row limit |
| pageToken | string | No | Page 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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| market | string | Yes | Market |
| fields | string[] | Yes | Fields, e.g. ['shares_outstanding'] |
| beginDate | string | Yes | Start date ('YYYY-MM-DD') |
| endDate | string | Yes | End 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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Stock code |
| market | string | Yes | Market |
| period | string | Yes | '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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Stock code |
| market | string | Yes | Market |
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
| Name | Type | Required | Description |
|---|---|---|---|
| market | string | Yes | Market |
| page | number | No | Page (0-based) |
| pageSize | number | No | Page size |
| cursorId | string | No | Cursor pagination ID |
| baseFilterList | Array<Record<string, unknown>> | No | Base filters |
| accumulateFilterList | Array<Record<string, unknown>> | No | Accumulator filters |
| financialFilterList | Array<Record<string, unknown>> | No | Financial filters |
| multiTagsFilterList | Array<Record<string, unknown>> | No | Multi-tag filters |
| sortFieldData | Record<string, unknown> | No | Sort 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
| Name | Type | Required | Description |
|---|---|---|---|
| market | string | No | Market |
| multiTagFieldList | string[] | No | Multi-tag fields (wire: multi_tag_field_list) |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| market | string | No | Market: 'US' / 'HK' / 'CN' / 'SG' |
| secType | string | No | Security type |
| includeOtc | boolean | No | Include OTC |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| secType | string | No | Security type |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| period | string | No | Bar period |
| right | string | No | 'br' / 'nr' |
| beginTime | number | No | Start ms |
| endTime | number | No | End ms |
| limit | number | No | Row limit |
| beginIndex / endIndex | number | No | Index pagination |
| pageToken | string | No | Page token |
| tradeSession | string | No | Trading session |
| date | string | No | Specific date |
| withFundamental | boolean | No | Include fundamentals |
| secType | string | No | Security type |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Single stock code |
| period | string | Yes | Bar period |
| beginTime | number | No | Start ms |
| endTime | number | No | End ms |
| totalSize | number | No | Target total bars (default 1000) |
| pageSize | number | No | Bars per request (default 200) |
| right | string | No | Adjustment |
| tradeSession | string | No | Trading session |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| date | string | No | Date ('yyyy-MM-dd') |
| right | string | No | Adjustment |
| tradeSession | string | No | Trading session |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| market | string | Yes | Market |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Stock codes |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Single HK symbol |
| limit | number | No | Max brokers per level |
| secType | string | No | Security type |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Stock code |
| market | string | No | Market |
| secType | string | No | Security type |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| beginDate | string | No | Start ('yyyyMMdd') |
| endDate | string | No | End ('yyyyMMdd') |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| withDetails | boolean | No | Include per-symbol detail |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Underlying symbols |
| market | string | No | Market |
| period | string | No | Historical volatility period |
| requireVolatilityList | boolean | No | Return historical volatility series |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| contractCodes | string[] | Yes | Contract codes |
| beginTime | number | No | Start ms |
| endTime | number | No | End ms |
| lang | string | No | Language |
Returns
Promise<FutureMainContractHistory[]> — contractCode / symbol / beginDate / endDate.
getFutureBars
qc.getFutureBars(req: FutureBarsRequest): Promise<FutureKline[]>
Request — FutureBarsRequest
| Name | Type | Required | Description |
|---|---|---|---|
| contractCodes | string[] | No | Contract codes |
| contractCode | string | No | Single contract code |
| period | string | Yes | Bar period |
| beginTime | number | No | Start ms |
| endTime | number | No | End ms |
| beginIndex / endIndex | number | No | Index pagination |
| limit | number | No | Row limit |
| pageToken | string | No | Page token |
| lang | string | No | Language |
Example
const bars = await qc.getFutureBars({
contractCodes: ['CL2609'],
period: 'day',
limit: 200,
});getFutureBarsByPage
qc.getFutureBarsByPage(req: FutureBarsByPageRequest): Promise<FutureKlineItem[]>
Request — FutureBarsByPageRequest
| Name | Type | Required | Description |
|---|---|---|---|
| contractCode | string | Yes | Contract code |
| period | string | Yes | Bar period |
| beginTime | number | No | Start ms |
| endTime | number | No | End ms |
| totalSize | number | No | Target total bars |
| pageSize | number | No | Bars per request |
| lang | string | No | Language |
getFutureTradeTicks
qc.getFutureTradeTicks(req: FutureTradeTicksRequest): Promise<FutureTradeTickItem[]>
Request — FutureTradeTicksRequest
| Name | Type | Required | Description |
|---|---|---|---|
| contractCode | string | Yes | Contract code |
| beginIndex / endIndex | number | No | Index pagination |
| limit | number | No | Row limit |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| contractCode | string | Yes | Contract code |
| tradingDate | string | No | Trading date |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbols | string[] | Yes | Fund codes |
| beginTime | number | No | Start ms |
| endTime | number | No | End ms |
| limit | number | No | Row limit |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Underlying symbol |
| page / pageSize | number | No | Pagination |
| sortFieldName / sortDir | string | No | Sorting |
| issuerName | string | No | Issuer filter |
| expireYm | string | No | Expiry year-month ('yyyyMM') |
| lang | string | No | Language |
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
| Name | Type | Required | Description |
|---|---|---|---|
| currencyList | string[] | Yes | Currency list, e.g. ['USD', 'HKD'] |
| beginDate | string | No | Start ('yyyyMMdd') |
| endDate | string | No | End ('yyyyMMdd') |
| timezone | string | No | Timezone |
| lang | string | No | Language |
Note:
beginDate/endDateuse'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
| Name | Type | Required | Description |
|---|---|---|---|
| market | string | Yes | Market |
| beginDate | string | No | Start ('yyyy-MM-dd') |
| endDate | string | No | End ('yyyy-MM-dd') |
| lang | string | No | Language |
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',
});Updated 15 days ago
