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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Auto-filled if empty | If empty, TradeClient injects TigerConfig.DefaultAccount; validation fails if it remains empty |
SecretKey | string | secret_key | null | no | — |
SecType | string | sec_type | TigerOpenAPI.Common.Enum.SecType.STK.ToString() | Optional | — |
Currency | string | currency | null | Optional | — |
Right | string | right | null | Optional | — |
Strike | Double | strike | CLR default; omitted during serialization | Optional | — |
Expiry | string | expiry | null | Optional | — |
Exchange | string | exchange | null | Optional | — |
Symbol | string | symbol | null | Required | — |
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 absentData fields
| Field | API field | C# type | Description |
|---|---|---|---|
ContractId | contractId | Int32 | Contract ID. |
Identifier | identifier | string | Contract identifier. |
Symbol | symbol | string | Trading symbol. |
SecType | secType | string | Security type. |
Expiry | expiry | string | Expiration date. |
ContractMonth | contractMonth | string | Contract month. |
Strike | strike | Double | Strike price. |
Right | right | string | Option right. |
Multiplier | multiplier | Double | Contract multiplier. |
LotSize | lotSize | Double | Trading lot size. |
Exchange | exchange | string | Exchange code. |
Market | market | string | Market identifier. |
PrimaryExchange | primaryExchange | string | Primary listing exchange. |
Currency | currency | string | Trading currency. |
LocalSymbol | localSymbol | string | Exchange-local symbol. |
TradingClass | tradingClass | string | Trading class. |
Name | name | string | Contract name. |
Tradeable | tradeable | Boolean | Whether trading is allowed. |
CloseOnly | closeOnly | Boolean | Whether only closing trades are allowed. |
MinTick | minTick | Double | Minimum price increment. |
Marginable | marginable | Boolean | Whether the contract is marginable. |
ShortInitialMargin | shortInitialMargin | Double | Initial margin for short positions. |
ShortMaintenanceMargin | shortMaintenanceMargin | Double | Maintenance margin for short positions. |
ShortFeeRate | shortFeeRate | Double | Short-selling fee rate. |
Shortable | shortable | Boolean | Whether the contract can be shorted. |
ShortableCount | shortableCount | long | Available shortable quantity. |
LongInitialMargin | longInitialMargin | Double | Initial margin for long positions. |
LongMaintenanceMargin | longMaintenanceMargin | Double | Maintenance margin for long positions. |
LastTradingDate | lastTradingDate | string | Last trading date. |
FirstNoticeDate | firstNoticeDate | string | First notice date. |
LastBiddingCloseTime | lastBiddingCloseTime | long | Last bidding close timestamp. |
Continuous | continuous | Boolean | Whether this is a continuous contract. |
Type | type | string | Contract type. |
IbCode | ibCode | string | IB contract code. |
TickSizes | tickSizes | List<TickSizeItem> | Tick-size rules. |
DiscountedDayInitialMargin | discountedDayInitialMargin | Double | Discounted daytime initial margin. |
DiscountedDayMaintenanceMargin | discountedDayMaintenanceMargin | Double | Discounted daytime maintenance margin. |
DiscountedTimeZoneCode | discountedTimeZoneCode | string | Time zone for discounted-margin hours. |
DiscountedStartAt | discountedStartAt | string | Discounted-margin period start. |
DiscountedEndAt | discountedEndAt | string | Discounted-margin period end. |
IsEtf | isEtf | Boolean | Whether the contract is an ETF. |
EtfLeverage | etfLeverage | Int32 | ETF leverage factor. |
Each TickSizes item is a TickSizeItem:
| Field | API field | C# type | Description |
|---|---|---|---|
Begin | begin | string | Start of the price range. |
End | end | string | End of the price range. |
Type | type | TickSizeType | Tick-size rule type. |
TickSize | tickSize | double | Minimum 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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | Auto-filled if empty | If empty, TradeClient injects TigerConfig.DefaultAccount; validation fails if it remains empty |
SecretKey | string | secret_key | null | no | — |
SecType | string | sec_type | TigerOpenAPI.Common.Enum.SecType.STK.ToString() | Optional | — |
Currency | string | currency | null | Optional | — |
Right | string | right | null | Optional | — |
Strike | Double | strike | CLR default; omitted during serialization | Optional | — |
Expiry | string | expiry | null | Optional | — |
Exchange | string | exchange | null | Optional | — |
Symbols | list of string | symbols | null | Required | Non-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 absentData fields
| Type | SDK 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
Updated 23 days ago
