Get Contracts

State-changing operations must prevent duplicate submission.

Get Contract

Operation

TradeApiService.CONTRACT = contract. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<ContractResponse>

ModelValue: ContractModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullAuto-filled if emptyIf empty, TradeClient injects TigerConfig.DefaultAccount; validation fails if it remains empty
SecretKeystringsecret_keynullno
SecTypestringsec_typeTigerOpenAPI.Common.Enum.SecType.STK.ToString()Optional
CurrencystringcurrencynullOptional
RightstringrightnullOptional
StrikeDoublestrikeCLR default; omitted during serializationOptional
ExpirystringexpirynullOptional
ExchangestringexchangenullOptional
SymbolstringsymbolnullRequired

Return

ContractResponse inherits TigerResponse; its data property is ContractItem.

Example

TigerRequest<ContractResponse> request = new()
{
    ApiMethodName = TradeApiService.CONTRACT,
    ModelValue = new ContractModel { Account = tradeClient.GetDefaultAccount, SecType = "STK", Currency = "USD", Strike = 200.0, Symbol = "AAPL" }
};
ContractResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields

FieldAPI fieldC# typeDescription
ContractIdcontractIdInt32Contract ID.
IdentifieridentifierstringContract identifier.
SymbolsymbolstringTrading symbol.
SecTypesecTypestringSecurity type.
ExpiryexpirystringExpiration date.
ContractMonthcontractMonthstringContract month.
StrikestrikeDoubleStrike price.
RightrightstringOption right.
MultipliermultiplierDoubleContract multiplier.
LotSizelotSizeDoubleTrading lot size.
ExchangeexchangestringExchange code.
MarketmarketstringMarket identifier.
PrimaryExchangeprimaryExchangestringPrimary listing exchange.
CurrencycurrencystringTrading currency.
LocalSymbollocalSymbolstringExchange-local symbol.
TradingClasstradingClassstringTrading class.
NamenamestringContract name.
TradeabletradeableBooleanWhether trading is allowed.
CloseOnlycloseOnlyBooleanWhether only closing trades are allowed.
MinTickminTickDoubleMinimum price increment.
MarginablemarginableBooleanWhether the contract is marginable.
ShortInitialMarginshortInitialMarginDoubleInitial margin for short positions.
ShortMaintenanceMarginshortMaintenanceMarginDoubleMaintenance margin for short positions.
ShortFeeRateshortFeeRateDoubleShort-selling fee rate.
ShortableshortableBooleanWhether the contract can be shorted.
ShortableCountshortableCountlongAvailable shortable quantity.
LongInitialMarginlongInitialMarginDoubleInitial margin for long positions.
LongMaintenanceMarginlongMaintenanceMarginDoubleMaintenance margin for long positions.
LastTradingDatelastTradingDatestringLast trading date.
FirstNoticeDatefirstNoticeDatestringFirst notice date.
LastBiddingCloseTimelastBiddingCloseTimelongLast bidding close timestamp.
ContinuouscontinuousBooleanWhether this is a continuous contract.
TypetypestringContract type.
IbCodeibCodestringIB contract code.
TickSizestickSizesList<TickSizeItem>Tick-size rules.
DiscountedDayInitialMargindiscountedDayInitialMarginDoubleDiscounted daytime initial margin.
DiscountedDayMaintenanceMargindiscountedDayMaintenanceMarginDoubleDiscounted daytime maintenance margin.
DiscountedTimeZoneCodediscountedTimeZoneCodestringTime zone for discounted-margin hours.
DiscountedStartAtdiscountedStartAtstringDiscounted-margin period start.
DiscountedEndAtdiscountedEndAtstringDiscounted-margin period end.
IsEtfisEtfBooleanWhether the contract is an ETF.
EtfLeverageetfLeverageInt32ETF leverage factor.

Each TickSizes item is a TickSizeItem:

FieldAPI fieldC# typeDescription
BeginbeginstringStart of the price range.
EndendstringEnd of the price range.
TypetypeTickSizeTypeTick-size rule type.
TickSizetickSizedoubleMinimum price increment for the range.

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": {
    "symbol": "AAPL",
    "secType": "STK",
    "exchange": "SMART",
    "market": "US",
    "lotSize": 1,
    "currency": "USD",
    "name": "Apple Inc"
  }
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Contracts

Operation

TradeApiService.CONTRACTS = contracts. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<ContractsResponse>

ModelValue: ContractsModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullAuto-filled if emptyIf empty, TradeClient injects TigerConfig.DefaultAccount; validation fails if it remains empty
SecretKeystringsecret_keynullno
SecTypestringsec_typeTigerOpenAPI.Common.Enum.SecType.STK.ToString()Optional
CurrencystringcurrencynullOptional
RightstringrightnullOptional
StrikeDoublestrikeCLR default; omitted during serializationOptional
ExpirystringexpirynullOptional
ExchangestringexchangenullOptional
Symbolslist of stringsymbolsnullRequiredNon-empty list

Return

ContractsResponse inherits TigerResponse; its data property is Dictionary<string, List<ContractItem>>.

Example

TigerRequest<ContractsResponse> request = new()
{
    ApiMethodName = TradeApiService.CONTRACTS,
    ModelValue = new ContractsModel { Account = tradeClient.GetDefaultAccount, SecType = "STK", Currency = "USD", Strike = 200.0, Symbols = new List<string> { "AAPL" } }
};
ContractsResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields

TypeSDK contract
Dictionary<string, List<ContractItem>>Dynamic dictionary; its actual key/value combinations are not fixed. See Contract Data fields for all ContractItem fields.

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.


Did this page help you?