Accounts and Positions

State-changing operations must prevent duplicate submission.

Get Accounts

Operation

TradeApiService.ACCOUNTS = accounts. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<AccountsResponse>

ModelValue: ApiModel.

Parameters

SDK propertyC# typeAPI fieldSDK defaultRequiredConstraints
LangLanguagelangCLR default; omitted during serializationno
Accountstring (nullable)accountnullnoACCOUNTS is exempt from default-account injection and account-required validation

Return

AccountsResponse inherits TigerResponse; its Data is Dictionary<string, List<AccountItem>>.

Example

TigerRequest<AccountsResponse> request = new()
{
    ApiMethodName = TradeApiService.ACCOUNTS,
    ModelValue = new ApiModel()
};
AccountsResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields

Data shapeSDK contract
Dictionary<string, List<AccountItem>>Keys are server-defined; each value is a List<AccountItem>.
AccountItem fieldAPI fieldC# typeDescription
AccountaccountstringAccount identifier.
CapabilitycapabilitystringAccount trading capability.
AccountTypeaccountTypestringAccount type.
StatusstatusstringAccount status.

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": {
    "accounts": [
      {
        "account": "DU12345678",
        "capability": "RegTMargin",
        "status": "Active"
      }
    ]
  }
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Assets (Global)

Operation

TradeApiService.ASSETS = assets. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<TigerDictResponse>

ModelValue: GlobalAssetsModel.

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
SegmentBooleansegmentCLR default; omitted during serializationOptional
MarketValueBooleanmarket_valueCLR default; omitted during serializationOptional

Return

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

Example

TigerRequest<TigerDictResponse> request = new()
{
    ApiMethodName = TradeApiService.ASSETS,
    ModelValue = new GlobalAssetsModel { Account = tradeClient.GetDefaultAccount }
};
TigerDictResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields

TypeSDK contract
Dictionary<string, object>Dynamic dictionary; the SDK defines no fixed keys or nested object types.

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "account": "DU12345678",
      "summary": {
        "netLiquidation": 125000.0,
        "totalCashValue": 50000.0,
        "grossPositionValue": 75000.0,
        "initMarginReq": 25000.0,
        "maintMarginReq": 20000.0,
        "buyingPower": 100000.0,
        "unrealizedPnl": 15866.0,
        "realizedPnl": 3200.0
      }
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Prime Assets

Operation

TradeApiService.PRIME_ASSETS = prime_assets. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<PrimeAssetResponse>

ModelValue: PrimeAssetsModel.

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
BaseCurrencystringbase_currencynullOptional
ConsolidatedBooleanconsolidatedCLR default; omitted during serializationOptional

Return

PrimeAssetResponse inherits TigerResponse; its Data is PrimeAssetItem.

Example

TigerRequest<PrimeAssetResponse> request = new()
{
    ApiMethodName = TradeApiService.PRIME_ASSETS,
    ModelValue = new PrimeAssetsModel { Account = tradeClient.GetDefaultAccount }
};
PrimeAssetResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields (PrimeAssetItem)

FieldAPI fieldC# typeDescription
AccountaccountIdstringAccount identifier.
UpdateTimestampupdateTimestamplongAsset update timestamp.
SegmentssegmentsList<Segment>Asset summaries by segment.

Each Segment:

FieldAPI fieldC# typeDescription
CapabilitycapabilitystringSegment trading capability.
CategorycategorystringSegment category.
CurrencycurrencystringAsset currency.
CashBalancecashBalanceDoubleCash balance.
CashAvailableForTradecashAvailableForTradeDoubleCash available for trading.
CashAvailableForWithdrawalcashAvailableForWithdrawalDoubleCash available for withdrawal.
GrossPositionValuegrossPositionValueDoubleGross market value of positions.
EquityWithLoanequityWithLoanDoubleEquity including loan value.
NetLiquidationnetLiquidationDoubleNet liquidation value.
InitMargininitMarginDoubleInitial margin requirement.
MaintainMarginmaintainMarginDoubleMaintenance margin requirement.
OvernightMarginovernightMarginDoubleOvernight margin requirement.
UnrealizedPLunrealizedPLDoubleUnrealized profit or loss.
RealizedPLrealizedPLDoubleRealized profit or loss.
ExcessLiquidationexcessLiquidationDoubleExcess liquidation value.
OvernightLiquidationovernightLiquidationDoubleOvernight liquidation value.
BuyingPowerbuyingPowerDoubleAvailable buying power.
LeverageleverageDoubleAccount leverage.
UnrealizedPLByCostOfCarryunrealizedPLByCostOfCarryDoubleUnrealized P&L by cost of carry.
TotalTodayPLtotalTodayPLDoubleTotal profit or loss for today.
LockedFundslockedFundsDoubleLocked excess equity.
UncollecteduncollectedDoubleAssets in transit.
CurrencyAssetscurrencyAssetsList<CurrencyAssets>Assets by currency.
ConsolidatedSegTypesconsolidatedSegTypesList<string>Consolidated segment types.

Each CurrencyAssets:

FieldAPI fieldC# typeDescription
CurrencycurrencystringAsset currency.
CashBalancecashBalanceDoubleCash balance.
CashAvailableForTradecashAvailableForTradeDoubleCash available for trading.
GrossPositionValuegrossPositionValueDoubleGross market value of positions.
StockMarketValuestockMarketValueDoubleMarket value of stock positions.
OptionMarketValueoptionMarketValueDoubleMarket value of option positions.
FuturesMarketValuefuturesMarketValueDoubleMarket value of futures positions.
UnrealizedPLunrealizedPLDoubleUnrealized profit or loss.
RealizedPLrealizedPLDoubleRealized profit or loss.

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "account": "DU12345678",
      "segments": [
        {"category": "S", "currency": "USD", "cashBalance": 50000.0, "grossPositionValue": 75000.0, "netLiquidation": 125000.0}
      ]
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Analytics Asset

Operation

TradeApiService.ANALYTICS_ASSET = analytics_asset. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<PrimeAnalyticsAssetResponse>

ModelValue: PrimeAnalyticsAssetModel.

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
SegTypeSegmentTypeseg_typeCLR default; omitted during serializationOptional
CurrencyCurrencycurrencyCLR default; omitted during serializationOptional
SubAccountstringsub_accountnullOptional
StartDatestringstart_datenullOptionalTimestamp or date format; maintain chronological order
EndDatestringend_datenullOptionalTimestamp or date format; maintain chronological order

Return

PrimeAnalyticsAssetResponse inherits TigerResponse; its Data is PrimeAnalyticsAssetItem.

Example

TigerRequest<PrimeAnalyticsAssetResponse> request = new()
{
    ApiMethodName = TradeApiService.ANALYTICS_ASSET,
    ModelValue = new PrimeAnalyticsAssetModel { Account = tradeClient.GetDefaultAccount, SegType = SegmentType.SEC, Currency = Currency.USD, StartDate = "2026-01-01", EndDate = "2026-01-31" }
};
PrimeAnalyticsAssetResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields (PrimeAnalyticsAssetItem)

FieldAPI fieldC# typeDescription
SummarysummarySummaryPerformance summary.
HistoryhistoryList<HistoryItem>Historical asset records.

Summary:

FieldAPI fieldC# typeDescription
PnlpnlDoubleProfit or loss.
PnlPercentagepnlPercentageDoubleProfit or loss percentage.
AnnualizedReturnannualizedReturnDoubleAnnualized return.
OverUserPercentageoverUserPercentageDoublePercentage relative to the user.
HistoryItem fieldAPI fieldC# typeDescription
DatedatelongRecord date or timestamp.
AssetassetDoubleAsset value.
PnlpnlDoubleProfit or loss.
PnlPercentagepnlPercentageDoubleProfit or loss percentage.
CashBalancecashBalanceDoubleCash balance.
GrossPositionValuegrossPositionValueDoubleGross market value of positions.
DepositdepositDoubleDeposited amount.
WithdrawalwithdrawalDoubleWithdrawn amount.

Related APIs

See Requests, responses, and operations.

Get Aggregate Assets

Operation

TradeApiService.AGGREGATE_ASSETS = aggregate_assets. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<AggregateAssetResponse>

ModelValue: AggregateAssetModel.

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
SegTypestringseg_typenullOptional
BaseCurrencystringbase_currencynullOptional

Return

AggregateAssetResponse inherits TigerResponse; its Data is AggregateAssetItem.

Example

TigerRequest<AggregateAssetResponse> request = new()
{
    ApiMethodName = TradeApiService.AGGREGATE_ASSETS,
    ModelValue = new AggregateAssetModel { Account = tradeClient.GetDefaultAccount, SegType = "SEC" }
};
AggregateAssetResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields (AggregateAssetItem)

FieldAPI fieldC# typeDescription
CurrencycurrencystringAsset currency.
CashBalancecashBalancedoubleCash balance.
CashBalanceWithInTransitcashBalanceWithInTransitdoubleCash balance including funds in transit.
EquityWithLoanequityWithLoandoubleEquity including loan value.
NetLiquidationnetLiquidationdoubleNet liquidation value.
InitMargininitMargindoubleInitial margin requirement.
MaintainMarginmaintainMargindoubleMaintenance margin requirement.
TradeCurrencyMargintradeCurrencyMargindoubleMargin in the trading currency.
IntradayRiskRatiointradayRiskRatiodoubleIntraday risk ratio.
GrossPositionValuegrossPositionValuedoubleGross market value of positions.
OptionMarketValueoptionMarketValuedoubleMarket value of option positions.
StockMarketValuestockMarketValuedoubleMarket value of stock positions.
CashAvailableForTradecashAvailableForTradedoubleCash available for trading.
AvailableCashavailableCashdoubleAvailable cash.
LockedFundslockedFundsdoubleLocked funds.
LockedCashlockedCashdoubleLocked cash.
CreditLimitcreditLimitdoubleCredit limit.
ExcessEquityexcessEquitydoubleExcess equity.
ExcessLiquidityexcessLiquiditydoubleExcess liquidity.

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Get Positions

Operation

TradeApiService.POSITIONS = positions. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<PositionsResponse>

ModelValue: PositionsModel.

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
SecTypeSecTypesec_typeCLR default; omitted during serializationOptional
MarketMarketmarketCLR default; omitted during serializationOptionalEnum value
CurrencyCurrencycurrencyCLR default; omitted during serializationOptional
SymbolstringsymbolnullRequired
RightstringrightnullOptional
StrikeDoublestrikeCLR default; omitted during serializationOptional
ExpirystringexpirynullOptional
AssetQuoteTypeAssetQuoteTypeasset_quote_typeCLR default; omitted during serializationOptional

Return

PositionsResponse inherits TigerResponse; its Data is PositionsItem.

Example

TigerRequest<PositionsResponse> request = new()
{
    ApiMethodName = TradeApiService.POSITIONS,
    ModelValue = new PositionsModel { Account = tradeClient.GetDefaultAccount, SecType = SecType.STK, Market = Market.US, Currency = Currency.USD, Symbol = "AAPL" }
};
PositionsResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields (PositionsItem)

FieldAPI fieldC# typeDescription
ItemsitemsList<PositionDetail>Position records.

Each PositionDetail:

FieldAPI fieldC# typeDescription
AccountaccountstringAccount identifier.
PositionQtypositionQtyDoublePosition quantity.
SalableQtysalableQtyDoubleQuantity available to sell.
PositionpositionlongPosition quantity as an integer.
positionScalepositionScaleintDecimal scale for Position.
AverageCostaverageCostDoubleAverage position cost.
AverageCostByAverageaverageCostByAverageDoubleAverage cost using the average-cost basis.
AverageCostOfCarryaverageCostOfCarryDoubleAverage cost of carry.
MarketValuemarketValueDoubleCurrent market value.
LatestPricelatestPriceDoubleLatest price.
IsLevel0PriceisLevel0PriceBooleanWhether the latest price is level-0 data.
RealizedPnlrealizedPnlDoubleRealized profit or loss.
RealizedPnlByAveragerealizedPnlByAverageDoubleRealized P&L using the average-cost basis.
UnrealizedPnlunrealizedPnlDoubleUnrealized profit or loss.
UnrealizedPnlByAverageunrealizedPnlByAverageDoubleUnrealized P&L using the average-cost basis.
UnrealizedPnlPercentunrealizedPnlPercentDoubleUnrealized profit or loss percentage.
UnrealizedPnlPercentByAverageunrealizedPnlPercentByAverageDoubleUnrealized P&L percentage using the average-cost basis.
UnrealizedPnlByCostOfCarryunrealizedPnlByCostOfCarryDoubleUnrealized P&L by cost of carry.
UnrealizedPnlPercentByCostOfCarryunrealizedPnlPercentByCostOfCarryDoubleUnrealized P&L percentage by cost of carry.
SecTypesecTypestringSecurity type.
MarketmarketstringMarket.
CurrencycurrencystringTrading currency.
IdentifieridentifierstringContract identifier.
SymbolsymbolstringContract symbol.
ExpiryexpirystringContract expiry date.
StrikestrikeDoubleOption strike price.
RightrightstringOption right.
MultipliermultiplierDoubleContract multiplier.
UpdateTimestampupdateTimestamplongPosition update timestamp.
MmPercentmmPercentDoubleMaintenance margin percentage.
MmValuemmValueDoubleMaintenance margin value.
TodayPnltodayPnlDoubleToday's profit or loss.
TodayPnlPercenttodayPnlPercentDoubleToday's profit or loss percentage.
YesterdayPnlyesterdayPnlDoubleYesterday's profit or loss.
LastClosePricelastClosePriceDoublePrevious trading day's close price.
CategoriescategoriesList<string>Contract categories.

positionScale is the SDK's exact lowercase property name; the response JSON field for SalableQty is salableQty.

Response Example

{
  "code": 0,
  "message": "success",
  "timestamp": 1785528000000,
  "data": [
    {
      "account": "DU12345678",
      "symbol": "AAPL",
      "position": 100,
      "averageCost": 150.25,
      "latestPrice": 308.91,
      "marketValue": 30891.0,
      "unrealizedPnl": 15866.0,
      "secType": "STK",
      "currency": "USD"
    }
  ]
}

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.

Estimate Tradable Quantity

Operation

TradeApiService.ESTIMATE_TRADABLE_QUANTITY = estimate_tradable_quantity. Use this constant for TigerRequest.ApiMethodName.

Request

TigerRequest<EstimateTradableQuantityResponse>

ModelValue: EstimateTradableQuantityModel.

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
SymbolstringsymbolnullRequired
Rightstring (nullable)rightnullOptional
Strikestring (nullable)strikenullOptional
Expirystring (nullable)expirynullOptional
SegTypeSegmentTypeseg_typeCLR default; omitted during serializationOptional
SecTypeSecTypesec_typeCLR default; omitted during serializationOptional
ActionActionTypeactionCLR default; omitted during serializationOptional
OrderTypeOrderTypeorder_typeCLR default; omitted during serializationOptionalprice fields are conditionally required by order type
LimitPriceDoublelimit_priceCLR default; omitted during serializationOptionalconditional order-price field
StopPriceDoublestop_priceCLR default; omitted during serializationOptional

Return

EstimateTradableQuantityResponse inherits TigerResponse; its Data is TradableQuantityItem.

Example

TigerRequest<EstimateTradableQuantityResponse> request = new()
{
    ApiMethodName = TradeApiService.ESTIMATE_TRADABLE_QUANTITY,
    ModelValue = new EstimateTradableQuantityModel { Account = tradeClient.GetDefaultAccount, Symbol = "AAPL", Strike = "200", SegType = SegmentType.SEC, SecType = SecType.STK }
};
EstimateTradableQuantityResponse? response = await tradeClient.ExecuteAsync(request);

Response type

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

Data fields (TradableQuantityItem)

FieldAPI fieldC# typeDescription
TradableQuantitytradableQuantityDoubleTradable quantity for cash.
FinancingQuantityfinancingQuantityDoubleTradable quantity for margin.
PositionQuantitypositionQuantityDoublePosition quantity.
TradablePositionQuantitytradablePositionQuantityDoubleTradable quantity from the position.

Rate limit

Base tier: 60 requests per minute.

Related APIs

See Requests, responses, and operations.


Did this page help you?