General

Get Market State

Signature


pub async fn get_market_state(&self, market: &str) -> Result<Vec<MarketState>, TigerError>

Description

Market state; required market, such as US/HK.

Parameters

ParameterRust typeRequirementSDK default
market&strRequired by Rust typeNone

Return

Result<Vec<MarketState>, TigerError>

FieldTypeDescription
marketStringMarket
market_statusStringMarket status
statusStringStatus code
open_timeStringMarket open time

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_market_state(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_market_state("US").await?;

    Ok(())

}

Response example

[
  {
    "market": "US",
    "marketStatus": "Trading",
    "status": "TRADING",
    "openTime": "2025-01-29 09:30:00"
  }
]

Rate limit

The base rate limit is 10 requests/min.


Get Trading Calendar

Signature


pub async fn get_trading_calendar( &self, req: TradingCalendarRequest, ) -> Result<Vec<TradingCalendarItem>, TigerError>

Description

Calendar; market required; dates optional.

Parameters

ParameterRust typeRequirementSDK default
req.marketOption<String>Required by the server; not prevalidated by the SDKNone (omitted)
req.begin_dateOption<String>OptionalNone (omitted)
req.end_dateOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<TradingCalendarItem>, TigerError>

FieldTypeDescription
marketStringMarket
dateStringDate
is_tradingboolWhether the date is a trading day
session_typeStringTrading session type

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_trading_calendar(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_trading_calendar(TradingCalendarRequest { market: Some("US".into()), ..Default::default() }).await?;

    Ok(())

}

Response example

[
  {
    "market": "US",
    "date": "2025-01-29",
    "isTrading": true,
    "sessionType": "regular"
  }
]

Get Symbols

Signature


pub async fn get_symbols(&self, req: SymbolsRequest) -> Result<Vec<String>, TigerError>

Description

Symbol universe; all request fields optional.

Parameters

ParameterRust typeRequirementSDK default
req.marketOption<String>OptionalNone (omitted)
req.sec_typeOption<String>OptionalNone (omitted)
req.include_otcOption<bool>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

  • QuoteClient: Result<Vec<String>, TigerError>.
    Symbol strings.

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_symbols(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_symbols(SymbolsRequest { ..Default::default() }).await?;

    Ok(())

}

Response example

[
  {
    "value": 94836000000.0
  }
]

Rate limit

The base rate limit is 10 requests/min.



Get Symbol Names

Signature


pub async fn get_symbol_names( &self, req: SymbolsRequest, ) -> Result<Vec<SymbolName>, TigerError>

Description

Symbol names; same request as get_symbols.

Parameters

ParameterRust typeRequirementSDK default
req.marketOption<String>OptionalNone (omitted)
req.sec_typeOption<String>OptionalNone (omitted)
req.include_otcOption<bool>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<SymbolName>, TigerError>

FieldTypeDescription
symbolStringSymbol
nameStringName
marketStringMarket

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_symbol_names(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_symbol_names(SymbolsRequest { ..Default::default() }).await?;

    Ok(())

}

Response example

[
  {
    "symbol": "AAPL",
    "name": "Apple Inc",
    "market": "US"
  }
]

Rate limit

The base rate limit is 10 requests/min.


Get Trade Metas

Signature


pub async fn get_trade_metas( &self, req: TradeMetasRequest, ) -> Result<Vec<crate::model::quote::TradeMeta>, TigerError>

Description

Trading metadata; symbols required.

Parameters

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by the server; not prevalidated by the SDKNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<crate::model::quote::TradeMeta>, TigerError>

FieldTypeDescription
symbolStringSymbol
lot_sizei32Lot size
min_tickf64Minimum price increment
spread_scalef64Spread scale
shortable_flagStringShortable flag
marginable_flagStringMarginable flag

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_metas(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_trade_metas(TradeMetasRequest { symbols: Some(vec!["AAPL".into()]), ..Default::default() }).await?;

    Ok(())

}

Response example

[
  {
    "symbol": "AAPL",
    "lotSize": 1,
    "minTick": 0.01,
    "spreadScale": 1.0,
    "shortableFlag": "Y",
    "marginableFlag": "Y"
  }
]

Rate limit

The base rate limit is 60 requests/min.



Get Market Data Permissions

Signature


pub async fn get_quote_permission( &self, req: QuotePermissionRequest, ) -> Result<Vec<QuotePermission>, TigerError>

Description

Market data permission entries; date range optional.

Parameters

ParameterRust typeRequirementSDK default
req.begin_dateOption<String>OptionalNone (omitted)
req.end_dateOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<QuotePermission>, TigerError>

FieldTypeDescription
nameStringPermission name
expire_ati64Expiration time (ms timestamp)

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_permission(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_quote_permission(QuotePermissionRequest { ..Default::default() }).await?;

    Ok(())

}

Response example

[
  {
    "name": "usQuoteLevel2",
    "expireAt": 1767225600000
  }
]

Rate limit

The base rate limit is 10 requests/min.


Claim Market Data Device Access

Signature


pub async fn grab_quote_permission(&self) -> Result<Vec<QuotePermission>, TigerError>

Description

Claims market data device access for the current device and removes that device access from another device on the account. This operation does not purchase or grant new market data access. Takes no parameters.

Parameters

ParameterRust typeRequirementSDK default
none-Required by Rust typeNone

Return

Result<Vec<QuotePermission>, TigerError>

FieldTypeDescription
nameStringPermission name
expire_ati64Expiration time (ms timestamp)

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_grab_quote_permission(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.grab_quote_permission().await?;

    Ok(())

}

Response example

[
  {
    "name": "usQuoteLevel2",
    "expireAt": 1767225600000
  }
]

Rate limit

The base rate limit is 10 requests/min.


Get Kline Quota

Signature


pub async fn get_kline_quota( &self, req: KlineQuotaRequest, ) -> Result<Vec<KlineQuota>, TigerError>

Description

Bar quota; details omitted by default.

Parameters

ParameterRust typeRequirementSDK default
req.with_detailsOption<bool>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<KlineQuota>, TigerError>

FieldTypeDescription
methodStringQuota method
usedi32Used quota
quotai32Total quota
detailVec<KlineQuotaDetail>Quota details

detail elements (KlineQuotaDetail):

FieldTypeDescription
symbolStringSymbol
marketStringMarket
used_barsi32Used bar count
quota_barsi32Bar quota
last_accessi64Last access time (ms timestamp)

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_quota(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = quote.get_kline_quota(KlineQuotaRequest { ..Default::default() }).await?;

    Ok(())

}

Response example

[
  {
    "method": "kline",
    "used": 35,
    "quota": 500,
    "detail": [
      {
        "symbol": "AAPL",
        "market": "US",
        "usedBars": 5,
        "quotaBars": 500,
        "lastAccess": 1738180800000
      }
    ]
  }
]

Rate limit

The base rate limit is 10 requests/min.



Did this page help you?