Options

Example context

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

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

getOptionExpiration

Signature

async getOptionExpiration(symbols: string[], market?: string): Promise<OptionExpiration[]>

Purpose

Gets option expiration.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
symbolsstring[]YesNoneNon-empty; at most 30 underlyings
marketstringNoNoneNone.

Returns

Promise<OptionExpiration[]>

FieldTypeDescription
symbolstringSymbol code
optionSymbolsstring[]Option symbols list
datesstring[]Expiration date list
timestampsnumber[]Expiration timestamps
periodsstring[]Periods list
countsnumber[]Counts per expiration

Type-checked example

const result = await quoteClient.getOptionExpiration(['AAPL'], 'US');
console.log(result);

Response example

[
  {
    "symbol": "string",
    "optionSymbols": [
      "string"
    ],
    "dates": [
      "string"
    ],
    "timestamps": [
      0
    ],
    "periods": [
      "string"
    ],
    "counts": [
      0
    ]
  }
]

Special option symbols for indices

  • S&P 500 (.SPX): monthly options use SPX; weekly and quarterly options use SPXW.
  • Nasdaq-100: monthly options use NDX; weekly options use NDXP.
  • VIX: monthly options use VIX; weekly options use VIXW.

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


getOptionChain

Signature

async getOptionChain(items: Array<[string, string]>, timezone?: string, returnGreekValue?: boolean, optionFilter?: OptionChainFilter): Promise<OptionChain[]>

Purpose

Gets option chain.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
itemsArray<[string, string]>YesNoneNon-empty; at most 30 entries, each containing a symbol and a YYYY-MM-DD expiry
timezonestringNoInferred from each symbolIANA timezone; defaults to America/New_York for US symbols and Asia/Hong_Kong for .HK symbols
returnGreekValuebooleanNoNoneDeprecated; new integrations should not request Greeks.
optionFilterOptionChainFilterNoNoneNone.
optionFilter.inTheMoneyboolean | undefinedNoNoneNone.
optionFilter.impliedVolatilityRange | undefinedNoNoneNone.
optionFilter.openInterestRange | undefinedNoNoneNone.
optionFilter.greeksOptionChainFilterGreeks | undefinedNoNoneDeprecated; new integrations should not filter by Greeks.

Deprecated: returnGreekValue, optionFilter.greeks, and the option-chain delta, gamma, theta, vega, and rho response fields are deprecated. These values update daily and are not suitable for intraday decisions; new integrations should not request or filter by them.

Returns

Promise<OptionChain[]>

FieldTypeDescription
symbolstringSymbol code
expirynumberExpiration date
itemsOptionChainRow[]Data items array

Type-checked example

const result = await quoteClient.getOptionChain([['AAPL', '2026-06-19']], 'America/New_York', false, { inTheMoney: true });
console.log(result);

Response example

[
  {
    "symbol": "string",
    "expiry": 0,
    "items": [
      "OptionChainRow"
    ]
  }
]

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


getOptionKline

Signature

async getOptionKline(identifiers: string[], period: string, beginTime: number = -1, endTime: number = -1, timezone?: string, limit?: number, sortDir?: string): Promise<Kline[]>

Purpose

Gets option candlestick bars (K-line data).

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
identifiersstring[]YesNoneNon-empty; at most 30 OCC-style option identifiers
periodstringYesNoneNone.
beginTimenumberNo-1None.
endTimenumberNo-1None.
timezonestringNoNoneNone.
limitnumberNoNoneOmission uses 300; values above 1,200 are capped at 1,200
sortDirstringNoNoneasc or desc; omission leaves the sort direction unspecified

Returns

Promise<Kline[]>

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

Type-checked example

const result = await quoteClient.getOptionKline(['AAPL  260619C00150000'], 'day', -1, -1, 'America/New_York', 100, 'desc');
console.log(result);

Response example

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

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


getOptionQuote

Signature

async getOptionQuote(identifiers: string[], timezone?: string): Promise<Brief[]>

Purpose

Gets option quote.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
identifiersstring[]YesNoneNon-empty; at most 30 OCC-style option identifiers
timezonestringNoNoneNone.

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
markPricenumberMark price
preMarkPricenumberPrevious mark price
markTimestampnumberTimestamp of the mark price (ms)
midPricenumberMid price
preMidPricenumberPrevious mid price
midTimestampnumberTimestamp of the mid price (ms)

Type-checked example

const result = await quoteClient.getOptionQuote(['AAPL  260619C00150000'], 'America/New_York');
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.


getOptionTradeTicks

Signature

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

Purpose

Gets option trade ticks.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionTradeTicksRequestYesNoneNone.
req.contractsOptionQueryItem[] | undefinedYesNoneNon-empty; at most 30 option contracts
req.langstring | undefinedNoNoneNone.

Returns

Promise<TradeTick[]>

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

Type-checked example

const result = await quoteClient.getOptionTradeTicks({ contracts: [{ symbol: 'AAPL', expiry: Date.UTC(2026, 5, 19), strike: '150', right: 'CALL' }] });
console.log(result);

Response example

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

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


getOptionTimeline

Signature

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

Purpose

Gets option timeline (intraday data).

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionTimelineRequestYesNoneNone.
req.optionQueryOptionQueryItem[] | undefinedNoNoneNone.
req.marketstring | 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.getOptionTimeline({ optionQuery: [{ symbol: 'AAPL', expiry: Date.UTC(2026, 5, 19), strike: '150', right: 'CALL' }], market: 'US' });
console.log(result);

Response example

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

getOptionDepth

Signature

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

Purpose

Gets option market depth (order book).

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionDepthRequestYesNoneNone.
req.optionBasicOptionQueryItem[] | undefinedYesNoneNon-empty; at most 30 option contracts
req.marketstring | 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.getOptionDepth({ optionBasic: [{ symbol: 'AAPL', expiry: Date.UTC(2026, 5, 19), strike: '150', right: 'CALL' }], market: 'US' });
console.log(result);

Response example

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

getOptionSymbols

This API is not supported by the server.

Signature

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

Purpose

Gets option symbols.

Parameters, defaults, and constraints

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

Returns

Promise<OptionSymbol[]>

FieldTypeDescription
symbolstringSymbol code
marketstringMarket
nameCNstringChinese name
nameENstringEnglish name

Type-checked example

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

Response example

[
  {
    "symbol": "string",
    "market": "string",
    "nameCN": "string",
    "nameEN": "string"
  }
]

getOptionAnalysis

Signature

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

Purpose

Gets option analysis.

Parameters, defaults, and constraints

ParameterTypeRequiredSDK defaultConstraints
reqOptionAnalysisRequestYesNoneNone.
req.symbolsstring[] | undefinedYesNoneNon-empty; at most 10 underlyings
req.marketstring | undefinedNoNoneUS or HK
req.periodstring | undefinedNo52week (API)Analysis period
req.requireVolatilityListboolean | undefinedNofalse (API)The historical volatility list is returned only when set to true
req.langstring | undefinedNoNoneNone.

Returns

Promise<OptionAnalysis[]>

FieldTypeDescription
symbolstringSymbol code
impliedVol30Daysnumber30-day implied volatility
hisVolatilitynumberHistorical volatility
ivHisVRationumberIV/HV ratio
callPutRationumberCall/put ratio
impliedVolMetricImpliedVolMetricImplied volatility metric
volatilityListOptionVolatilityPoint[]Volatility list

Type-checked example

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

Response example

[
  {
    "symbol": "string",
    "impliedVol30Days": 0,
    "hisVolatility": 0,
    "ivHisVRatio": 0,
    "callPutRatio": 0,
    "impliedVolMetric": {
      "period": "string",
      "percentile": 0,
      "rank": 0
    },
    "volatilityList": [
      "OptionVolatilityPoint"
    ]
  }
]

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


Did this page help you?