Futures

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 Futures Exchanges

Operation

QuoteApiService.FUTURE_EXCHANGE = future_exchange. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureExchangeResponse>

ModelValue: FutureExchangeModel.

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
SecTypestringsec_typenullOptional

Return

Response data type: List<FutureExchangeItem>.

FutureExchangeItem fields

FieldC# typeDescription
CodestringExchange code.
NamestringExchange name.
ZoneIdstringTime-zone ID.

Example

TigerRequest<FutureExchangeResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_EXCHANGE,
    ModelValue = new FutureExchangeModel { SecType = "STK" }
};
FutureExchangeResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {"code": "CME", "name": "CME", "zoneId": "America/Chicago"},
    {"code": "HKEX", "name": "HKEX", "zoneId": "Asia/Hong_Kong"},
    {"code": "SGX", "name": "SGX", "zoneId": "Asia/Singapore"}
  ]
}

Rate limit

Base tier: 10 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Contract by Code

Operation

QuoteApiService.FUTURE_CONTRACT_BY_CONTRACT_CODE = future_contract_by_contract_code. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureContractResponse>

ModelValue: FutureContractByConCodeModel.

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
ContractCodestringcontract_codenullRequired

Return

Response data type: FutureContractItem.

FutureContractItem fields

FieldC# typeDescription
TypestringContract type.
NamestringContract name.
IbCodestringIB code.
ContractCodestringContract code.
ContractMonthstringContract month.
ExchangeCodestringExchange code.
ExchangestringExchange.
LastTradingDatestringLast trading date.
FirstNoticeDatestringFirst notice date.
CurrencystringCurrency.
MultiplierdecimalContract multiplier.
MinTickdecimalMinimum price increment.
LastBiddingCloseTimelongLast bidding close timestamp.
ContinuousboolWhether the contract is continuous.
TradeboolWhether the contract is tradable.

Example

TigerRequest<FutureContractResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_CONTRACT_BY_CONTRACT_CODE,
    ModelValue = new FutureContractByConCodeModel { ContractCode = "ES2609" }
};
FutureContractResponse? response = await quoteClient.ExecuteAsync(request);

Response type

FutureContractItem? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": {
    "contractCode": "ES2612",
    "type": "ES",
    "name": "E-mini S&P 500",
    "exchangeCode": "CME",
    "multiplier": 50.0,
    "contractMonth": "202612",
    "lastTradingDate": "2026-12-18",
    "firstNoticeDate": null,
    "currency": "USD"
  }
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Contracts by Exchange

Operation

QuoteApiService.FUTURE_CONTRACT_BY_EXCHANGE_CODE = future_contract_by_exchange_code. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureContractsResponse>

ModelValue: FutureContractByExchCodeModel.

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
ExchangeCodestringexchange_codenullRequired

Return

Response data type: List<FutureContractItem>.

FutureContractItem fields

FieldC# typeDescription
TypestringContract type.
NamestringContract name.
IbCodestringIB code.
ContractCodestringContract code.
ContractMonthstringContract month.
ExchangeCodestringExchange code.
ExchangestringExchange.
LastTradingDatestringLast trading date.
FirstNoticeDatestringFirst notice date.
CurrencystringCurrency.
MultiplierdecimalContract multiplier.
MinTickdecimalMinimum price increment.
LastBiddingCloseTimelongLast bidding close timestamp.
ContinuousboolWhether the contract is continuous.
TradeboolWhether the contract is tradable.

Example

TigerRequest<FutureContractsResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_CONTRACT_BY_EXCHANGE_CODE,
    ModelValue = new FutureContractByExchCodeModel { ExchangeCode = "CME" }
};
FutureContractsResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {"contractCode": "ES2612", "type": "ES", "name": "E-mini S&P 500", "exchangeCode": "CME", "multiplier": 50.0, "contractMonth": "202612"},
    {"contractCode": "NQ2612", "type": "NQ", "name": "E-mini Nasdaq 100", "exchangeCode": "CME", "multiplier": 20.0, "contractMonth": "202612"}
  ]
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Continuous Contracts

Operation

QuoteApiService.FUTURE_CONTINUOUS_CONTRACTS = future_continuous_contracts. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureContractsResponse>

ModelValue: FutureContractByTypeModel.

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
FutureTypestringtypenullOptional

Return

Response data type: List<FutureContractItem>.

FutureContractItem fields

FieldC# typeDescription
TypestringContract type.
NamestringContract name.
IbCodestringIB code.
ContractCodestringContract code.
ContractMonthstringContract month.
ExchangeCodestringExchange code.
ExchangestringExchange.
LastTradingDatestringLast trading date.
FirstNoticeDatestringFirst notice date.
CurrencystringCurrency.
MultiplierdecimalContract multiplier.
MinTickdecimalMinimum price increment.
LastBiddingCloseTimelongLast bidding close timestamp.
ContinuousboolWhether the contract is continuous.
TradeboolWhether the contract is tradable.

Example

TigerRequest<FutureContractsResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_CONTINUOUS_CONTRACTS,
    ModelValue = new FutureContractByTypeModel()
};
FutureContractsResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {"contractCode": "ESmain", "type": "ES", "name": "E-mini S&P 500 (Main)", "exchangeCode": "CME", "multiplier": 50.0}
  ]
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Current Contract

Operation

QuoteApiService.FUTURE_CURRENT_CONTRACT = future_current_contract. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureContractResponse>

ModelValue: FutureContractByTypeModel.

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
FutureTypestringtypenullOptional

Return

Response data type: FutureContractItem.

FutureContractItem fields

FieldC# typeDescription
TypestringContract type.
NamestringContract name.
IbCodestringIB code.
ContractCodestringContract code.
ContractMonthstringContract month.
ExchangeCodestringExchange code.
ExchangestringExchange.
LastTradingDatestringLast trading date.
FirstNoticeDatestringFirst notice date.
CurrencystringCurrency.
MultiplierdecimalContract multiplier.
MinTickdecimalMinimum price increment.
LastBiddingCloseTimelongLast bidding close timestamp.
ContinuousboolWhether the contract is continuous.
TradeboolWhether the contract is tradable.

Example

TigerRequest<FutureContractResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_CURRENT_CONTRACT,
    ModelValue = new FutureContractByTypeModel()
};
FutureContractResponse? response = await quoteClient.ExecuteAsync(request);

Response type

FutureContractItem? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": {
    "contractCode": "ES2609",
    "type": "ES",
    "name": "E-mini S&P 500",
    "exchangeCode": "CME",
    "multiplier": 50.0,
    "contractMonth": "202609"
  }
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Contract List

Operation

QuoteApiService.FUTURE_CONTRACTS = future_contracts. Use this constant for TigerRequest.ApiMethodName.

This operation is registered by the server.

Request

TigerRequest<FutureContractsResponse>

ModelValue: FutureContractByTypeModel.

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
FutureTypestringtypenullOptional

Return

Response data type: List<FutureContractItem>.

FutureContractItem fields

FieldC# typeDescription
TypestringContract type.
NamestringContract name.
IbCodestringIB code.
ContractCodestringContract code.
ContractMonthstringContract month.
ExchangeCodestringExchange code.
ExchangestringExchange.
LastTradingDatestringLast trading date.
FirstNoticeDatestringFirst notice date.
CurrencystringCurrency.
MultiplierdecimalContract multiplier.
MinTickdecimalMinimum price increment.
LastBiddingCloseTimelongLast bidding close timestamp.
ContinuousboolWhether the contract is continuous.
TradeboolWhether the contract is tradable.

Example

TigerRequest<FutureContractsResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_CONTRACTS,
    ModelValue = new FutureContractByTypeModel()
};
FutureContractsResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {"contractCode": "ES2609", "type": "ES", "name": "E-mini S&P 500", "exchangeCode": "CME", "multiplier": 50.0, "contractMonth": "202609"},
    {"contractCode": "ES2612", "type": "ES", "name": "E-mini S&P 500", "exchangeCode": "CME", "multiplier": 50.0, "contractMonth": "202612"}
  ]
}

Related APIs

See Requests, responses, and operations.

Get Futures Candlestick Bars

Operation

QuoteApiService.FUTURE_KLINE = future_kline. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureKlineResponse>

ModelValue: FutureKlineModel.

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
ContractCodeslist of stringcontract_codesnullRequiredNon-empty list
PeriodstringperiodFutureKType.min1.ValueOptional
BeginTimeInt64begin_timeCLR default; omitted during serializationOptionalTimestamp or date format; maintain chronological order
EndTimeInt64end_timeCLR default; omitted during serializationOptionalTimestamp or date format; maintain chronological order
LimitInt32limit300OptionalPositive integer
PageTokenstringpage_tokennullOptional

Return

Response data structure: List<FutureKlineBatchItem>; each Items value is List<FutureKlineItem>.

FutureKlineBatchItem fields

FieldC# typeDescription
ContractCodestringFutures contract code.
NextPageTokenstringNext-page token.
ItemsList<FutureKlineItem>Candlestick records.

Nested FutureKlineItem fields

FieldC# typeDescription
TimelongBar timestamp.
LastTimelongLast bar timestamp.
VolumelongTrading volume.
OpenInterestlongOpen interest.
OpendecimalOpening price.
ClosedecimalClosing price.
HighdecimalHigh price.
LowdecimalLow price.
SettlementdecimalSettlement price.

Example

TigerRequest<FutureKlineResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_KLINE,
    ModelValue = new FutureKlineModel { ContractCodes = new List<string> { "ES2609" }, Period = "day", BeginTime = 1780272000000L, EndTime = 1782864000000L }
};
FutureKlineResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "contractCode": "ES2612",
      "period": "day",
      "items": [
        {"time": 1785355200000, "open": 7600.0, "high": 7640.0, "low": 7580.0, "close": 7625.0, "volume": 125000},
        {"time": 1785441600000, "open": 7625.0, "high": 7650.0, "low": 7610.0, "close": 7640.0, "volume": 98000}
      ]
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Futures Quotes

Operation

QuoteApiService.FUTURE_REAL_TIME_QUOTE = future_real_time_quote. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureRealTimeQuoteResponse>

ModelValue: FutureContractCodesModel.

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
ContractCodeslist of stringcontract_codesnullRequiredNon-empty list

Return

Response data type: List<FutureRealTimeItem>.

FutureRealTimeItem fields

FieldC# typeDescription
ContractCodestringFutures contract code.
LatestSizelongLatest trade size.
LatestTimelongLatest trade timestamp.
BidSizelongBest bid size.
AskSizelongBest ask size.
OpenInterestlongOpen interest.
VolumelongTrading volume.
LatestPricedecimalLatest price.
BidPricedecimalBest bid price.
AskPricedecimalBest ask price.
OpendecimalOpening price.
HighdecimalHigh price.
LowdecimalLow price.
SettlementdecimalSettlement price.
LimitUpdecimalUpper price limit.
LimitDowndecimalLower price limit.

Example

TigerRequest<FutureRealTimeQuoteResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_REAL_TIME_QUOTE,
    ModelValue = new FutureContractCodesModel { ContractCodes = new List<string> { "ES2609" } }
};
FutureRealTimeQuoteResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Futures Ticks

Operation

QuoteApiService.FUTURE_TICK = future_tick. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureTickResponse>

ModelValue: FutureTickModel.

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
ContractCodestringcontract_codenullRequired
BeginIndexInt64begin_indexCLR default; omitted during serializationOptional
EndIndexInt64end_indexCLR default; omitted during serializationOptional
LimitInt32limit200OptionalPositive integer

Return

Response data structure: FutureTickBatchItem; its Items is List<FutureTickItem>.

FutureTickBatchItem fields

FieldC# typeDescription
ContractCodestringFutures contract code.
ItemsList<FutureTickItem>Trade tick records.

Nested FutureTickItem fields

FieldC# typeDescription
IndexlongTick index.
VolumelongTrading volume.
TimelongTimestamp.
PricedecimalTrade price.

Example

TigerRequest<FutureTickResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_TICK,
    ModelValue = new FutureTickModel { ContractCode = "ES2609", Limit = 20 }
};
FutureTickResponse? response = await quoteClient.ExecuteAsync(request);

Response type

FutureTickBatchItem? data = response?.Data; // null when response or data is absent

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "contractCode": "ES2612",
      "items": [
        {"time": 1785527980000, "price": 7625.0, "volume": 12, "type": "+"},
        {"time": 1785527980100, "price": 7624.75, "volume": 5, "type": "-"}
      ]
    }
  ]
}

Rate limit

Base tier: 120 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Trading Hours

Operation

QuoteApiService.FUTURE_TRADING_DATE = future_trading_date. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureTradingDateResponse>

ModelValue: FutureTradingDateModel.

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
ContractCodestringcontract_codenullRequired
TradingDatelongtrading_dateCLR default; omitted during serializationOptional

Return

Response data type: FutureTradingDateItem.

FutureTradingDateItem fields

FieldC# typeDescription
TimeSectionstringFutures trading time section.

Example

TigerRequest<FutureTradingDateResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_TRADING_DATE,
    ModelValue = new FutureTradingDateModel { ContractCode = "ES2609" }
};
FutureTradingDateResponse? response = await quoteClient.ExecuteAsync(request);

Response type

FutureTradingDateItem? 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.

Get Historical Main Contract

Operation

QuoteApiService.FUTURE_HISTORY_MAIN_CONTRACT = future_history_main_contract. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<FutureHistoryMainContractResponse>

ModelValue: FutureHistoryMainContractModel.

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
ContractCodeslist of stringcontract_codesnullRequiredNon-empty list
BeginTimeInt64begin_timeCLR default; omitted during serializationOptionalTimestamp or date format; maintain chronological order
EndTimeInt64end_timeCLR default; omitted during serializationOptionalTimestamp or date format; maintain chronological order

Return

Response data structure: List<FutureHistoryMainContractItem>; each Items value is List<FutureHistoryContractItem>.

FutureHistoryMainContractItem fields

FieldC# typeDescription
ContractCodestringMain futures contract code.
ItemsList<FutureHistoryContractItem>Historical main-contract records.

Nested FutureHistoryContractItem fields

FieldC# typeDescription
TimelongEffective timestamp.
ReferContractCodestringReferenced contract code.

Example

TigerRequest<FutureHistoryMainContractResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_HISTORY_MAIN_CONTRACT,
    ModelValue = new FutureHistoryMainContractModel { ContractCodes = new List<string> { "ES2609" }, BeginTime = 1780272000000L, EndTime = 1782864000000L }
};
FutureHistoryMainContractResponse? response = await quoteClient.ExecuteAsync(request);

Response type

List<FutureHistoryMainContractItem>? 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.

Get Futures Market Depth

Operation

QuoteApiService.FUTURE_DEPTH = future_depth. Use this constant for TigerRequest.ApiMethodName.

This operation is registered by the server.

Request

TigerRequest<FutureDepthResponse>

ModelValue: FutureDepthModel.

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
ContractCodeslist of stringcontract_codesnullRequiredNon-empty list

Return

Response data structure: List<FutureDepthItem>; Ask and Bid are List<FutureDepthAskBidItem>.

FutureDepthItem fields

FieldC# typeDescription
ContractIdstringFutures contract ID.
ContractCodestringFutures contract code.
AskList<FutureDepthAskBidItem>Ask order-book levels.
BidList<FutureDepthAskBidItem>Bid order-book levels.

Nested FutureDepthAskBidItem fields

FieldC# typeDescription
PricedecimalOrder-book price.
VolumelongOrder-book volume.

Example

TigerRequest<FutureDepthResponse> request = new()
{
    ApiMethodName = QuoteApiService.FUTURE_DEPTH,
    ModelValue = new FutureDepthModel { ContractCodes = new List<string> { "ES2609" } }
};
FutureDepthResponse? response = await quoteClient.ExecuteAsync(request);

Response type

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

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "contractCode": "ES2612",
      "asks": [
        {"price": 7623.50, "volume": 120},
        {"price": 7624.00, "volume": 85}
      ],
      "bids": [
        {"price": 7622.25, "volume": 95},
        {"price": 7622.00, "volume": 150}
      ]
    }
  ]
}

Related APIs

See Requests, responses, and operations.


Did this page help you?