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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
Symbols | list of string | symbols | null | Required | Non-empty list |
Return
OptionExpirationResponse inherits TigerResponse; its Data is List<OptionExpirationItem>.
Response data type: List<OptionExpirationItem>.
OptionExpirationItem fields
| Field | C# type | Description |
|---|---|---|
Symbol | string | Underlying symbol. |
Count | int | Number of expiration dates. |
Dates | List<string> | Expiration dates. |
PeriodTags | List<string> | Period tags. |
Timestamps | List<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 absentResponse 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
OptionBasic | list of OptionChainModel | option_basic | null | Optional | — |
OptionFilter | OptionChainFilterModel | option_filter | CLR default; omitted during serialization | Optional | Greek range filters are deprecated; see note below |
ReturnGreekValue | Boolean | return_greek_value | CLR default; omitted during serialization | Optional | Deprecated; see note below |
Deprecated:
ReturnGreekValue, Greek range filters inOptionFilter, and the option-chainOptionRealTimeQuotefieldsDelta,Gamma,Theta,Vega, andRhoare 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
| Field | C# type | Description |
|---|---|---|
Symbol | string | Underlying symbol. |
Expiry | long | Expiration timestamp. |
Items | List<OptionRealTimeQuoteGroup> | Option quote pairs. |
Nested OptionRealTimeQuoteGroup fields
| Field | C# type | Description |
|---|---|---|
Call | OptionRealTimeQuote | Call option quote. |
Put | OptionRealTimeQuote | Put option quote. |
Nested OptionRealTimeQuote fields
| Field | C# type | Description |
|---|---|---|
Identifier | string | Option identifier. |
Strike | string | Strike price. |
Right | string | Call-or-put indicator. |
AskPrice | double | Best ask price. |
BidPrice | double | Best bid price. |
LatestPrice | double | Latest price. |
PreClose | double | Previous close price. |
ImpliedVol | double | Implied volatility. |
Delta | double | Delta. |
Gamma | double | Gamma. |
Theta | double | Theta. |
Vega | double | Vega. |
Rho | double | Rho. |
MarkPrice | double | Mark price. |
PreMarkPrice | double | Previous mark price. |
MidPrice | double | Mid price. |
PreMidPrice | double | Previous mid price. |
AskSize | long | Best ask size. |
BidSize | long | Best bid size. |
Volume | long | Trading volume. |
LastTimestamp | long | Last quote timestamp. |
MarkTimestamp | long | Mark-price timestamp. |
MidTimestamp | long | Mid-price timestamp. |
OpenInterest | int | Open interest. |
Multiplier | int | Contract 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 absentResponse 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
OptionBasic | list of OptionCommonModel | option_basic | null | Optional | — |
Return
OptionBriefResponse inherits TigerResponse; its Data is List<OptionBriefItem>.
Response data type: List<OptionBriefItem>.
OptionBriefItem fields
| Field | C# type | Description |
|---|---|---|
Identifier | string | Option identifier. |
Symbol | string | Underlying symbol. |
Strike | string | Strike price. |
Right | string | Option right. |
Volatility | string | Volatility value. |
Expiry | long | Expiration timestamp. |
AskSize | long | Best ask size. |
BidSize | long | Best bid size. |
Volume | long | Trading volume. |
Timestamp | long | Quote timestamp. |
AskPrice | double | Best ask price. |
BidPrice | double | Best bid price. |
LatestPrice | double | Latest price. |
PreClose | double | Previous close price. |
High | double | Session high price. |
Low | double | Session low price. |
Open | double | Session opening price. |
Change | double | Price change. |
RatesBonds | double | Risk-free rate. |
OpenInterest | int | Open interest. |
Multiplier | int | Contract 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 absentResponse 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
OptionQuery | list of OptionKlineModel | option_query | null | Required | — |
Return
OptionKlineResponse inherits TigerResponse; its Data is List<OptionKlineItem>.
Response data structure: List<OptionKlineItem>; each Items value is List<OptionKlinePoint>.
OptionKlineItem fields
| Field | C# type | Description |
|---|---|---|
Symbol | string | Underlying symbol. |
Strike | string | Strike price. |
Right | string | Option right. |
Period | string | Bar period. |
Expiry | long | Expiration timestamp. |
Items | List<OptionKlinePoint> | Candlestick records. |
Nested OptionKlinePoint fields
| Field | C# type | Description |
|---|---|---|
Time | long | Bar timestamp. |
Volume | long | Trading volume. |
Open | double | Opening price. |
High | double | High price. |
Low | double | Low price. |
Close | double | Closing price. |
Amount | double | Turnover amount. |
VolumeDecimal | double? | Decimal trading volume. |
OpenInterest | int | Open 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 absentResponse 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
Return
OptionTradeTickResponse inherits TigerResponse; its Data is List<OptionTradeTickItem>.
Response data structure: List<OptionTradeTickItem>; each Items value is List<OptionTradeTickPoint>.
OptionTradeTickItem fields
| Field | C# type | Description |
|---|---|---|
Symbol | string | Underlying symbol. |
Strike | string | Strike price. |
Right | string | Option right. |
Expiry | long | Expiration timestamp. |
Items | List<OptionTradeTickPoint> | Trade tick records. |
Nested OptionTradeTickPoint fields
| Field | C# type | Description |
|---|---|---|
Time | long | Trade timestamp. |
Volume | long | Trading volume. |
Price | double | Trade 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 absentResponse 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
Return
OptionDepthResponse inherits TigerResponse; its Data is List<OptionDepthItem>.
Response data structure: List<OptionDepthItem>; Ask and Bid are List<OptionDepthOrderBook>.
OptionDepthItem fields
| Field | C# type | Description |
|---|---|---|
Symbol | string | Underlying symbol. |
Strike | string | Strike price. |
Right | string | Option right. |
Expiry | long | Expiration timestamp. |
Timestamp | long | Order-book timestamp. |
Ask | List<OptionDepthOrderBook> | Ask order-book levels. |
Bid | List<OptionDepthOrderBook> | Bid order-book levels. |
Nested OptionDepthOrderBook fields
| Field | C# type | Description |
|---|---|---|
Price | double | Order-book price. |
Code | string | Order-book level code. |
Timestamp | long | Order-book timestamp. |
Volume | int | Order-book volume. |
Count | int | Order 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 absentResponse 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
PackageName | PackageName | package_name | CLR default; omitted during serialization | Optional | — |
IncludeOTC | Boolean | include_otc | CLR default; omitted during serialization | Optional | — |
Return
OptionSymbolResponse inherits TigerResponse; its Data is List<OptionSymbolItem>.
Response data type: List<OptionSymbolItem>.
OptionSymbolItem fields
| Field | C# type | Description |
|---|---|---|
Symbol | string | Option symbol. |
Name | string | Option name. |
UnderlyingSymbol | string | Underlying 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 absentRelated 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Not applicable | Inherited field; QuoteClient does not inject TigerConfig.DefaultAccount, and null is omitted during serialization |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
Symbols | list of OptionAnalysisSymbolModel | symbols | null | Required | Non-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
| Field | C# type | Description |
|---|---|---|
Symbol | string | Underlying symbol. |
ImpliedVol30Days | double | 30-day implied volatility. |
HisVolatility | double | Historical volatility. |
IvHisVRatio | double | Implied-to-historical-volatility ratio. |
CallPutRatio | double | Call-to-put ratio. |
ImpliedVolMetric | ImpliedVolMetricItem | Implied-volatility metrics. |
VolatilityList | List<OptionVolatilityPoint> | Historical volatility points. |
Nested ImpliedVolMetricItem fields
| Field | C# type | Description |
|---|---|---|
Period | string | Measurement period. |
Percentile | double | Implied-volatility percentile. |
Rank | double | Implied-volatility rank. |
Nested OptionVolatilityPoint fields
| Field | C# type | Description |
|---|---|---|
ImpliedVol | double | Implied volatility. |
Percentile | double | Volatility percentile. |
Rank | double | Volatility rank. |
HisVolatility | double | Historical volatility. |
Timestamp | long | Measurement 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 absentRate 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
OptionQuery | list of OptionTimelineQuery | option_query | none | Required | — |
Market | Market | market | Market.NONE/omitted | Optional | Enum 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 absentRelated APIs
Updated 23 days ago
