Securities

Example context

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

const config = createClientConfig();
const quoteClient = QuoteClient.fromConfig(config);

getSymbols

Signature

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

Purpose

Gets symbols.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqSymbolsRequestYesNoneNone.
req.marketstring | undefinedNoNoneNone.
req.secTypestring | undefinedNoNoneNone.
req.includeOtcboolean | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<string[]>

Type-checked example

const result = await quoteClient.getSymbols({ market: 'US', secType: 'STK' });
console.log(result);

Response example

[
  "string"
]

Rate limit: The base limit is 10 requests per minute.


getSymbolNames

Signature

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

Purpose

Gets symbol names.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqSymbolsRequestYesNoneNone.
req.marketstring | undefinedNoNoneNone.
req.secTypestring | undefinedNoNoneNone.
req.includeOtcboolean | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<SymbolName[]>

FieldTypeDescription
symbolstringSymbol code
namestringName
marketstringMarket

Type-checked example

const result = await quoteClient.getSymbolNames({ market: 'US' });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "name": "string",
    "market": "string"
  }
]

Rate limit: The base limit is 10 requests per minute.


getTradeMetas

Signature

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

Purpose

Gets trade metas.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqTradeMetasRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 stock symbols
req.langstring | undefinedNoNoneNone.

Returns

Promise<TradeMeta[]>

FieldTypeDescription
symbolstringSymbol code
lotSizenumberLot size
minTicknumberMinimum tick size
spreadScalenumberQuote precision
shortableFlagstringShortable flag
marginableFlagstringMarginable flag

Type-checked example

const result = await quoteClient.getTradeMetas({ symbols: ['AAPL'] });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "lotSize": 0,
    "minTick": 0,
    "spreadScale": 0,
    "shortableFlag": "string",
    "marginableFlag": "string"
  }
]

Rate limit: The base limit is 60 requests per minute.



getRealTimeQuote

Signature

async getRealTimeQuote(req: BriefRequest): Promise<Brief[]>

Purpose

Gets real-time quotes.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqBriefRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 stock symbols
req.includeHourTradingboolean | undefinedNoNoneNone.
req.secTypestring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<Brief[]>

FieldTypeDescription
symbolstringSymbol code
opennumberOpen price
highnumberHigh price
lownumberLow price
closenumberClose price
preClosenumberPrevious close price
latestPricenumberLatest price
latestTimenumberLatest trade time (ms timestamp)
askPricenumberAsk price (best offer)
askSizenumberAsk size
bidPricenumberBid price (best bid)
bidSizenumberBid size
volumenumberTrading volume
statusstringTrading status
adjPreClosenumberAdjusted previous close
changenumberPrice change
changeRatenumberPrice change rate
amplitudenumberAmplitude
expirystringExpiration date
strikestringStrike price
rightstringOption right (CALL/PUT)
multipliernumberContract multiplier
openInterestnumberOpen interest

Type-checked example

const result = await quoteClient.getRealTimeQuote({ symbols: ['AAPL', 'TSLA'] });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "open": 0,
    "high": 0,
    "low": 0,
    "close": 0,
    "preClose": 0,
    "latestPrice": 0,
    "latestTime": 0,
    "askPrice": 0,
    "askSize": 0,
    "bidPrice": 0,
    "bidSize": 0,
    "volume": 0,
    "status": "string",
    "adjPreClose": 0,
    "change": 0,
    "changeRate": 0,
    "amplitude": 0,
    "expiry": "string",
    "strike": "string",
    "right": "string",
    "multiplier": 0,
    "openInterest": 0
  }
]

Rate limit: The base limit is 120 requests per minute.


getDelayedQuote

Signature

async getDelayedQuote(req: StockDelayBriefsRequest): Promise<Brief[]>

Purpose

Gets delayed quote.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqStockDelayBriefsRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 stock symbols
req.secTypestring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<Brief[]>

FieldTypeDescription
symbolstringSymbol code
opennumberOpen price
highnumberHigh price
lownumberLow price
closenumberClose price
preClosenumberPrevious close price
latestPricenumberLatest price
latestTimenumberLatest trade time (ms timestamp)
askPricenumberAsk price (best offer)
askSizenumberAsk size
bidPricenumberBid price (best bid)
bidSizenumberBid size
volumenumberTrading volume
statusstringTrading status
adjPreClosenumberAdjusted previous close
changenumberPrice change
changeRatenumberPrice change rate
amplitudenumberAmplitude
expirystringExpiration date
strikestringStrike price
rightstringOption right (CALL/PUT)
multipliernumberContract multiplier
openInterestnumberOpen interest

Type-checked example

const result = await quoteClient.getDelayedQuote({ symbols: ['AAPL'], secType: 'STK' });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "open": 0,
    "high": 0,
    "low": 0,
    "close": 0,
    "preClose": 0,
    "latestPrice": 0,
    "latestTime": 0,
    "askPrice": 0,
    "askSize": 0,
    "bidPrice": 0,
    "bidSize": 0,
    "volume": 0,
    "status": "string",
    "adjPreClose": 0,
    "change": 0,
    "changeRate": 0,
    "amplitude": 0,
    "expiry": "string",
    "strike": "string",
    "right": "string",
    "multiplier": 0,
    "openInterest": 0
  }
]

Rate limit: The base limit is 10 requests per minute.


getKline

Signature

async getKline(req: KlineRequest): Promise<Kline[]>

Purpose

Gets stock candlestick bars (K-line data).

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqKlineRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 symbols
req.periodstring | undefinedNoNoneNone.
req.rightstring | undefinedNoNoneNone.
req.beginTimenumber | undefinedNoNoneNone.
req.endTimenumber | undefinedNoNoneNone.
req.limitnumber | undefinedNoNoneOmission or a non-positive value returns 300 bars; values above 1,200 are capped at 1,200
req.beginIndexnumber | undefinedNoNoneNone.
req.endIndexnumber | undefinedNoNoneNone.
req.pageTokenstring | undefinedNoNoneNone.
req.tradeSessionstring | undefinedNoNoneNone.
req.datestring | undefinedNoNoneNone.
req.withFundamentalboolean | undefinedNoNoneNone.
req.secTypestring | undefinedNoNoneUse 'STK' for stocks.
req.langstring | undefinedNoNoneNone.

Returns

Promise<Kline[]>

FieldTypeDescription
symbolstringSymbol code
periodstringBar period
nextPageTokenstringNext page token
itemsKlineItem[]Data items array

KlineItem fields:

FieldTypeDescription
timenumberTime (ms timestamp)
volumenumberTrading volume
opennumberOpen price
closenumberClose price
highnumberHigh price
lownumberLow price
amountnumber | undefinedTrading amount; optional

Type-checked example

const result = await quoteClient.getKline({ symbols: ['AAPL'], period: 'day', limit: 100 });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "period": "string",
    "nextPageToken": "string",
    "items": [
      "KlineItem"
    ]
  }
]

Rate limit: The base limit is 60 requests per minute.


getKlineByPage

Signature

async getKlineByPage(req: KlineByPageRequest): Promise<KlineItem[]>

Purpose

Gets stock bars through client-side pagination.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqKlineByPageRequestYesNoneNone.
req.symbolstring | undefinedNoNoneNone.
req.secTypestring | undefinedNoNoneUse 'STK' for stocks.
req.periodstring | undefinedNoNoneNone.
req.beginTimenumber | undefinedNoNoneNone.
req.endTimenumber | undefinedNoNoneNone.
req.totalSizenumber | undefinedNo1000None.
req.pageSizenumber | undefinedNo200None.
req.rightstring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.
req.tradeSessionstring | undefinedNoNoneNone.

Returns

Promise<KlineItem[]>

FieldTypeDescription
timenumberTime (ms timestamp)
volumenumberTrading volume
opennumberOpen price
closenumberClose price
highnumberHigh price
lownumberLow price
amountnumber | undefinedTrading amount; optional

Type-checked example

const result = await quoteClient.getKlineByPage({ symbol: 'AAPL', period: 'day', totalSize: 500, pageSize: 200 });
console.log(result);

Response example

[
  {
    "time": 0,
    "volume": 0,
    "open": 0,
    "close": 0,
    "high": 0,
    "low": 0,
    "amount": 0
  }
]

Rate limit: The base limit is 60 requests per minute.


getTimeline

Signature

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

Purpose

Gets the current stock timeline.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
symbolsstring[]YesNoneNon-empty; at most 50 stock symbols

Returns

Promise<Timeline[]>

FieldTypeDescription
symbolstringSymbol code
periodstringTimeline period
preClosenumberPrevious close price
intradayTimelineBucketIntraday timeline data
preHoursTimelineBucketPre-market timeline data
afterHoursTimelineBucketAfter-hours timeline data

TimelineItem fields in TimelineBucket.items:

FieldTypeDescription
timenumberTime (ms timestamp)
volumenumberTrading volume
pricenumberCurrent price
avgPricenumberAverage price

Type-checked example

const result = await quoteClient.getTimeline(['AAPL']);
console.log(result);

Response example

[
  {
    "symbol": "string",
    "period": "string",
    "preClose": 0,
    "intraday": {
      "items": [
        "TimelineItem"
      ]
    },
    "preHours": {
      "items": [
        "TimelineItem"
      ]
    },
    "afterHours": {
      "items": [
        "TimelineItem"
      ]
    }
  }
]

Rate limit: The base limit is 120 requests per minute.


getTimelineHistory

Signature

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

Purpose

Gets historical stock timeline data.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqTimelineHistoryRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 stock symbols
req.datestring | undefinedNoNoneyyyy-MM-dd
req.rightstring | undefinedNoNoneNone.
req.tradeSessionstring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<Timeline[]>

FieldTypeDescription
symbolstringSymbol code
periodstringTimeline period
preClosenumberPrevious close price
intradayTimelineBucketIntraday timeline data
preHoursTimelineBucketPre-market timeline data
afterHoursTimelineBucketAfter-hours timeline data

Type-checked example

const result = await quoteClient.getTimelineHistory({ symbols: ['AAPL'], date: '2026-01-02' });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "period": "string",
    "preClose": 0,
    "intraday": {
      "items": [
        "TimelineItem"
      ]
    },
    "preHours": {
      "items": [
        "TimelineItem"
      ]
    },
    "afterHours": {
      "items": [
        "TimelineItem"
      ]
    }
  }
]

Rate limit: The base limit is 60 requests per minute.


getTradeTick

Signature

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

Purpose

Gets trade ticks.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqTradeTickRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 stock symbols
req.beginIndexnumber | undefinedNoNoneNone.
req.endIndexnumber | undefinedNoNoneNone.
req.limitnumber | undefinedNoNoneWith both beginIndex and endIndex and an index span no greater than 2,000, omission or a non-positive value uses 2,000; otherwise it uses 200; maximum 2,000
req.langstring | undefinedNoNoneNone.

Returns

Promise<TradeTick[]>

FieldTypeDescription
symbolstringSymbol code
beginIndexnumberBegin index
endIndexnumberEnd index
itemsTradeTickItem[]Data items array

Type-checked example

const result = await quoteClient.getTradeTick({ symbols: ['AAPL'], limit: 100 });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "beginIndex": 0,
    "endIndex": 0,
    "items": [
      "TradeTickItem"
    ]
  }
]

Rate limit: The base limit is 120 requests per minute.


getQuoteDepth

Signature

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

Purpose

Gets market depth (order book).

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqDepthQuoteRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 50 stock symbols; US and HK stocks only
req.marketstring | undefinedNoNoneNone.
req.tradeSessionstring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<Depth[]>

FieldTypeDescription
symbolstringSymbol code
asksDepthLevel[]Ask order queue
bidsDepthLevel[]Bid order queue

Type-checked example

const result = await quoteClient.getQuoteDepth({ symbols: ['AAPL'], market: 'US' });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "asks": [
      "DepthLevel"
    ],
    "bids": [
      "DepthLevel"
    ]
  }
]

Rate limit: The base limit is 60 requests per minute.


getStockBroker

Signature

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

Purpose

Gets stock broker.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqStockBrokerRequestYesNoneNone.
req.symbolstring | undefinedYesNoneHK stock symbol
req.limitnumber | undefinedNoNoneAPI default: 40; values above 60 are capped at 60
req.secTypestring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<StockBroker | undefined>

FieldTypeDescription
symbolstringSymbol code
levelAskListStockBrokerItem[]Ask broker queue by level
levelBidListStockBrokerItem[]Bid broker queue by level

Type-checked example

const result = await quoteClient.getStockBroker({ symbol: '00700', limit: 40, secType: 'STK' });
console.log(result);

Response example

{
  "symbol": "string",
  "levelAskList": [
    {
      "level": 0,
      "price": 0,
      "brokers": [
        "BrokerDetail"
      ]
    }
  ],
  "levelBidList": [
    {
      "level": 0,
      "price": 0,
      "brokers": [
        "BrokerDetail"
      ]
    }
  ]
}

Rate limit: The base limit is 60 requests per minute.


getCapitalFlow

Signature

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

Purpose

Gets capital flow.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
symbolstringYesNoneNone.
marketstringYesNoneNone.
periodstringYesNoneNone.

Returns

Promise<CapitalFlow | undefined>

FieldTypeDescription
symbolstringSymbol code
periodstringCapital flow period
itemsCapitalFlowItem[]Data items array

Type-checked example

const result = await quoteClient.getCapitalFlow('AAPL', 'US', 'day');
console.log(result);

Response example

{
  "symbol": "string",
  "period": "string",
  "items": [
    {
      "time": "string",
      "timestamp": 0,
      "netInflow": 0
    }
  ]
}

Rate limit: The base limit is 60 requests per minute.


getCapitalDistribution

Signature

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

Purpose

Gets capital distribution.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
symbolstringYesNoneNone.
marketstringYesNoneNone.

Returns

Promise<CapitalDistribution | undefined>

FieldTypeDescription
symbolstringSymbol code
netInflownumberNet inflow
inAllnumberTotal inflow
inBignumberLarge order inflow
inMidnumberMedium order inflow
inSmallnumberSmall order inflow
outAllnumberTotal outflow
outBignumberLarge order outflow
outMidnumberMedium order outflow
outSmallnumberSmall order outflow

Type-checked example

const result = await quoteClient.getCapitalDistribution('AAPL', 'US');
console.log(result);

Response example

{
  "symbol": "string",
  "netInflow": 0,
  "inAll": 0,
  "inBig": 0,
  "inMid": 0,
  "inSmall": 0,
  "outAll": 0,
  "outBig": 0,
  "outMid": 0,
  "outSmall": 0
}

Rate limit: The base limit is 60 requests per minute.


getTradeRank

Signature

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

Purpose

Gets trade rank.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqTradeRankRequestYesNoneNone.
req.marketstring | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<TradeRankItem[]>

FieldTypeDescription
symbolstringSymbol code
namestringName
latestPricenumberLatest price
changenumberPrice change
changeRatenumberPrice change rate
volumenumberTrading volume
amountnumberTrading amount

Type-checked example

const result = await quoteClient.getTradeRank({ market: 'US' });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "name": "string",
    "latestPrice": 0,
    "change": 0,
    "changeRate": 0,
    "volume": 0,
    "amount": 0
  }
]

Rate limit: The base limit is 10 requests per minute.


getShortInterest

Signature

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

Purpose

Gets short interest.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqShortInterestRequestYesNoneNone.
req.symbolsstring[] | undefinedNoNoneNone.
req.langstring | undefinedNoNoneNone.

Returns

Promise<ShortInterest[]>

FieldTypeDescription
symbolstringSymbol code
settlementDatestringSettlement date
shortInterestnumberShort interest shares
avgDailyVolumenumberAverage daily volume
daysToCovernumberDays to cover
percentOfFloatnumberPercent of float
shortInterestPreviousnumberPrevious short interest
percentChangenumberPercent change

Type-checked example

const result = await quoteClient.getShortInterest({ symbols: ['AAPL'] });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "settlementDate": "string",
    "shortInterest": 0,
    "avgDailyVolume": 0,
    "daysToCover": 0,
    "percentOfFloat": 0,
    "shortInterestPrevious": 0,
    "percentChange": 0
  }
]

Rate limit: The base limit is 60 requests per minute.



Did this page help you?