Options

All operations use QuoteClient.ExecuteAsync.

STOCK_DETAIL and QUOTE_OVERNIGHT require additional market-data entitlements. The server returns a permission error code when an entitlement is missing.

Get Option Expirations

Operation

QuoteApiService.OPTION_EXPIRATION = option_expiration. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<OptionExpirationResponse>

ModelValue: OptionExpirationModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
Symbolslist of stringsymbolsnullRequiredNon-empty list

Return

OptionExpirationResponse inherits TigerResponse; its Data is List<OptionExpirationItem>.

Response data type: List<OptionExpirationItem>.

OptionExpirationItem fields

FieldC# typeDescription
SymbolstringUnderlying symbol.
CountintNumber of expiration dates.
DatesList<string>Expiration dates.
PeriodTagsList<string>Period tags.
TimestampsList<long>Expiration timestamps.

Example

TigerRequest<OptionExpirationResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_EXPIRATION,
    ModelValue = new OptionExpirationModel { Market = Market.US, Symbols = new List<string> { "AAPL" } }
};
OptionExpirationResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionExpirationItem>? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "symbol": "AAPL",
      "dates": ["2025-08-08", "2025-08-15", "2025-08-22"],
      "timestamps": [1754625600000, 1755230400000, 1755835200000],
      "count": 3
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Option Chain

Operation

QuoteApiService.OPTION_CHAIN = option_chain. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<OptionChainResponse>

ModelValue: OptionChainV3Model.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
OptionBasiclist of OptionChainModeloption_basicnullOptional
OptionFilterOptionChainFilterModeloption_filterCLR default; omitted during serializationOptionalGreek range filters are deprecated; see note below
ReturnGreekValueBooleanreturn_greek_valueCLR default; omitted during serializationOptionalDeprecated; see note below

Deprecated: ReturnGreekValue, Greek range filters in OptionFilter, and the option-chain OptionRealTimeQuote fields Delta, Gamma, Theta, Vega, and Rho are deprecated. These values update daily and are not suitable for intraday decisions; new integrations should not request or filter by them.

Return

OptionChainResponse inherits TigerResponse; its Data is List<OptionChainItem>.

Response data structure: List<OptionChainItem>; each Items value is List<OptionRealTimeQuoteGroup>.

OptionChainItem fields

FieldC# typeDescription
SymbolstringUnderlying symbol.
ExpirylongExpiration timestamp.
ItemsList<OptionRealTimeQuoteGroup>Option quote pairs.

Nested OptionRealTimeQuoteGroup fields

FieldC# typeDescription
CallOptionRealTimeQuoteCall option quote.
PutOptionRealTimeQuotePut option quote.

Nested OptionRealTimeQuote fields

FieldC# typeDescription
IdentifierstringOption identifier.
StrikestringStrike price.
RightstringCall-or-put indicator.
AskPricedoubleBest ask price.
BidPricedoubleBest bid price.
LatestPricedoubleLatest price.
PreClosedoublePrevious close price.
ImpliedVoldoubleImplied volatility.
DeltadoubleDelta.
GammadoubleGamma.
ThetadoubleTheta.
VegadoubleVega.
RhodoubleRho.
MarkPricedoubleMark price.
PreMarkPricedoublePrevious mark price.
MidPricedoubleMid price.
PreMidPricedoublePrevious mid price.
AskSizelongBest ask size.
BidSizelongBest bid size.
VolumelongTrading volume.
LastTimestamplongLast quote timestamp.
MarkTimestamplongMark-price timestamp.
MidTimestamplongMid-price timestamp.
OpenInterestintOpen interest.
MultiplierintContract multiplier.

Example

TigerRequest<OptionChainResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_CHAIN,
    ModelValue = new OptionChainV3Model { Market = Market.US }
};
OptionChainResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionChainItem>? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "symbol": "AAPL",
      "expiry": 1754625600000,
      "items": [
        {"call": {"identifier": "AAPL  250808C00230000", "strike": "230", "right": "CALL", "latestPrice": 80.50, "volume": 1200, "openInterest": 5600}, "put": {"identifier": "AAPL  250808P00230000", "strike": "230", "right": "PUT", "latestPrice": 1.25, "volume": 800, "openInterest": 3200}}
      ]
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Option Quotes

Operation

QuoteApiService.OPTION_BRIEF = option_brief. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<OptionBriefResponse>

ModelValue: OptionBasicModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
OptionBasiclist of OptionCommonModeloption_basicnullOptional

Return

OptionBriefResponse inherits TigerResponse; its Data is List<OptionBriefItem>.

Response data type: List<OptionBriefItem>.

OptionBriefItem fields

FieldC# typeDescription
IdentifierstringOption identifier.
SymbolstringUnderlying symbol.
StrikestringStrike price.
RightstringOption right.
VolatilitystringVolatility value.
ExpirylongExpiration timestamp.
AskSizelongBest ask size.
BidSizelongBest bid size.
VolumelongTrading volume.
TimestamplongQuote timestamp.
AskPricedoubleBest ask price.
BidPricedoubleBest bid price.
LatestPricedoubleLatest price.
PreClosedoublePrevious close price.
HighdoubleSession high price.
LowdoubleSession low price.
OpendoubleSession opening price.
ChangedoublePrice change.
RatesBondsdoubleRisk-free rate.
OpenInterestintOpen interest.
MultiplierintContract multiplier.

Example

TigerRequest<OptionBriefResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_BRIEF,
    ModelValue = new OptionBasicModel { Market = Market.US }
};
OptionBriefResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionBriefItem>? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "identifier": "AAPL  250808C00230000",
      "symbol": "AAPL",
      "strike": 230.0,
      "right": "CALL",
      "multiplier": 100,
      "expiry": 1754625600000,
      "latestPrice": 80.50,
      "volume": 1200,
      "openInterest": 5600,
      "askPrice": 80.55,
      "askSize": 10,
      "bidPrice": 80.45,
      "bidSize": 12,
      "timestamp": 1754649600000
    }
  ]
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Option Candlestick Bars

Operation

QuoteApiService.OPTION_KLINE = option_kline. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<OptionKlineResponse>

ModelValue: OptionKlineV2Model.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
OptionQuerylist of OptionKlineModeloption_querynullRequired

Return

OptionKlineResponse inherits TigerResponse; its Data is List<OptionKlineItem>.

Response data structure: List<OptionKlineItem>; each Items value is List<OptionKlinePoint>.

OptionKlineItem fields

FieldC# typeDescription
SymbolstringUnderlying symbol.
StrikestringStrike price.
RightstringOption right.
PeriodstringBar period.
ExpirylongExpiration timestamp.
ItemsList<OptionKlinePoint>Candlestick records.

Nested OptionKlinePoint fields

FieldC# typeDescription
TimelongBar timestamp.
VolumelongTrading volume.
OpendoubleOpening price.
HighdoubleHigh price.
LowdoubleLow price.
ClosedoubleClosing price.
AmountdoubleTurnover amount.
VolumeDecimaldouble?Decimal trading volume.
OpenInterestintOpen interest.

Example

TigerRequest<OptionKlineResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_KLINE,
    ModelValue = new OptionKlineV2Model { Market = Market.US }
};
OptionKlineResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionKlineItem>? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "symbol": "AAPL",
      "strike": "230",
      "right": "CALL",
      "expiry": 1754625600000,
      "period": "day",
      "items": [
        {"time": 1785355200000, "open": 78.00, "high": 82.00, "low": 77.50, "close": 80.50, "volume": 1200, "openInterest": 5600},
        {"time": 1785441600000, "open": 80.50, "high": 83.00, "low": 79.00, "close": 81.25, "volume": 950, "openInterest": 5700}
      ]
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Option Ticks

Operation

QuoteApiService.OPTION_TRADE_TICK = option_trade_tick. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<OptionTradeTickResponse>

ModelValue: OptionModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value

Return

OptionTradeTickResponse inherits TigerResponse; its Data is List<OptionTradeTickItem>.

Response data structure: List<OptionTradeTickItem>; each Items value is List<OptionTradeTickPoint>.

OptionTradeTickItem fields

FieldC# typeDescription
SymbolstringUnderlying symbol.
StrikestringStrike price.
RightstringOption right.
ExpirylongExpiration timestamp.
ItemsList<OptionTradeTickPoint>Trade tick records.

Nested OptionTradeTickPoint fields

FieldC# typeDescription
TimelongTrade timestamp.
VolumelongTrading volume.
PricedoubleTrade price.

Example

TigerRequest<OptionTradeTickResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_TRADE_TICK,
    ModelValue = new OptionModel { Market = Market.US }
};
OptionTradeTickResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionTradeTickItem>? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "symbol": "AAPL",
      "expiry": 1754625600000,
      "strike": "230",
      "right": "CALL",
      "items": [
        {"time": 1785527900000, "price": 80.50, "volume": 5},
        {"time": 1785527920000, "price": 80.45, "volume": 3}
      ]
    }
  ]
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Option Market Depth

Operation

QuoteApiService.OPTION_DEPTH = option_depth. Use this constant for TigerRequest.ApiMethodName.

This operation is registered by the server.

Request

TigerRequest<OptionDepthResponse>

ModelValue: OptionModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value

Return

OptionDepthResponse inherits TigerResponse; its Data is List<OptionDepthItem>.

Response data structure: List<OptionDepthItem>; Ask and Bid are List<OptionDepthOrderBook>.

OptionDepthItem fields

FieldC# typeDescription
SymbolstringUnderlying symbol.
StrikestringStrike price.
RightstringOption right.
ExpirylongExpiration timestamp.
TimestamplongOrder-book timestamp.
AskList<OptionDepthOrderBook>Ask order-book levels.
BidList<OptionDepthOrderBook>Bid order-book levels.

Nested OptionDepthOrderBook fields

FieldC# typeDescription
PricedoubleOrder-book price.
CodestringOrder-book level code.
TimestamplongOrder-book timestamp.
VolumeintOrder-book volume.
CountintOrder count.

Example

TigerRequest<OptionDepthResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_DEPTH,
    ModelValue = new OptionModel { Market = Market.US }
};
OptionDepthResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionDepthItem>? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "symbol": "AAPL",
      "expiry": 1754625600000,
      "strike": "230",
      "right": "CALL",
      "timestamp": 1754649600000,
      "ask": [
        {"price": 80.80, "volume": 20, "count": 0},
        {"price": 80.90, "volume": 15, "count": 0}
      ],
      "bid": [
        {"price": 80.50, "volume": 10, "count": 0},
        {"price": 80.40, "volume": 25, "count": 0}
      ]
    }
  ]
}

Related APIs

See Requests, responses, and operations.

Get HK Option Symbols

Operation

QuoteApiService.ALL_HK_OPTION_SYMBOLS = all_hk_option_symbols. Use this constant for TigerRequest.ApiMethodName.

This operation is registered by the server.

Request

TigerRequest<OptionSymbolResponse>

ModelValue: QuoteMarketModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
PackageNamePackageNamepackage_nameCLR default; omitted during serializationOptional
IncludeOTCBooleaninclude_otcCLR default; omitted during serializationOptional

Return

OptionSymbolResponse inherits TigerResponse; its Data is List<OptionSymbolItem>.

Response data type: List<OptionSymbolItem>.

OptionSymbolItem fields

FieldC# typeDescription
SymbolstringOption symbol.
NamestringOption name.
UnderlyingSymbolstringUnderlying symbol.

Example

TigerRequest<OptionSymbolResponse> request = new()
{
    ApiMethodName = QuoteApiService.ALL_HK_OPTION_SYMBOLS,
    ModelValue = new QuoteMarketModel { Market = Market.US }
};
OptionSymbolResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionSymbolItem>? data = response?.Data; // null when response or data is absent

Related APIs

See Requests, responses, and operations.

Option Analysis

Operation

QuoteApiService.OPTION_ANALYSIS = option_analysis. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<OptionAnalysisResponse>

ModelValue: OptionAnalysisModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullNot applicableInherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
Symbolslist of OptionAnalysisSymbolModelsymbolsnullRequiredNon-empty list

Return

OptionAnalysisResponse inherits TigerResponse; its Data is List<OptionAnalysisItem>.

Response data structure: List<OptionAnalysisItem>; ImpliedVolMetric is ImpliedVolMetricItem and VolatilityList is List<OptionVolatilityPoint>.

OptionAnalysisItem fields

FieldC# typeDescription
SymbolstringUnderlying symbol.
ImpliedVol30Daysdouble30-day implied volatility.
HisVolatilitydoubleHistorical volatility.
IvHisVRatiodoubleImplied-to-historical-volatility ratio.
CallPutRatiodoubleCall-to-put ratio.
ImpliedVolMetricImpliedVolMetricItemImplied-volatility metrics.
VolatilityListList<OptionVolatilityPoint>Historical volatility points.

Nested ImpliedVolMetricItem fields

FieldC# typeDescription
PeriodstringMeasurement period.
PercentiledoubleImplied-volatility percentile.
RankdoubleImplied-volatility rank.

Nested OptionVolatilityPoint fields

FieldC# typeDescription
ImpliedVoldoubleImplied volatility.
PercentiledoubleVolatility percentile.
RankdoubleVolatility rank.
HisVolatilitydoubleHistorical volatility.
TimestamplongMeasurement timestamp.

Example

TigerRequest<OptionAnalysisResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_ANALYSIS,
    ModelValue = new OptionAnalysisModel { Market = Market.US }
};
OptionAnalysisResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<OptionAnalysisItem>? data = response?.Data; // null when response or data is absent

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Option Timeline

Operation

QuoteApiService.OPTION_TIMELINE = option_timeline. Use this constant for TigerRequest.ApiMethodName.

This operation is registered by the server.

Request

TigerRequest<TigerListResponse>

ModelValue: OptionTimelineModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
OptionQuerylist of OptionTimelineQueryoption_querynoneRequired
MarketMarketmarketMarket.NONE/omittedOptionalEnum value

Return

TigerListResponse inherits TigerResponse; its Data is List<Dictionary<string, object>>.

Response data type: List<Dictionary<string, object>>. TigerListResponse declares no fixed dictionary keys or value model, so no field table can be listed safely.

Example

TigerRequest<TigerListResponse> request = new()
{
    ApiMethodName = QuoteApiService.OPTION_TIMELINE,
    ModelValue = new OptionTimelineModel { Market = Market.US, OptionQuery = new List<OptionTimelineQuery> { new() { Symbol = "AAPL", Expiry = 1784246400000L, Right = "CALL", Strike = "200" } } }
};
TigerListResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<Dictionary<string, object>>? data = response?.Data; // null when response or data is absent

Related APIs

See Requests, responses, and operations.


Did this page help you?