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 property | C# type | API field | SDK default | Required | Constraints |
|---|---|---|---|---|---|
Lang | Language | lang | CLR default; omitted during serialization | no | — |
Account | string (nullable) | account | null | no | ACCOUNTS 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 absentData fields
Data shape | SDK contract |
|---|---|
Dictionary<string, List<AccountItem>> | Keys are server-defined; each value is a List<AccountItem>. |
AccountItem field | API field | C# type | Description |
|---|---|---|---|
Account | account | string | Account identifier. |
Capability | capability | string | Account trading capability. |
AccountType | accountType | string | Account type. |
Status | status | string | Account 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 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 | — |
Segment | Boolean | segment | CLR default; omitted during serialization | Optional | — |
MarketValue | Boolean | market_value | CLR default; omitted during serialization | Optional | — |
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 absentData fields
| Type | SDK 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 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 | — |
BaseCurrency | string | base_currency | null | Optional | — |
Consolidated | Boolean | consolidated | CLR default; omitted during serialization | Optional | — |
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 absentData fields (PrimeAssetItem)
| Field | API field | C# type | Description |
|---|---|---|---|
Account | accountId | string | Account identifier. |
UpdateTimestamp | updateTimestamp | long | Asset update timestamp. |
Segments | segments | List<Segment> | Asset summaries by segment. |
Each Segment:
| Field | API field | C# type | Description |
|---|---|---|---|
Capability | capability | string | Segment trading capability. |
Category | category | string | Segment category. |
Currency | currency | string | Asset currency. |
CashBalance | cashBalance | Double | Cash balance. |
CashAvailableForTrade | cashAvailableForTrade | Double | Cash available for trading. |
CashAvailableForWithdrawal | cashAvailableForWithdrawal | Double | Cash available for withdrawal. |
GrossPositionValue | grossPositionValue | Double | Gross market value of positions. |
EquityWithLoan | equityWithLoan | Double | Equity including loan value. |
NetLiquidation | netLiquidation | Double | Net liquidation value. |
InitMargin | initMargin | Double | Initial margin requirement. |
MaintainMargin | maintainMargin | Double | Maintenance margin requirement. |
OvernightMargin | overnightMargin | Double | Overnight margin requirement. |
UnrealizedPL | unrealizedPL | Double | Unrealized profit or loss. |
RealizedPL | realizedPL | Double | Realized profit or loss. |
ExcessLiquidation | excessLiquidation | Double | Excess liquidation value. |
OvernightLiquidation | overnightLiquidation | Double | Overnight liquidation value. |
BuyingPower | buyingPower | Double | Available buying power. |
Leverage | leverage | Double | Account leverage. |
UnrealizedPLByCostOfCarry | unrealizedPLByCostOfCarry | Double | Unrealized P&L by cost of carry. |
TotalTodayPL | totalTodayPL | Double | Total profit or loss for today. |
LockedFunds | lockedFunds | Double | Locked excess equity. |
Uncollected | uncollected | Double | Assets in transit. |
CurrencyAssets | currencyAssets | List<CurrencyAssets> | Assets by currency. |
ConsolidatedSegTypes | consolidatedSegTypes | List<string> | Consolidated segment types. |
Each CurrencyAssets:
| Field | API field | C# type | Description |
|---|---|---|---|
Currency | currency | string | Asset currency. |
CashBalance | cashBalance | Double | Cash balance. |
CashAvailableForTrade | cashAvailableForTrade | Double | Cash available for trading. |
GrossPositionValue | grossPositionValue | Double | Gross market value of positions. |
StockMarketValue | stockMarketValue | Double | Market value of stock positions. |
OptionMarketValue | optionMarketValue | Double | Market value of option positions. |
FuturesMarketValue | futuresMarketValue | Double | Market value of futures positions. |
UnrealizedPL | unrealizedPL | Double | Unrealized profit or loss. |
RealizedPL | realizedPL | Double | Realized 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 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 | — |
SegType | SegmentType | seg_type | CLR default; omitted during serialization | Optional | — |
Currency | Currency | currency | CLR default; omitted during serialization | Optional | — |
SubAccount | string | sub_account | null | Optional | — |
StartDate | string | start_date | null | Optional | Timestamp or date format; maintain chronological order |
EndDate | string | end_date | null | Optional | Timestamp 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 absentData fields (PrimeAnalyticsAssetItem)
| Field | API field | C# type | Description |
|---|---|---|---|
Summary | summary | Summary | Performance summary. |
History | history | List<HistoryItem> | Historical asset records. |
Summary:
| Field | API field | C# type | Description |
|---|---|---|---|
Pnl | pnl | Double | Profit or loss. |
PnlPercentage | pnlPercentage | Double | Profit or loss percentage. |
AnnualizedReturn | annualizedReturn | Double | Annualized return. |
OverUserPercentage | overUserPercentage | Double | Percentage relative to the user. |
HistoryItem field | API field | C# type | Description |
|---|---|---|---|
Date | date | long | Record date or timestamp. |
Asset | asset | Double | Asset value. |
Pnl | pnl | Double | Profit or loss. |
PnlPercentage | pnlPercentage | Double | Profit or loss percentage. |
CashBalance | cashBalance | Double | Cash balance. |
GrossPositionValue | grossPositionValue | Double | Gross market value of positions. |
Deposit | deposit | Double | Deposited amount. |
Withdrawal | withdrawal | Double | Withdrawn 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 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 | — |
SegType | string | seg_type | null | Optional | — |
BaseCurrency | string | base_currency | null | Optional | — |
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 absentData fields (AggregateAssetItem)
| Field | API field | C# type | Description |
|---|---|---|---|
Currency | currency | string | Asset currency. |
CashBalance | cashBalance | double | Cash balance. |
CashBalanceWithInTransit | cashBalanceWithInTransit | double | Cash balance including funds in transit. |
EquityWithLoan | equityWithLoan | double | Equity including loan value. |
NetLiquidation | netLiquidation | double | Net liquidation value. |
InitMargin | initMargin | double | Initial margin requirement. |
MaintainMargin | maintainMargin | double | Maintenance margin requirement. |
TradeCurrencyMargin | tradeCurrencyMargin | double | Margin in the trading currency. |
IntradayRiskRatio | intradayRiskRatio | double | Intraday risk ratio. |
GrossPositionValue | grossPositionValue | double | Gross market value of positions. |
OptionMarketValue | optionMarketValue | double | Market value of option positions. |
StockMarketValue | stockMarketValue | double | Market value of stock positions. |
CashAvailableForTrade | cashAvailableForTrade | double | Cash available for trading. |
AvailableCash | availableCash | double | Available cash. |
LockedFunds | lockedFunds | double | Locked funds. |
LockedCash | lockedCash | double | Locked cash. |
CreditLimit | creditLimit | double | Credit limit. |
ExcessEquity | excessEquity | double | Excess equity. |
ExcessLiquidity | excessLiquidity | double | Excess 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 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 | SecType | sec_type | CLR default; omitted during serialization | Optional | — |
Market | Market | market | CLR default; omitted during serialization | Optional | Enum value |
Currency | Currency | currency | CLR default; omitted during serialization | Optional | — |
Symbol | string | symbol | null | Required | — |
Right | string | right | null | Optional | — |
Strike | Double | strike | CLR default; omitted during serialization | Optional | — |
Expiry | string | expiry | null | Optional | — |
AssetQuoteType | AssetQuoteType | asset_quote_type | CLR default; omitted during serialization | Optional | — |
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 absentData fields (PositionsItem)
| Field | API field | C# type | Description |
|---|---|---|---|
Items | items | List<PositionDetail> | Position records. |
Each PositionDetail:
| Field | API field | C# type | Description |
|---|---|---|---|
Account | account | string | Account identifier. |
PositionQty | positionQty | Double | Position quantity. |
SalableQty | salableQty | Double | Quantity available to sell. |
Position | position | long | Position quantity as an integer. |
positionScale | positionScale | int | Decimal scale for Position. |
AverageCost | averageCost | Double | Average position cost. |
AverageCostByAverage | averageCostByAverage | Double | Average cost using the average-cost basis. |
AverageCostOfCarry | averageCostOfCarry | Double | Average cost of carry. |
MarketValue | marketValue | Double | Current market value. |
LatestPrice | latestPrice | Double | Latest price. |
IsLevel0Price | isLevel0Price | Boolean | Whether the latest price is level-0 data. |
RealizedPnl | realizedPnl | Double | Realized profit or loss. |
RealizedPnlByAverage | realizedPnlByAverage | Double | Realized P&L using the average-cost basis. |
UnrealizedPnl | unrealizedPnl | Double | Unrealized profit or loss. |
UnrealizedPnlByAverage | unrealizedPnlByAverage | Double | Unrealized P&L using the average-cost basis. |
UnrealizedPnlPercent | unrealizedPnlPercent | Double | Unrealized profit or loss percentage. |
UnrealizedPnlPercentByAverage | unrealizedPnlPercentByAverage | Double | Unrealized P&L percentage using the average-cost basis. |
UnrealizedPnlByCostOfCarry | unrealizedPnlByCostOfCarry | Double | Unrealized P&L by cost of carry. |
UnrealizedPnlPercentByCostOfCarry | unrealizedPnlPercentByCostOfCarry | Double | Unrealized P&L percentage by cost of carry. |
SecType | secType | string | Security type. |
Market | market | string | Market. |
Currency | currency | string | Trading currency. |
Identifier | identifier | string | Contract identifier. |
Symbol | symbol | string | Contract symbol. |
Expiry | expiry | string | Contract expiry date. |
Strike | strike | Double | Option strike price. |
Right | right | string | Option right. |
Multiplier | multiplier | Double | Contract multiplier. |
UpdateTimestamp | updateTimestamp | long | Position update timestamp. |
MmPercent | mmPercent | Double | Maintenance margin percentage. |
MmValue | mmValue | Double | Maintenance margin value. |
TodayPnl | todayPnl | Double | Today's profit or loss. |
TodayPnlPercent | todayPnlPercent | Double | Today's profit or loss percentage. |
YesterdayPnl | yesterdayPnl | Double | Yesterday's profit or loss. |
LastClosePrice | lastClosePrice | Double | Previous trading day's close price. |
Categories | categories | List<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 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 | — |
Symbol | string | symbol | null | Required | — |
Right | string (nullable) | right | null | Optional | — |
Strike | string (nullable) | strike | null | Optional | — |
Expiry | string (nullable) | expiry | null | Optional | — |
SegType | SegmentType | seg_type | CLR default; omitted during serialization | Optional | — |
SecType | SecType | sec_type | CLR default; omitted during serialization | Optional | — |
Action | ActionType | action | CLR default; omitted during serialization | Optional | — |
OrderType | OrderType | order_type | CLR default; omitted during serialization | Optional | price fields are conditionally required by order type |
LimitPrice | Double | limit_price | CLR default; omitted during serialization | Optional | conditional order-price field |
StopPrice | Double | stop_price | CLR default; omitted during serialization | Optional | — |
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 absentData fields (TradableQuantityItem)
| Field | API field | C# type | Description |
|---|---|---|---|
TradableQuantity | tradableQuantity | Double | Tradable quantity for cash. |
FinancingQuantity | financingQuantity | Double | Tradable quantity for margin. |
PositionQuantity | positionQuantity | Double | Position quantity. |
TradablePositionQuantity | tradablePositionQuantity | Double | Tradable quantity from the position. |
Rate limit
Base tier: 60 requests per minute.
Related APIs
Updated 23 days ago
