Accounts and Positions
get_managed_accounts
get_managed_accountsSignature
pub async fn get_managed_accounts( &self, req: ManagedAccountsRequest, ) -> Result<Vec<ManagedAccount>, TigerError>
Description
Institutional master account.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Vec<ManagedAccount>, TigerError>. account: String, account_type: String, capability: String, status: String.
account/type/capability/status.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_managed_accounts(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_managed_accounts(ManagedAccountsRequest { ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"account": "402901",
"account_type": "GLOBAL",
"capability": "RegTMargin",
"status": "TRADING"
}
]get_assets
get_assetsSignature
pub async fn get_assets(&self, req: AssetsRequest) -> Result<Vec<Asset>, TigerError>
Description
Account injected; segment and market value omitted by default.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.sub_accounts | Option<Vec<String>> | Optional | None (omitted) |
| req.segment | Option<bool> | Optional | None (omitted) |
| req.market_value | Option<bool> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Vec<Asset>, TigerError>. account: String, capability: String, currency: String, buying_power: f64, cash_value: f64, net_liquidation: f64, realized_pnl: f64, unrealized_pnl: f64, segments: Vec
capability/currency/buying power/cash/net liquidation/P&L/segments.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_assets(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_assets(AssetsRequest { ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"account": "402901",
"capability": "RegTMargin",
"currency": "USD",
"buying_power": 150000.0,
"cash_value": 85000.0,
"net_liquidation": 250000.0,
"realized_pnl": 3200.5,
"unrealized_pnl": 1850.75
}
]get_prime_assets
get_prime_assetsSignature
pub async fn get_prime_assets( &self, req: AssetsRequest, ) -> Result<Option<PrimeAsset>, TigerError>
Description
Prime accounts; same request.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.sub_accounts | Option<Vec<String>> | Optional | None (omitted) |
| req.segment | Option<bool> | Optional | None (omitted) |
| req.market_value | Option<bool> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Option<PrimeAsset>, TigerError>. account_id: String, update_timestamp: i64, segments: Vec
account/timestamp/segments with margin, buying power, currencies.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_prime_assets(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_prime_assets(AssetsRequest { ..Default::default() }).await?;
Ok(())
}
Response example
{
"account_id": "402901",
"update_timestamp": 1738180800000,
"segments": [
{
"category": "S",
"currency": "USD",
"buying_power": 150000.0,
"cash": 85000.0,
"gross_position_value": 165000.0
}
]
}get_aggregate_assets
get_aggregate_assetsSignature
pub async fn get_aggregate_assets( &self, req: AggregateAssetsRequest, ) -> Result<Option<AggregateAssets>, TigerError>
Description
Base currency/segment optional; supported aggregate/institutional accounts only.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.base_currency | Option<String> | Optional | None (omitted) |
| req.seg_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Option<AggregateAssets>, TigerError>. account_id: String, net_liquidation: f64, gross_position_value: f64, cash_balance: f64, base_currency: String, currency_assets: Vec
account/net liquidation/position/cash/base/currency assets.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_aggregate_assets(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_aggregate_assets(AggregateAssetsRequest { ..Default::default() }).await?;
Ok(())
}
Response example
{
"account_id": "402901",
"net_liquidation": 250000.0,
"gross_position_value": 165000.0,
"cash_balance": 85000.0,
"base_currency": "USD",
"currency_assets": [
{
"currency": "USD",
"cash_balance": 85000.0,
"net_liquidation": 250000.0
}
]
}get_analytics_asset
get_analytics_assetSignature
pub async fn get_analytics_asset( &self, req: AnalyticsAssetRequest, ) -> Result<Vec<AnalyticsAsset>, TigerError>
Description
Dates are YYYY-MM-DD; segment optional.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.seg_type | Option<String> | Optional | None (omitted) |
| req.start_date | Option<String> | Optional | None (omitted) |
| req.end_date | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Vec<AnalyticsAsset>, TigerError>. date: String, holding_value: f64, cash_balance: f64, pnl: f64, pnl_rate: f64, net_value_index: f64, currency: String, seg_type: String.
date/holding/cash/P&L/rate/index/currency/segment.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_analytics_asset(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_analytics_asset(AnalyticsAssetRequest { ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"date": "2025-01-29",
"holding_value": 165000.0,
"cash_balance": 85000.0,
"pnl": 2350.8,
"pnl_rate": 0.0142,
"net_value_index": 1.0142,
"currency": "USD",
"seg_type": "SEC"
}
]get_positions
get_positionsSignature
pub async fn get_positions(&self, req: PositionsRequest) -> Result<Vec<Position>, TigerError>
Description
Account injected; filter by type/currency/market/symbol/subaccounts/option attributes.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.currency | Option<String> | Optional | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.symbol | Option<String> | Optional | None (omitted) |
| req.sub_accounts | Option<Vec<String>> | Optional | None (omitted) |
| req.expiry | Option<String> | Optional | None (omitted) |
| req.strike | Option<String> | Optional | None (omitted) |
| req.right | Option<String> | Optional | None (omitted) |
| req.asset_quote_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Vec<Position>, TigerError>. account: Option
Account, contract, quantity, cost, value, P&L, identifier, latest price.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_positions(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_positions(PositionsRequest { ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"account": "402901",
"symbol": "AAPL",
"sec_type": "STK",
"market": "US",
"currency": "USD",
"position": 100,
"average_cost": 178.35,
"market_value": 19550.0
}
]get_estimate_tradable_quantity
get_estimate_tradable_quantitySignature
pub async fn get_estimate_tradable_quantity( &self, req: EstimateTradableQuantityRequest, ) -> Result<Option<EstimateTradableQuantity>, TigerError>
Description
Symbol/type/action required; limit price conditional; derivative fields conditional.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.symbol | Option<String> | Required by server; SDK does not pre-validate | None (omitted) |
| req.sec_type | Option<String> | Required by server; SDK does not pre-validate | None (omitted) |
| req.action | Option<String> | Required by server; SDK does not pre-validate | None (omitted) |
| req.order_type | Option<String> | Optional | None (omitted) |
| req.limit_price | Option<f64> | Optional | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.currency | Option<String> | Optional | None (omitted) |
| req.expiry | Option<String> | Optional | None (omitted) |
| req.strike | Option<String> | Optional | None (omitted) |
| req.right | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Option<EstimateTradableQuantity>, TigerError>. tradable_quantity: f64, max_cash_buy_quantity: f64, max_margin_buy_quantity: f64, max_short_sell_quantity: f64, max_position_sell_quantity: f64, cash_buying_power: f64, currency: String.
Tradable, cash/margin buy, short, position sell quantities, buying power.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_estimate_tradable_quantity(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_estimate_tradable_quantity(EstimateTradableQuantityRequest { symbol: Some("AAPL".into()), sec_type: Some("STK".into()), action: Some("BUY".into()), ..Default::default() }).await?;
Ok(())
}
Response example
{
"tradable_quantity": 500,
"max_cash_buy_quantity": 430,
"max_margin_buy_quantity": 760,
"max_short_sell_quantity": 300,
"max_position_sell_quantity": 100,
"cash_buying_power": 85000.0,
"currency": "USD"
}get_derivative_contracts
get_derivative_contractsSignature
pub async fn get_derivative_contracts( &self, req: DerivativeContractsRequest, ) -> Result<Vec<Contract>, TigerError>
Description
Symbols/type required; expiry optional.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.account | Option<String> | Optional; most TradeClient methods inject the default account when None | None (omitted) |
| req.symbols | Option<Vec<String>> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.expiry | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
TradeClient:Result<Vec<Contract>, TigerError>. contract_id: Option, symbol: String, sec_type: String, currency: Option
Derivative contracts.
Example
use std::sync::Arc;
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::error::TigerError;
use tigeropen::model::order::*;
use tigeropen::model::quote::*;
use tigeropen::model::quote_requests::*;
use tigeropen::model::trade_requests::*;
use tigeropen::push::*;
use tigeropen::quote::QuoteClient;
use tigeropen::trade::TradeClient;
async fn example_get_derivative_contracts(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = trade.get_derivative_contracts(DerivativeContractsRequest { ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"contract_id": 265598,
"symbol": "AAPL",
"sec_type": "OPT",
"currency": "USD",
"exchange": "CBOE",
"primary_exchange": "CBOE",
"expiry": "2025-02-21",
"strike": 195.0
}
]Updated about 17 hours ago
