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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| market | &str | Required by Rust type | None |
Return
Result<Vec<MarketState>, TigerError>
| Field | Type | Description |
|---|---|---|
| market | String | Market |
| market_status | String | Market status |
| status | String | Status code |
| open_time | String | Market 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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | Option<String> | Required by the server; not prevalidated by the SDK | None (omitted) |
| req.begin_date | Option<String> | Optional | None (omitted) |
| req.end_date | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<TradingCalendarItem>, TigerError>
| Field | Type | Description |
|---|---|---|
| market | String | Market |
| date | String | Date |
| is_trading | bool | Whether the date is a trading day |
| session_type | String | Trading 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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | Option<String> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.include_otc | Option<bool> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.market | Option<String> | Optional | None (omitted) |
| req.sec_type | Option<String> | Optional | None (omitted) |
| req.include_otc | Option<bool> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<SymbolName>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Symbol |
| name | String | Name |
| market | String | Market |
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
| 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<crate::model::quote::TradeMeta>, TigerError>
| Field | Type | Description |
|---|---|---|
| symbol | String | Symbol |
| lot_size | i32 | Lot size |
| min_tick | f64 | Minimum price increment |
| spread_scale | f64 | Spread scale |
| shortable_flag | String | Shortable flag |
| marginable_flag | String | Marginable 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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.begin_date | Option<String> | Optional | None (omitted) |
| req.end_date | Option<String> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<QuotePermission>, TigerError>
| Field | Type | Description |
|---|---|---|
| name | String | Permission name |
| expire_at | i64 | Expiration 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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| none | - | Required by Rust type | None |
Return
Result<Vec<QuotePermission>, TigerError>
| Field | Type | Description |
|---|---|---|
| name | String | Permission name |
| expire_at | i64 | Expiration 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
| Parameter | Rust type | Requirement | SDK default |
|---|---|---|---|
| req.with_details | Option<bool> | Optional | None (omitted) |
| req.lang | Option<String> | Optional | None (omitted) |
Return
Result<Vec<KlineQuota>, TigerError>
| Field | Type | Description |
|---|---|---|
| method | String | Quota method |
| used | i32 | Used quota |
| quota | i32 | Total quota |
| detail | Vec<KlineQuotaDetail> | Quota details |
detail elements (KlineQuotaDetail):
| Field | Type | Description |
|---|---|---|
| symbol | String | Symbol |
| market | String | Market |
| used_bars | i32 | Used bar count |
| quota_bars | i32 | Bar quota |
| last_access | i64 | Last 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.
Updated about 1 month ago
