browserbase 0.1.0

Rust SDK for Browserbase - cloud browser automation platform
Documentation
use browserbase::{
    Browserbase,
    models::{CreateSessionRequest, ListSessionsParams},
};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("BROWSERBASE_API_KEY").expect("BROWSERBASE_API_KEY must be set");
    let project_id =
        std::env::var("BROWSERBASE_PROJECT_ID").expect("BROWSERBASE_PROJECT_ID must be set");

    let bb = Browserbase::new(api_key)?;

    println!("Testing SDK with project: {}", project_id);

    // List existing sessions
    println!("\nListing sessions...");
    let sessions = bb.sessions().list(ListSessionsParams::new()).await?;
    println!("Found {} sessions:", sessions.len());
    for (i, s) in sessions.iter().enumerate().take(5) {
        println!(
            "  {}. ID={} Status={} Created={:?}",
            i + 1,
            s.id,
            s.status.as_deref().unwrap_or("?"),
            s.created_at
        );
    }

    // Try to create a session
    println!("\nCreating session...");
    match bb
        .sessions()
        .create(CreateSessionRequest::new(&project_id))
        .await
    {
        Ok(session) => {
            println!("Success! Session created:");
            println!("  ID: {}", session.id);
            println!("  Status: {:?}", session.status);
            println!("  Connect URL: {:?}", session.connect_url);
        }
        Err(e) => {
            println!("Failed to create session: {}", e);
        }
    }

    Ok(())
}