Securities
Get Real-Time Quotes
Signature
pub async fn get_real_time_quote(&self, req: BriefRequest) -> Result<Vec<Brief>, TigerError>
Description
Returns real-time quotes; symbols required; hour trading, security type, and language omitted by default. Requires matching market data access.
Deprecated alias:
get_briefforwards to this method and has been marked#[deprecated]in the SDK since 0.5.1. It adds no behavior. Useget_real_time_quotein new code.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.include_hour_trading | Option<bool> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<Brief>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| open | f64 | Open price |
| high | f64 | High price |
| low | f64 | Low price |
| close | f64 | Close price |
| pre_close | f64 | Previous close |
| latest_price | f64 | Latest price |
| latest_time | i64 | Latest trade time (ms timestamp) |
| ask_price | f64 | Ask price |
| ask_size | i64 | Ask size |
| bid_price | f64 | Bid price |
| bid_size | i64 | Bid size |
| volume | i64 | Volume |
| status | String | Trading status |
| adj_pre_close | f64 | Adjusted previous close |
| change | f64 | Price change |
| change_rate | f64 | Change rate |
| amplitude | f64 | Amplitude |
| expiry | String | Expiry date |
| strike | String | Strike price |
| right | String | Option direction |
| multiplier | i32 | Contract multiplier |
| open_interest | i64 | Open interest |
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_real_time_quote(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_real_time_quote(BriefRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"open": 192.3,
"high": 195.99,
"low": 191.85,
"close": 195.5,
"preClose": 192.53,
"latestPrice": 195.5,
"latestTime": 1738180800000
}
]Rate limit
The base rate limit is 120 requests/min.
Get Delayed Quote
Signature
pub async fn get_delayed_quote( &self, req: DelayedQuoteRequest, ) -> Result<Vec<Brief>, TigerError>
Description
Delayed snapshot; symbols required.
Deprecated alias:
get_stock_delay_briefsforwards to this method and has been marked#[deprecated]in the SDK since 0.5.1. It adds no behavior. Useget_delayed_quotein new code.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<Brief>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| open | f64 | Open price |
| high | f64 | High price |
| low | f64 | Low price |
| close | f64 | Close price |
| pre_close | f64 | Previous close |
| latest_price | f64 | Latest price |
| latest_time | i64 | Latest trade time (ms timestamp) |
| ask_price | f64 | Ask price |
| ask_size | i64 | Ask size |
| bid_price | f64 | Bid price |
| bid_size | i64 | Bid size |
| volume | i64 | Volume |
| status | String | Trading status |
| adj_pre_close | f64 | Adjusted previous close |
| change | f64 | Price change |
| change_rate | f64 | Change rate |
| amplitude | f64 | Amplitude |
| expiry | String | Expiry date |
| strike | String | Strike price |
| right | String | Option direction |
| multiplier | i32 | Contract multiplier |
| open_interest | i64 | Open interest |
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_delayed_quote(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_delayed_quote(DelayedQuoteRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"open": 192.3,
"high": 195.99,
"low": 191.85,
"close": 195.5,
"preClose": 192.53,
"latestPrice": 195.5,
"latestTime": 1738180800000
}
]Rate limit
The base rate limit is 10 requests/min.
Get Kline
Signature
pub async fn get_kline(&self, req: KlineRequest) -> Result<Vec<Kline>, TigerError>
Description
Stock bars; symbols and period are required.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.period | Option<String> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.right | Option<String> | Optional | None (omitted) |
| req.begin_time | Option<i64> | Optional | None (omitted) |
| req.end_time | Option<i64> | Optional | None (omitted) |
| req.limit | Option<i32> | Optional | None (omitted) |
| req.begin_index | Option<i32> | Optional | None (omitted) |
| req.end_index | Option<i32> | Optional | None (omitted) |
| req.page_token | Option<String> | Optional | None (omitted) |
| req.trade_session | Option<String> | Optional | None (omitted) |
| req.date | Option<String> | Optional | None (omitted) |
| req.with_fundamental | Option<bool> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<Kline>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| period | String | Period |
| next_page_token | String | Next page token |
| items | Vec | Data items |
items elements (KlineItem):
| Field | Type | Description |
|---|---|---|
| time | i64 | Timestamp |
| volume | i64 | Volume |
| volume_decimal | Option<f64> | Optional fractional volume |
| open | f64 | Open price |
| close | f64 | Close price |
| high | f64 | High price |
| low | f64 | Low price |
| amount | f64 | Turnover amount |
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_kline(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_kline(KlineRequest { symbols: Some(vec!["AAPL".into()]), period: Some("day".into()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"period": "day",
"nextPageToken": "eyJzIjoiMTczODE4MDgwMDAwMCJ9",
"items": [
{
"time": 1738094400000,
"volume": 52314200,
"open": 192.3,
"close": 193.85,
"high": 194.2,
"low": 191.5,
"amount": 10145000000.0
},
{
"time": 1738008000000,
"volume": 48120300,
"open": 191.5,
"close": 192.53,
"high": 193.1,
"low": 190.8,
"amount": 9280000000.0
}
]
}
]Rate limit
The base rate limit is 60 requests/min. Methods documented here that use kline share this quota.
Get Kline By Page
Signature
pub async fn get_kline_by_page( &self, req: KlineByPageRequest, ) -> Result<Vec<KlineItem>, TigerError>
Description
Client pagination; SDK defaults: page_size=200, total_size=1000; continues with oldest time minus one.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Optional | None (omitted) |
| req.period | Option<String> | Optional | None (omitted) |
| req.begin_time | Option<i64> | Optional | None (omitted) |
| req.end_time | Option<i64> | Optional | None (omitted) |
| req.total_size | Option<i32> | Optional | 1000 when None |
| req.page_size | Option<i32> | Optional | 200 when None |
| req.right | Option<String> | Optional | None (omitted) |
| req.trade_session | Option<String> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<KlineItem>, TigerError>
| Field | Type | Description |
|---|---|---|
| time | i64 | Timestamp |
| volume | i64 | Volume |
| volume_decimal | Option<f64> | Optional fractional volume |
| open | f64 | Open price |
| close | f64 | Close price |
| high | f64 | High price |
| low | f64 | Low price |
| amount | f64 | Turnover amount |
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_kline_by_page(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_kline_by_page(KlineByPageRequest {
symbols: Some(vec!["AAPL".into()]),
period: Some("day".into()),
total_size: Some(100),
..Default::default()
}).await?;
Ok(())
}
Response example
[
{
"time": 1738180800000,
"volume": 58263100,
"open": 192.3,
"close": 195.5,
"high": 195.99,
"low": 191.85,
"amount": 11329847520.0
}
]Rate limit
The base rate limit is 60 requests/min. Methods documented here that use kline share this quota.
Get Timeline
Signature
pub async fn get_timeline(&self, symbols: &[&str]) -> Result<Vec<Timeline>, TigerError>
Description
Convenience method for current stock timeline data.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| symbols | &[&str] | Required | None |
Return
Result<Vec<Timeline>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| period | String | Period |
| pre_close | f64 | Previous close |
| intraday | Option | Intraday timeline data |
| pre_hours | Option | Pre-market timeline data |
| after_hours | Option | After-hours timeline data |
Each TimelineBucket contains TimelineItem elements in items:
| Field | Type | Description |
|---|---|---|
| time | i64 | Timestamp |
| volume | i64 | Volume |
| volume_decimal | Option<f64> | Optional fractional volume |
| price | f64 | Price |
| avg_price | f64 | Average 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_timeline(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_timeline(&["AAPL"]).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"period": "day",
"preClose": 192.53,
"intraday": null,
"preHours": null,
"afterHours": null
}
]Rate limit
The base rate limit is 120 requests/min.
Get Timeline History
Signature
pub async fn get_timeline_history( &self, req: TimelineHistoryRequest, ) -> Result<Vec<Timeline>, TigerError>
Description
Historical stock timeline; symbols required; date, adjustment, and session are optional.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.date | Option<String> | Optional | None (omitted) |
| req.right | Option<String> | Optional | None (omitted) |
| req.trade_session | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<Timeline>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| period | String | Period |
| pre_close | f64 | Previous close |
| intraday | Option | Intraday timeline data |
| pre_hours | Option | Pre-market timeline data |
| after_hours | Option | After-hours timeline data |
Each TimelineBucket contains TimelineItem elements in items:
| Field | Type | Description |
|---|---|---|
| time | i64 | Timestamp |
| volume | i64 | Volume |
| volume_decimal | Option<f64> | Optional fractional volume |
| price | f64 | Price |
| avg_price | f64 | Average 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_timeline_history(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_timeline_history(TimelineHistoryRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"period": "day",
"preClose": 192.53,
"intraday": null,
"preHours": null,
"afterHours": null
}
]Rate limit
The base rate limit is 60 requests/min.
Get Trade Tick
Signature
pub async fn get_trade_tick( &self, req: TradeTickRequest, ) -> Result<Vec<TradeTick>, TigerError>
Description
Stock ticks; symbols required; indexes, limit, session optional.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.begin_index | Option<i32> | Optional | None (omitted) |
| req.end_index | Option<i32> | Optional | None (omitted) |
| req.limit | Option<i32> | Optional | None (omitted) |
| req.trade_session | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<TradeTick>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| begin_index | i64 | Begin index |
| end_index | i64 | End index |
| items | Vec | Data items |
items elements (TradeTickItem):
| Field | Type | Description |
|---|---|---|
| time | i64 | Timestamp |
| volume | i64 | Volume |
| price | f64 | Trade price |
| r#type | String | Trade type; JSON field: type |
| part_code | String | Participant code |
| part_name | String | Participant name |
| cond | String | Trade condition |
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_trade_tick(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_trade_tick(TradeTickRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"beginIndex": 0,
"endIndex": 30,
"items": [
{
"time": 1738180750000,
"price": 195.5,
"volume": 100,
"type": "+"
},
{
"time": 1738180745000,
"price": 195.49,
"volume": 50,
"type": "-"
}
]
}
]Rate limit
The base rate limit is 120 requests/min.
Get Market Depth
Signature
pub async fn get_quote_depth(&self, req: QuoteDepthRequest) -> Result<Vec<Depth>, TigerError>
Description
Order book; symbols required. Requires the applicable depth license.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.market | Option<String> | Optional | None (omitted) |
| req.trade_session | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<Depth>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| asks | Vec | Ask levels |
| bids | Vec | Bid levels |
asks and bids elements (DepthLevel):
| Field | Type | Description |
|---|---|---|
| price | f64 | Price |
| count | i32 | Order count |
| volume | i64 | Order volume |
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_quote_depth(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_quote_depth(QuoteDepthRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"asks": [
{
"price": 195.51,
"volume": 200
},
{
"price": 195.52,
"volume": 350
}
],
"bids": [
{
"price": 195.49,
"volume": 150
},
{
"price": 195.48,
"volume": 400
}
]
}
]Rate limit
The base rate limit is 60 requests/min.
Get Stock Broker
Signature
pub async fn get_stock_broker( &self, req: StockBrokerRequest, ) -> Result<Option<StockBroker>, TigerError>
Description
Broker queue; symbol required; HK permissions apply.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbol | Option<String> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.limit | Option<i32> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Option<StockBroker>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| level_ask_list | Vec | Broker ask levels |
| level_bid_list | Vec | Broker bid levels |
level_ask_list and level_bid_list elements (StockBrokerItem):
| Field | Type | Description |
|---|---|---|
| level | i32 | Level |
| price | f64 | Price |
| brokers | Vec<BrokerDetail> | Broker details |
brokers elements (BrokerDetail):
| Field | Type | Description |
|---|---|---|
| id | String | Broker ID |
| name | String | Broker name |
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_stock_broker(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_stock_broker(StockBrokerRequest { symbol: Some("AAPL".into()), ..Default::default() }).await?;
Ok(())
}
Response example
{
"symbol": "AAPL",
"levelAskList": [
{
"level": 1,
"price": 195.51,
"brokers": [
{
"id": "5860",
"name": "Broker A"
}
]
}
],
"levelBidList": [
{
"level": 1,
"price": 195.49,
"brokers": [
{
"id": "6998",
"name": "Broker B"
}
]
}
]
}Rate limit
The base rate limit is 60 requests/min.
Get Capital Flow
Signature
pub async fn get_capital_flow( &self, symbol: &str, market: &str, period: &str, ) -> Result<Option<CapitalFlow>, TigerError>
Description
Capital flow; all arguments required; licensed data.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| symbol | &str | Required | None |
| market | &str | Required | None |
| period | &str | Required | None |
Return
Result<Option<CapitalFlow>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| period | String | Period |
| items | Vec | Data items |
items elements (CapitalFlowItem):
| Field | Type | Description |
|---|---|---|
| time | String | Time |
| timestamp | i64 | Timestamp |
| net_inflow | f64 | Net inflow |
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_capital_flow(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_capital_flow("AAPL", "US", "day").await?;
Ok(())
}
Response example
{
"symbol": "AAPL",
"period": "day",
"items": [
{
"netInflow": -109057032.20,
"time": "2025-07-28",
"timestamp": 1753660800000
},
{
"netInflow": 52340018.55,
"time": "2025-07-25",
"timestamp": 1753488000000
}
]
}Rate limit
The base rate limit is 60 requests/min.
Get Capital Distribution
Signature
pub async fn get_capital_distribution( &self, symbol: &str, market: &str, ) -> Result<Option<CapitalDistribution>, TigerError>
Description
Capital distribution; both arguments required.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| symbol | &str | Required | None |
| market | &str | Required | None |
Return
Result<Option<CapitalDistribution>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| net_inflow | f64 | Net inflow |
| in_all | f64 | Total inflow |
| in_big | f64 | Large order inflow |
| in_mid | f64 | Medium order inflow |
| in_small | f64 | Small order inflow |
| out_all | f64 | Total outflow |
| out_big | f64 | Large order outflow |
| out_mid | f64 | Medium order outflow |
| out_small | f64 | Small order outflow |
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_capital_distribution(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_capital_distribution("AAPL", "US").await?;
Ok(())
}
Response example
{
"symbol": "AAPL",
"netInflow": -52340018.55,
"inAll": 2850000000.0,
"inBig": 1520000000.0,
"inMid": 830000000.0,
"inSmall": 500000000.0,
"outAll": 2902340018.55,
"outBig": 1600000000.0
}Rate limit
The base rate limit is 60 requests/min.
Get Short Interest
Signature
pub async fn get_short_interest( &self, req: ShortInterestRequest, ) -> Result<Vec<ShortInterest>, TigerError>
Description
Short interest; symbols required; primarily US.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.symbols | Option<Vec<String>> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<ShortInterest>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| settlement_date | String | Settlement date |
| short_interest | f64 | Short interest shares |
| avg_daily_volume | f64 | Average daily volume |
| days_to_cover | f64 | Days to cover |
| percent_of_float | f64 | Percent of float |
| short_interest_previous | f64 | Previous short interest |
| percent_change | f64 | Percent change |
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_short_interest(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_short_interest(ShortInterestRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"settlementDate": "2025-01-15",
"shortInterest": 98520000.0,
"avgDailyVolume": 58263100.0,
"daysToCover": 1.69,
"percentOfFloat": 0.64,
"shortInterestPrevious": 95130000.0,
"percentChange": 3.56
}
]Rate limit
The base rate limit is 60 requests/min.
Get Trade Rank
Signature
pub async fn get_trade_rank( &self, req: TradeRankRequest, ) -> Result<Vec<TradeRankItem>, TigerError>
Description
Trading ranking; market required.
Parameters
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | Option<String> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<TradeRankItem>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Stock symbol |
| name | String | Name |
| latest_price | f64 | Latest price |
| change | f64 | Price change |
| change_rate | f64 | Change rate |
| volume | i64 | Volume |
| amount | f64 | Turnover amount |
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_trade_rank(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {
let result_0 = quote.get_trade_rank(TradeRankRequest { market: Some("US".into()), ..Default::default() }).await?;
Ok(())
}
Response example
[
{
"symbol": "AAPL",
"name": "Apple Inc",
"latestPrice": 195.5,
"change": 2.97,
"changeRate": 0.0154,
"volume": 58263100,
"amount": 11329847520.0
}
]Rate limit
The base rate limit is 10 requests/min.
Updated about 1 month ago
