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.

ParameterTypeRequiredDescription
market&strYesMarket 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], now BriefRequest.

Returns real-time snapshot quotes. Backed by the brief server method.

BriefRequest fields:

FieldTypeRequiredDescription
symbolsOption<Vec<String>>YesStock symbol list
include_hour_tradingOption<bool>NoInclude pre/after-hours
sec_typeOption<String>NoSecurity type
langOption<String>NoLanguage
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>.

ParameterTypeRequiredDescription
symbol&strYesStock symbol, e.g. "AAPL"
period&strYesBar 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>).

ParameterTypeRequiredDescription
symbols&[&str]YesList 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], now TradeTickRequest.

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), now DepthQuoteRequest.

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.

ParameterTypeRequiredDescription
symbol&strYesUnderlying 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.

ParameterTypeRequiredDescription
symbol&strYesUnderlying symbol
expiry&strYesExpiration 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.

ParameterTypeRequiredDescription
identifiers&[&str]YesOCC-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.

ParameterTypeRequiredDescription
identifier&strYesOCC-style option identifier
period&strYesBar 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.

ParameterTypeRequiredDescription
exchange_code&strYesExchange 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], now FutureBriefRequest.

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 &quotes {
    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:

FieldTypeDescription
contract_codesVec<String>Futures contract codes
periodStringBar period (e.g. "day", "60min", "5min")
begin_timei64Start timestamp in ms. Leave 0 / -1 to omit
end_timei64End timestamp in ms. Leave 0 / -1 to omit
limitOption<i32>Max bars returned
page_tokenOption<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_calendar are 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.

ParameterTypeRequiredDescription
symbol&strYesStock symbol
market&strYesMarket code, e.g. "US"
period&strYesPeriod, 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.

ParameterTypeRequiredDescription
symbol&strYesStock symbol
market&strYesMarket 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:

FieldTypeDescription
marketStringMarket code (required)
pageOption<i32>Page number
page_sizeOption<i32>Page size
cursor_idOption<String>Cursor for paging
base_filter_listOption<Vec<serde_json::Value>>Base filter criteria
accumulate_filter_listOption<Vec<serde_json::Value>>Accumulate filter criteria
financial_filter_listOption<Vec<serde_json::Value>>Financial filter criteria
multi_tags_filter_listOption<Vec<serde_json::Value>>Multi-tag filter criteria
sort_field_dataOption<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.