market/
market_example.rs

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