market/
market_example.rs

1use bybit_rust_api::rest::enums::category::Category;
2use bybit_rust_api::rest::enums::interval::Interval;
3use bybit_rust_api::rest::{ApiKeyPair, MarketClient, RestClient};
4
5#[tokio::main]
6async fn main() -> anyhow::Result<()> {
7    // Create API key pair (for public endpoints, you can use empty strings)
8    let api_key_pair = ApiKeyPair::new("default".to_string(), "".to_string(), "".to_string());
9
10    // Create REST client
11    let rest_client = RestClient::new(api_key_pair, "https://api.bybit.com".to_string());
12
13    // Create Market client
14    let market_client = MarketClient::new(rest_client);
15
16    // Get server time
17    println!("Getting server time...");
18    let server_time = market_client.get_server_time().await?;
19    println!("Server time: {:?}", server_time.result);
20
21    // Get BTC/USDT kline data for spot market
22    println!("\nGetting BTC/USDT kline data...");
23    let kline_data = market_client
24        .get_kline(
25            Category::Spot,
26            "BTCUSDT",
27            Interval::OneHour,
28            None,
29            None,
30            Some(10),
31        )
32        .await?;
33    println!("Kline data count: {}", kline_data.result.list.len());
34
35    // Get orderbook
36    println!("\nGetting BTC/USDT orderbook...");
37    let orderbook = market_client
38        .get_orderbook(Category::Spot, "BTCUSDT", Some(5))
39        .await?;
40    println!("Orderbook: {:?}", orderbook.result);
41
42    // Get tickers
43    println!("\nGetting tickers...");
44    let tickers = market_client
45        .get_tickers(Category::Spot, Some("BTCUSDT"), None, None)
46        .await?;
47    println!("Tickers: {:?}", tickers.result);
48
49    Ok(())
50}