Securities

get_real_time_quote

Signature


pub async fn get_real_time_quote(&self, req: BriefRequest) -> Result<Vec<Brief>, TigerError>

Description

Real-time snapshot; symbols required; hour trading, security type, and language omitted by default. Requires matching quote permission.

Deprecated alias: get_brief forwards to this method and has been marked #[deprecated] in the SDK since 0.5.1. It adds no behavior. Use get_real_time_quote in new code.

Parameters

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.include_hour_tradingOption<bool>OptionalNone (omitted)
req.sec_typeOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<Brief>, TigerError>

FieldTypeDescription
symbolStringStock symbol
openf64Open price
highf64High price
lowf64Low price
closef64Close price
pre_closef64Previous close
latest_pricef64Latest price
latest_timei64Latest trade time (ms timestamp)
ask_pricef64Ask price
ask_sizei64Ask size
bid_pricef64Bid price
bid_sizei64Bid size
volumei64Volume
statusStringTrading status
adj_pre_closef64Adjusted previous close
changef64Price change
change_ratef64Change rate
amplitudef64Amplitude
expiryStringExpiry date
strikeStringStrike price
rightStringOption direction
multiplieri32Contract multiplier
open_interesti64Open 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,
    "pre_close": 192.53,
    "latest_price": 195.5,
    "latest_time": 1738180800000
  }
]

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_briefs forwards to this method and has been marked #[deprecated] in the SDK since 0.5.1. It adds no behavior. Use get_delayed_quote in new code.

Parameters

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.sec_typeOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<Brief>, TigerError>

FieldTypeDescription
symbolStringStock symbol
openf64Open price
highf64High price
lowf64Low price
closef64Close price
pre_closef64Previous close
latest_pricef64Latest price
latest_timei64Latest trade time (ms timestamp)
ask_pricef64Ask price
ask_sizei64Ask size
bid_pricef64Bid price
bid_sizei64Bid size
volumei64Volume
statusStringTrading status
adj_pre_closef64Adjusted previous close
changef64Price change
change_ratef64Change rate
amplitudef64Amplitude
expiryStringExpiry date
strikeStringStrike price
rightStringOption direction
multiplieri32Contract multiplier
open_interesti64Open 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,
    "pre_close": 192.53,
    "latest_price": 195.5,
    "latest_time": 1738180800000
  }
]

get_kline

Signature


pub async fn get_kline(&self, req: KlineRequest) -> Result<Vec<Kline>, TigerError>

Description

Bars; symbols and period required; adjustment, millisecond range, indexes, limit, token, and session optional.

Parameters

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.periodOption<String>Required by server; SDK does not pre-validateNone (omitted)
req.rightOption<String>OptionalNone (omitted)
req.begin_timeOption<i64>OptionalNone (omitted)
req.end_timeOption<i64>OptionalNone (omitted)
req.limitOption<i32>OptionalNone (omitted)
req.begin_indexOption<i32>OptionalNone (omitted)
req.end_indexOption<i32>OptionalNone (omitted)
req.page_tokenOption<String>OptionalNone (omitted)
req.trade_sessionOption<String>OptionalNone (omitted)
req.dateOption<String>OptionalNone (omitted)
req.with_fundamentalOption<bool>OptionalNone (omitted)
req.sec_typeOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<Kline>, TigerError>

FieldTypeDescription
symbolStringStock symbol
periodStringPeriod
next_page_tokenStringNext page token
itemsVecData items

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",
    "next_page_token": "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
      }
    ]
  }
]

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

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>OptionalNone (omitted)
req.periodOption<String>OptionalNone (omitted)
req.begin_timeOption<i64>OptionalNone (omitted)
req.end_timeOption<i64>OptionalNone (omitted)
req.total_sizeOption<i32>Optional1000 when None
req.page_sizeOption<i32>Optional200 when None
req.rightOption<String>OptionalNone (omitted)
req.trade_sessionOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<KlineItem>, TigerError>

FieldTypeDescription
timei64Timestamp
volumei64Volume
openf64Open price
closef64Close price
highf64High price
lowf64Low price
amountf64Turnover 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 { ..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
  }
]

get_timeline

Signature


pub async fn get_timeline(&self, symbols: &[&str]) -> Result<Vec<Timeline>, TigerError>

Description

v3 intraday timeline; symbols must be nonempty.

Parameters

ParameterRust typeRequirementSDK default
symbols&[&str]RequiredNone

Return

Result<Vec<Timeline>, TigerError>

FieldTypeDescription
symbolStringStock symbol
periodStringPeriod
pre_closef64Previous close
intradayOptionIntraday timeline data
pre_hoursOptionPre-market timeline data
after_hoursOptionAfter-hours timeline data

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",
    "pre_close": 192.53,
    "intraday": null,
    "pre_hours": null,
    "after_hours": null
  }
]

get_timeline_history

Signature


pub async fn get_timeline_history( &self, req: TimelineHistoryRequest, ) -> Result<Vec<Timeline>, TigerError>

Description

Historical timeline; symbols required; date, adjustment, session optional.

Parameters

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.dateOption<String>OptionalNone (omitted)
req.rightOption<String>OptionalNone (omitted)
req.trade_sessionOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<Timeline>, TigerError>

FieldTypeDescription
symbolStringStock symbol
periodStringPeriod
pre_closef64Previous close
intradayOptionIntraday timeline data
pre_hoursOptionPre-market timeline data
after_hoursOptionAfter-hours timeline data

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",
    "pre_close": 192.53,
    "intraday": null,
    "pre_hours": null,
    "after_hours": null
  }
]

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

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.begin_indexOption<i32>OptionalNone (omitted)
req.end_indexOption<i32>OptionalNone (omitted)
req.limitOption<i32>OptionalNone (omitted)
req.trade_sessionOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<TradeTick>, TigerError>

FieldTypeDescription
symbolStringStock symbol
begin_indexi64Begin index
end_indexi64End index
itemsVecData items

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",
    "begin_index": 0,
    "end_index": 30,
    "items": [
      {
        "time": 1738180750000,
        "price": 195.5,
        "volume": 100,
        "type": "+"
      },
      {
        "time": 1738180745000,
        "price": 195.49,
        "volume": 50,
        "type": "-"
      }
    ]
  }
]

get_quote_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

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.marketOption<String>OptionalNone (omitted)
req.trade_sessionOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<Depth>, TigerError>

FieldTypeDescription
symbolStringStock symbol
asksVecAsk levels
bidsVecBid levels

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
      }
    ]
  }
]

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

ParameterRust typeRequirementSDK default
req.symbolOption<String>Required by server; SDK does not pre-validateNone (omitted)
req.limitOption<i32>OptionalNone (omitted)
req.sec_typeOption<String>OptionalNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Option<StockBroker>, TigerError>

FieldTypeDescription
symbolStringStock symbol
level_ask_listVecBroker ask levels
level_bid_listVecBroker bid levels

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",
  "level_ask_list": [
    {
      "level": 1,
      "broker_count": 3,
      "broker_ids": [
        "5860",
        "4374",
        "6998"
      ]
    }
  ],
  "level_bid_list": [
    {
      "level": 1,
      "broker_count": 2,
      "broker_ids": [
        "6998",
        "4374"
      ]
    }
  ]
}

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

ParameterRust typeRequirementSDK default
symbol&strRequired by Rust typeNone
market&strRequired by Rust typeNone
period&strRequired by Rust typeNone

Return

Result<Option<CapitalFlow>, TigerError>

FieldTypeDescription
symbolStringStock symbol
periodStringPeriod
itemsVecData items

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
    }
  ]
}

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

ParameterRust typeRequirementSDK default
symbol&strRequired by Rust typeNone
market&strRequired by Rust typeNone

Return

Result<Option<CapitalDistribution>, TigerError>

FieldTypeDescription
symbolStringStock symbol
net_inflowf64Net inflow
in_allf64Total inflow
in_bigf64Large order inflow
in_midf64Medium order inflow
in_smallf64Small order inflow
out_allf64Total outflow
out_bigf64Large order outflow
out_midf64Medium order outflow
out_smallf64Small 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",
  "net_inflow": -52340018.55,
  "in_all": 2850000000.0,
  "in_big": 1520000000.0,
  "in_mid": 830000000.0,
  "in_small": 500000000.0,
  "out_all": 2902340018.55,
  "out_big": 1600000000.0
}

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

ParameterRust typeRequirementSDK default
req.symbolsOption<Vec<String>>Required by server; SDK does not pre-validateNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<ShortInterest>, TigerError>

FieldTypeDescription
symbolStringStock symbol
settlement_dateStringSettlement date
short_interestf64Short interest shares
avg_daily_volumef64Average daily volume
days_to_coverf64Days to cover
percent_of_floatf64Percent of float
short_interest_previousf64Previous short interest
percent_changef64Percent 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",
    "settlement_date": "2025-01-15",
    "short_interest": 98520000.0,
    "avg_daily_volume": 58263100.0,
    "days_to_cover": 1.69,
    "percent_of_float": 0.64,
    "short_interest_previous": 95130000.0,
    "percent_change": 3.56
  }
]

get_trade_rank

Signature


pub async fn get_trade_rank( &self, req: TradeRankRequest, ) -> Result<Vec<TradeRankItem>, TigerError>

Description

Trading ranking; market required.

Parameters

ParameterRust typeRequirementSDK default
req.marketOption<String>Required by server; SDK does not pre-validateNone (omitted)
req.langOption<String>OptionalNone (omitted)

Return

Result<Vec<TradeRankItem>, TigerError>

FieldTypeDescription
symbolStringStock symbol
nameStringName
latest_pricef64Latest price
changef64Price change
change_ratef64Change rate
volumei64Volume
amountf64Turnover 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",
    "latest_price": 195.5,
    "change": 2.97,
    "change_rate": 0.0154,
    "volume": 58263100,
    "amount": 11329847520.0
  }
]


Did this page help you?