Market Data
The Rust SDK provides an async QuoteClient built on Tokio. Every method returns a typed Result<T, TigerError> (e.g. Vec<MarketState>, Vec<Brief>, Vec<Kline>). v0.4.0 migrates 4 methods to Request struct signatures (breaking) and adds ~41 new methods.
Quick Start
use tigeropen::client::http_client::HttpClient;
use tigeropen::config::ClientConfig;
use tigeropen::quote::QuoteClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = ClientConfig::builder().build()?;
let http = HttpClient::with_quote_server(config);
let qc = QuoteClient::new(&http);
// Get US market status
let states = qc.get_market_state("US").await?;
println!("US market state: {:?}", states);
// Get real-time quotes (v0.4.0: Request struct)
let briefs = qc.get_brief(BriefRequest {
symbols: Some(vec!["AAPL".to_string(), "TSLA".to_string()]),
..Default::default()
}).await?;
for b in &briefs {
println!("{} latest_price={}", b.symbol, b.latest_price);
}
// Get daily candlestick data
let klines = qc.get_kline("AAPL", "day").await?;
for k in &klines {
println!("{} bars={}", k.symbol, k.items.len());
}
Ok(())
}Basic Quotes
get_market_state
pub async fn get_market_state(&self, market: &str) -> Result<Vec<MarketState>, TigerError>Returns the current trading session status for the specified market.
| Parameter | Type | Required | Description |
|---|---|---|---|
market | &str | Yes | Market code: "US", "HK", "CN", "SG" |
Returns: Vec<MarketState> with fields market, market_status, status, open_time.
let states = qc.get_market_state("US").await?;
for s in &states {
println!("{}: {} openTime={}", s.market, s.market_status, s.open_time);
}Data Example
Request parameters:
{ "market": "US" }Response data:
[
{
"market": "US",
"status": "trading",
"openTime": 1735020600000,
"closeTime": 1735044000000,
"timezone": "America/New_York"
}
]get_brief
pub async fn get_brief(&self, req: BriefRequest) -> Result<Vec<Brief>, TigerError>v0.4.0 Breaking: was
symbols: &[&str], nowBriefRequest.
Returns real-time snapshot quotes. Backed by the brief server method.
BriefRequest fields:
| Field | Type | Required | Description |
|---|---|---|---|
| symbols | Option<Vec<String>> | Yes | Stock symbol list |
| include_hour_trading | Option<bool> | No | Include pre/after-hours |
| sec_type | Option<String> | No | Security type |
| lang | Option<String> | No | Language |
use tigeropen::model::quote_requests::BriefRequest;
let briefs = qc.get_brief(BriefRequest {
symbols: Some(vec!["AAPL".to_string(), "TSLA".to_string()]),
..Default::default()
}).await?;
for b in &briefs {
println!("{}: latest_price={}", b.symbol, b.latest_price);
}Data Example
Request parameters:
{ "symbols": ["AAPL", "TSLA"] }Response data:
[
{
"symbol": "AAPL",
"market": "US",
"name": "Apple Inc.",
"latestPrice": 227.52,
"preClose": 225.01,
"change": 2.51,
"changePercentage": 1.115,
"volume": 62345678,
"amount": 14189233280.0,
"open": 225.50,
"high": 228.10,
"low": 224.80,
"timestamp": 1735042800000
},
{
"symbol": "TSLA",
"market": "US",
"name": "Tesla Inc.",
"latestPrice": 410.44,
"preClose": 403.84,
"change": 6.60,
"changePercentage": 1.634,
"volume": 98765432,
"amount": 40542123456.0,
"open": 405.00,
"high": 415.20,
"low": 402.30,
"timestamp": 1735042800000
}
]get_kline
pub async fn get_kline(&self, symbol: &str, period: &str) -> Result<Vec<Kline>, TigerError>Returns historical OHLCV candlestick data for the specified symbol and period. Each Kline carries a symbol, period, next_page_token, and a Vec<KlineItem>.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | &str | Yes | Stock symbol, e.g. "AAPL" |
period | &str | Yes | Bar period: "day", "week", "month", "1min", "5min", "15min", "30min", "60min" |
let daily = qc.get_kline("AAPL", "day").await?;
for k in &daily {
for bar in &k.items {
println!("O={} H={} L={} C={}", bar.open, bar.high, bar.low, bar.close);
}
}Data Example
Request parameters:
{ "symbols": ["AAPL"], "period": "day" }Response data:
[
{
"symbol": "AAPL",
"period": "day",
"items": [
{
"time": 1734912000000,
"open": 222.56,
"high": 225.72,
"low": 222.11,
"close": 225.01,
"volume": 55234100
},
{
"time": 1734998400000,
"open": 225.50,
"high": 228.10,
"low": 224.80,
"close": 227.52,
"volume": 62345678
}
]
}
]get_timeline
pub async fn get_timeline(&self, symbols: &[&str]) -> Result<Vec<Timeline>, TigerError>Returns intraday minute-level price and volume timeline for today's session (API v3.0). Each Timeline contains intraday, pre_hours, and after_hours buckets (each an Option<TimelineBucket>).
| Parameter | Type | Required | Description |
|---|---|---|---|
symbols | &[&str] | Yes | List of stock symbols |
let timelines = qc.get_timeline(&["AAPL"]).await?;
for tl in &timelines {
let count = tl.intraday.as_ref().map(|b| b.items.len()).unwrap_or(0);
println!("{} intraday_points={} preClose={}", tl.symbol, count, tl.pre_close);
}Data Example
Request parameters:
{ "symbols": ["AAPL"] }Response data:
{
"symbol": "AAPL",
"items": [
{
"time": 1735020600000,
"price": 225.50,
"volume": 3021456,
"avgPrice": 225.48
},
{
"time": 1735020660000,
"price": 225.80,
"volume": 1234567,
"avgPrice": 225.55
}
]
}get_trade_tick
pub async fn get_trade_tick(&self, req: TradeTickRequest) -> Result<Vec<TradeTick>, TigerError>v0.4.0 Breaking: was
symbols: &[&str], nowTradeTickRequest.
Returns the most recent trade ticks (price, volume, timestamp, direction) for the given symbols.
use tigeropen::model::quote_requests::TradeTickRequest;
let ticks = qc.get_trade_tick(TradeTickRequest {
symbols: Some(vec!["AAPL".to_string()]),
..Default::default()
}).await?;
for t in &ticks {
println!("{} ticks={}", t.symbol, t.items.len());
}
**Data Example**
Request parameters:
```json
{ "symbols": ["AAPL"] }Response data:
{
"symbol": "AAPL",
"items": [
{
"time": 1735042780000,
"price": 227.52,
"volume": 100,
"type": "BUY"
},
{
"time": 1735042781000,
"price": 227.50,
"volume": 200,
"type": "SELL"
}
]
}get_quote_depth
pub async fn get_quote_depth(&self, req: DepthQuoteRequest) -> Result<Vec<Depth>, TigerError>v0.4.0 Breaking: was
(symbol: &str, market: &str), nowDepthQuoteRequest.
Returns Level 2 order book for the specified symbol.
use tigeropen::model::quote_requests::DepthQuoteRequest;
let depths = qc.get_quote_depth(DepthQuoteRequest {
symbols: Some(vec!["AAPL".to_string()]),
market: Some("US".to_string()),
..Default::default()
}).await?;
if let Some(d) = depths.first() {
println!("{}: asks={} bids={}", d.symbol, d.asks.len(), d.bids.len());
}Option Quotes
get_option_expiration
pub async fn get_option_expiration(&self, symbol: &str) -> Result<Vec<OptionExpiration>, TigerError>Returns all available option expiration dates for the underlying symbol.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | &str | Yes | Underlying symbol, e.g. "AAPL" |
let exps = qc.get_option_expiration("AAPL").await?;
if let Some(e) = exps.first() {
for date in &e.dates {
println!("Expiry: {}", date);
}
}Data Example
Request parameters:
{ "symbols": ["AAPL"] }Response data:
[
{
"symbol": "AAPL",
"dates": ["2025-01-17", "2025-02-21", "2025-03-21"],
"timestamps": [1737081600000, 1740096000000, 1742515200000],
"periods": ["weekly", "monthly", "monthly"]
}
]get_option_chain
pub async fn get_option_chain(&self, symbol: &str, expiry: &str) -> Result<Vec<OptionChain>, TigerError>Returns the full option chain (all strikes, both calls and puts) for a given expiration date (API v3.0). The expiry is a "YYYY-MM-DD" string; the SDK converts it to a UTC millisecond timestamp and sends it inside the option_basic array.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | &str | Yes | Underlying symbol |
expiry | &str | Yes | Expiration date in "YYYY-MM-DD" format |
let chain = qc.get_option_chain("AAPL", "2025-01-17").await?;
if let Some(c) = chain.first() {
println!("{} rows={}", c.symbol, c.items.len());
for row in &c.items {
if let Some(call) = &row.call {
println!("call {} strike={}", call.identifier, call.strike);
}
}
}Data Example
Request parameters:
{ "option_basic": [{ "symbol": "AAPL", "expiry": 1737081600000 }] }Response data:
[
{
"strike": 220.0,
"callSymbol": "AAPL 250117C00220000",
"putSymbol": "AAPL 250117P00220000",
"callLatestPrice": 9.50,
"putLatestPrice": 2.10,
"callImpliedVolatility": 0.285,
"putImpliedVolatility": 0.312
}
]get_option_brief
pub async fn get_option_brief(&self, identifiers: &[&str]) -> Result<Vec<OptionBrief>, TigerError>Returns real-time quotes for specific option contracts (API v2.0). Each OCC identifier is parsed into symbol / expiry (ms) / right / strike and packed into the option_basic array.
| Parameter | Type | Required | Description |
|---|---|---|---|
identifiers | &[&str] | Yes | OCC-style identifiers, e.g. &["AAPL 250117C00150000"] |
let briefs = qc.get_option_brief(&["AAPL 250117C00150000"]).await?;
for b in &briefs {
println!("{} latest_price={}", b.symbol, b.latest_price);
}Data Example
Request parameters:
{
"option_basic": [
{ "symbol": "AAPL", "expiry": 1737081600000, "right": "CALL", "strike": 150.0 }
]
}Response data:
[
{
"identifier": "AAPL 250117C00220000",
"latestPrice": 9.50,
"preClose": 9.10,
"change": 0.40,
"impliedVolatility": 0.285,
"delta": 0.612,
"gamma": 0.028,
"theta": -0.085,
"vega": 0.156,
"openInterest": 12540,
"volume": 3820
}
]get_option_kline
pub async fn get_option_kline(&self, identifier: &str, period: &str) -> Result<Vec<OptionKline>, TigerError>Returns historical candlestick data for a specific option contract (API v2.0). The identifier is parsed into symbol / expiry / right / strike and wrapped together with the period in the option_query array.
| Parameter | Type | Required | Description |
|---|---|---|---|
identifier | &str | Yes | OCC-style option identifier |
period | &str | Yes | Bar period (same values as get_kline) |
let klines = qc.get_option_kline("AAPL 250117C00150000", "day").await?;
for k in &klines {
println!("bars={}", k.items.len());
}Data Example
Request parameters:
{
"option_query": [
{ "symbol": "AAPL", "expiry": 1737081600000, "right": "CALL", "strike": 150.0, "period": "day" }
]
}Response data:
[
{
"symbol": "AAPL 250117C00150000",
"period": "day",
"items": [
{ "time": 1734912000000, "open": 8.80, "high": 9.60, "low": 8.70, "close": 9.10, "volume": 2100 },
{ "time": 1734998400000, "open": 9.10, "high": 9.80, "low": 9.00, "close": 9.50, "volume": 3820 }
]
}
]Futures Quotes
get_future_exchange
pub async fn get_future_exchange(&self) -> Result<Vec<FutureExchange>, TigerError>Returns the list of supported futures exchanges.
let exchanges = qc.get_future_exchange().await?;
for ex in &exchanges {
println!("{}: {}", ex.code, ex.name);
}Data Example
Response data:
[
{ "code": "CME", "name": "Chicago Mercantile Exchange", "zoneId": "America/Chicago" },
{ "code": "CBOT", "name": "Chicago Board of Trade", "zoneId": "America/Chicago" },
{ "code": "NYMEX", "name": "New York Mercantile Exchange", "zoneId": "America/New_York" },
{ "code": "HKEX", "name": "Hong Kong Exchanges and Clearing", "zoneId": "Asia/Hong_Kong" }
]get_future_contracts
pub async fn get_future_contracts(&self, exchange_code: &str) -> Result<Vec<FutureContractInfo>, TigerError>Returns available futures contracts on the specified exchange. Backed by the future_contract_by_exchange_code server method.
| Parameter | Type | Required | Description |
|---|---|---|---|
exchange_code | &str | Yes | Exchange code, e.g. "CME", "CBOT" |
let contracts = qc.get_future_contracts("CME").await?;
for c in &contracts {
println!("{} {}", c.contract_code, c.name);
}Data Example
Request parameters:
{ "exchange_code": "CME" }Response data:
[
{
"contractCode": "ES2506",
"name": "E-mini S&P 500",
"multiplier": 50,
"currency": "USD",
"minTick": 0.25,
"exchange": "CME"
}
]get_future_real_time_quote
pub async fn get_future_real_time_quote(&self, req: FutureBriefRequest) -> Result<Vec<FutureQuote>, TigerError>v0.4.0 Breaking: was
contract_codes: &[&str], nowFutureBriefRequest.
use tigeropen::model::quote_requests::FutureBriefRequest;
let quotes = qc.get_future_real_time_quote(FutureBriefRequest {
contract_codes: Some(vec!["ES2506".to_string(), "NQ2506".to_string()]),
..Default::default()
}).await?;
for q in "es {
println!("{} latest_price={}", q.contract_code, q.latest_price);
}get_future_kline
pub async fn get_future_kline(&self, req: FutureKlineRequest) -> Result<Vec<FutureKline>, TigerError>Returns historical candlestick data for one or more futures contracts. Pass a FutureKlineRequest struct. When begin_time / end_time are left at 0, they are converted internally to -1.
FutureKlineRequest fields:
| Field | Type | Description |
|---|---|---|
contract_codes | Vec<String> | Futures contract codes |
period | String | Bar period (e.g. "day", "60min", "5min") |
begin_time | i64 | Start timestamp in ms. Leave 0 / -1 to omit |
end_time | i64 | End timestamp in ms. Leave 0 / -1 to omit |
limit | Option<i32> | Max bars returned |
page_token | Option<String> | Pagination token from a previous response |
use tigeropen::model::quote::FutureKlineRequest;
let klines = qc.get_future_kline(FutureKlineRequest {
contract_codes: vec!["ES2506".into()],
period: "day".into(),
begin_time: -1,
end_time: -1,
limit: None,
page_token: None,
}).await?;
for k in &klines {
println!("bars={}", k.items.len());
}Data Example
Request parameters:
{ "contract_codes": ["ES2506"], "period": "day", "begin_time": -1, "end_time": -1 }Response data:
[
{
"items": [
{ "time": 1734912000000, "open": 5870.00, "high": 5900.00, "low": 5860.00, "close": 5895.25, "volume": 1023456 },
{ "time": 1734998400000, "open": 5900.00, "high": 5935.00, "low": 5895.00, "close": 5920.50, "volume": 1234567 }
]
}
]Fundamental Data
get_financial_daily
pub async fn get_financial_daily(&self, req: FinancialDailyRequest) -> Result<Vec<FinancialDailyItem>, TigerError>Returns daily fundamental metrics (market cap, shares outstanding, etc.) per symbol and field.
use tigeropen::model::quote::FinancialDailyRequest;
let items = qc.get_financial_daily(FinancialDailyRequest {
symbols: vec!["AAPL".into()],
market: "US".into(),
fields: vec!["shares_outstanding".into()],
begin_date: "2025-01-01".into(),
end_date: "2025-01-31".into(),
}).await?;
println!("rows={}", items.len());
get_financial_report/get_corporate_action/get_corporate_split/get_corporate_dividend/get_corporate_earnings_calendarare advanced interfaces requiring special permissions — see the Advanced APIs section.
Capital Flow
get_capital_flow
pub async fn get_capital_flow(
&self,
symbol: &str,
market: &str,
period: &str,
) -> Result<Option<CapitalFlow>, TigerError>Returns net capital inflow/outflow data segmented by trade size.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | &str | Yes | Stock symbol |
market | &str | Yes | Market code, e.g. "US" |
period | &str | Yes | Period, e.g. "day", "1min" |
if let Some(cf) = qc.get_capital_flow("AAPL", "US", "day").await? {
println!("{} period={} rows={}", cf.symbol, cf.period, cf.items.len());
}Data Example
Request parameters:
{ "symbol": "AAPL", "market": "US", "period": "day" }Response data:
{
"symbol": "AAPL",
"inflow": 8234567890,
"outflow": 7123456789,
"netInflow": 1111111101,
"largeOrderInflow": 5123456789,
"largeOrderOutflow": 4012345678,
"mediumOrderInflow": 2012345678,
"smallOrderInflow": 1098765432,
"timestamp": 1735042800000
}get_capital_distribution
pub async fn get_capital_distribution(
&self,
symbol: &str,
market: &str,
) -> Result<Option<CapitalDistribution>, TigerError>Returns the distribution of buy/sell capital across different order-size tiers.
| Parameter | Type | Required | Description |
|---|---|---|---|
symbol | &str | Yes | Stock symbol |
market | &str | Yes | Market code, e.g. "US" |
if let Some(cd) = qc.get_capital_distribution("AAPL", "US").await? {
println!("{} netInflow={}", cd.symbol, cd.net_inflow);
}Data Example
Request parameters:
{ "symbol": "AAPL", "market": "US" }Response data:
{
"symbol": "AAPL",
"netInflow": 1111111101,
"inAll": 8234567890,
"inBig": 5123456789,
"inMid": 2012345678,
"inSmall": 1098765432,
"outAll": 7123456789,
"outBig": 4012345678,
"outMid": 1912345678,
"outSmall": 1198765432
}Market Scanner
market_scanner
pub async fn market_scanner(&self, req: MarketScannerRequest) -> Result<Option<ScannerResult>, TigerError>Scans the market and returns stocks matching the given filter criteria (API v1.0).
MarketScannerRequest selected fields:
| Field | Type | Description |
|---|---|---|
market | String | Market code (required) |
page | Option<i32> | Page number |
page_size | Option<i32> | Page size |
cursor_id | Option<String> | Cursor for paging |
base_filter_list | Option<Vec<serde_json::Value>> | Base filter criteria |
accumulate_filter_list | Option<Vec<serde_json::Value>> | Accumulate filter criteria |
financial_filter_list | Option<Vec<serde_json::Value>> | Financial filter criteria |
multi_tags_filter_list | Option<Vec<serde_json::Value>> | Multi-tag filter criteria |
sort_field_data | Option<serde_json::Value> | Sort specification |
use tigeropen::model::quote::MarketScannerRequest;
if let Some(r) = qc.market_scanner(MarketScannerRequest {
market: "US".into(),
page: Some(0),
page_size: Some(10),
..Default::default()
}).await? {
println!("page={}/{} total={} items={}", r.page, r.total_page, r.total_count, r.items.len());
}Data Example
Request parameters:
{ "market": "US", "page": 0, "page_size": 10 }Response data:
[
{
"symbol": "AAPL",
"name": "Apple Inc.",
"latestPrice": 227.52,
"changePercentage": 1.115,
"marketCap": 3420000000000,
"volume": 62345678
},
{
"symbol": "NVDA",
"name": "NVIDIA Corporation",
"latestPrice": 138.85,
"changePercentage": 3.240,
"marketCap": 3390000000000,
"volume": 185432100
}
]grab_quote_permission
pub async fn grab_quote_permission(&self) -> Result<Vec<QuotePermission>, TigerError>Returns the current account's market data subscription permissions (with expiration timestamps).
let perms = qc.grab_quote_permission().await?;
for p in &perms {
println!("{} expires_at={}", p.name, p.expire_at);
}Data Example
Response data:
[
{ "name": "usStockQuote", "expireAt": 1735042800000 },
{ "name": "hkStockQuote", "expireAt": 1735042800000 }
]Stock Basics (new in v0.4.0)
get_symbols (new in v0.4.0)
async fn get_symbols(&self, req: SymbolsRequest) -> Result<Vec<String>, TigerError>
Query the list of symbols for a given market or category.
get_symbol_names (new in v0.4.0)
async fn get_symbol_names(&self, req: SymbolNamesRequest) -> Result<Vec<SymbolName>, TigerError>
Batch query Chinese and English names for symbols.
get_trade_metas (new in v0.4.0)
async fn get_trade_metas(&self, req: TradeMetasRequest) -> Result<Vec<TradeMeta>, TigerError>
Query trading attributes (lot size, min tick, limit-up/down rules, etc.).
get_stock_delay_briefs (new in v0.4.0)
async fn get_stock_delay_briefs(&self, req: BriefRequest) -> Result<Vec<Brief>, TigerError>
Delayed quotes — no real-time subscription needed.
get_bars (new in v0.4.0)
async fn get_bars(&self, req: BarsRequest) -> Result<Vec<Kline>, TigerError>
Batch multi-symbol candlestick data with pagination.
get_bars_by_page (new in v0.4.0)
async fn get_bars_by_page(&self, req: BarsRequest) -> Result<Vec<Kline>, TigerError>
Paginated candlestick data for large histories.
get_timeline_history (new in v0.4.0)
async fn get_timeline_history(&self, req: TimelineHistoryRequest) -> Result<Vec<Timeline>, TigerError>
Get intraday data for a historical date.
get_trade_rank (new in v0.4.0)
async fn get_trade_rank(&self, req: TradeRankRequest) -> Result<Vec<TradeRankItem>, TigerError>
Volume/turnover leaderboard for a given market.
get_short_interest (new in v0.4.0)
async fn get_short_interest(&self, req: ShortInterestRequest) -> Result<Vec<ShortInterest>, TigerError>
US stock short interest, borrow rate, and available shares.
get_stock_broker (new in v0.4.0)
async fn get_stock_broker(&self, req: StockBrokerRequest) -> Result<Vec<StockBroker>, TigerError>
HK stock broker queue details for each order book level.
get_stock_industry (new in v0.4.0)
async fn get_stock_industry(&self, req: StockIndustryRequest) -> Result<Vec<StockIndustry>, TigerError>
GICS industry classification for symbols.
get_kline_quota (new in v0.4.0)
async fn get_kline_quota(&self) -> Result<KlineQuota, TigerError>
Query remaining intraday kline quota for the current account.
Options (new in v0.4.0)
get_option_bars (new in v0.4.0)
async fn get_option_bars(&self, req: OptionBarsRequest) -> Result<Vec<Kline>, TigerError>
get_option_trade_ticks (new in v0.4.0)
async fn get_option_trade_ticks(&self, req: OptionTradeTickRequest) -> Result<Vec<TradeTick>, TigerError>
get_option_timeline (new in v0.4.0)
async fn get_option_timeline(&self, req: OptionTimelineRequest) -> Result<Vec<Timeline>, TigerError>
get_option_depth (new in v0.4.0)
async fn get_option_depth(&self, req: OptionDepthRequest) -> Result<Vec<Depth>, TigerError>
get_option_symbols (new in v0.4.0)
async fn get_option_symbols(&self, req: OptionSymbolsRequest) -> Result<Vec<String>, TigerError>
get_option_analysis (new in v0.4.0)
async fn get_option_analysis(&self, req: OptionAnalysisRequest) -> Result<Vec<OptionAnalysis>, TigerError>
Futures (new in v0.4.0)
get_future_contract (new in v0.4.0)
async fn get_future_contract(&self, req: FutureContractRequest) -> Result<Option<FutureContractInfo>, TigerError>
get_all_future_contracts (new in v0.4.0)
async fn get_all_future_contracts(&self, req: AllFutureContractsRequest) -> Result<Vec<FutureContractInfo>, TigerError>
get_current_future_contract (new in v0.4.0)
async fn get_current_future_contract(&self, req: FutureContractRequest) -> Result<Option<FutureContractInfo>, TigerError>
get_future_continuous_contracts (new in v0.4.0)
async fn get_future_continuous_contracts(&self, req: FutureContractsRequest) -> Result<Vec<FutureContractInfo>, TigerError>
get_future_history_main_contract (new in v0.4.0)
async fn get_future_history_main_contract(&self, req: FutureHistoryRequest) -> Result<Vec<FutureContractInfo>, TigerError>
get_future_bars (new in v0.4.0)
async fn get_future_bars(&self, req: FutureKlineRequest) -> Result<Vec<FutureKline>, TigerError>
get_future_bars_by_page (new in v0.4.0)
async fn get_future_bars_by_page(&self, req: FutureKlineRequest) -> Result<Vec<FutureKline>, TigerError>
get_future_trade_ticks (new in v0.4.0)
async fn get_future_trade_ticks(&self, req: FutureTradeTickRequest) -> Result<Vec<TradeTick>, TigerError>
get_future_depth (new in v0.4.0)
async fn get_future_depth(&self, req: FutureDepthRequest) -> Result<Vec<Depth>, TigerError>
get_future_trading_times (new in v0.4.0)
async fn get_future_trading_times(&self, req: FutureTradingTimesRequest) -> Result<Vec<FutureTradingTime>, TigerError>
Funds (new in v0.4.0)
get_fund_symbols (new in v0.4.0)
async fn get_fund_symbols(&self, req: FundSymbolsRequest) -> Result<Vec<String>, TigerError>
get_fund_contracts (new in v0.4.0)
async fn get_fund_contracts(&self, req: FundContractsRequest) -> Result<Vec<FundContract>, TigerError>
get_fund_quote (new in v0.4.0)
async fn get_fund_quote(&self, req: FundQuoteRequest) -> Result<Vec<FundQuote>, TigerError>
get_fund_history_quote (new in v0.4.0)
async fn get_fund_history_quote(&self, req: FundHistoryQuoteRequest) -> Result<Vec<FundHistoryQuote>, TigerError>
Warrants (new in v0.4.0)
get_warrant_briefs (new in v0.4.0)
async fn get_warrant_briefs(&self, req: WarrantBriefsRequest) -> Result<Vec<Brief>, TigerError>
get_warrant_filter (new in v0.4.0)
async fn get_warrant_filter(&self, req: WarrantFilterRequest) -> Result<Vec<WarrantFilterResult>, TigerError>
Industry (new in v0.4.0)
get_industry_list (new in v0.4.0)
async fn get_industry_list(&self, req: IndustryListRequest) -> Result<Vec<Industry>, TigerError>
GICS industry hierarchy by level (GSECTOR / GGROUP / GIND / GSUBIND).
get_industry_stocks (new in v0.4.0)
async fn get_industry_stocks(&self, req: IndustryStocksRequest) -> Result<Vec<String>, TigerError>
Financial Calendar (new in v0.4.0)
get_financial_currency (new in v0.4.0)
async fn get_financial_currency(&self, req: FinancialCurrencyRequest) -> Result<Vec<FinancialCurrency>, TigerError>
get_financial_exchange_rate (new in v0.4.0)
async fn get_financial_exchange_rate(&self, req: FinancialExchangeRateRequest) -> Result<Vec<FinancialExchangeRate>, TigerError>
get_trading_calendar (new in v0.4.0)
async fn get_trading_calendar(&self, req: TradingCalendarRequest) -> Result<Vec<TradingCalendar>, TigerError>
use tigeropen::model::quote_requests::TradingCalendarRequest;
let calendar = qc.get_trading_calendar(TradingCalendarRequest {
market: Some("US".to_string()),
begin_date: Some("2025-01-01".to_string()),
end_date: Some("2025-12-31".to_string()),
..Default::default()
}).await?;Market Scanner Extension (new in v0.4.0)
get_market_scanner_tags (new in v0.4.0)
async fn get_market_scanner_tags(&self, req: MarketScannerTagsRequest) -> Result<Vec<ScannerTag>, TigerError>
Query the list of filter tag fields supported by the market scanner.
Updated 14 days ago
