browserbase 0.1.0

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

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

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

    println!("Listing all sessions...");
    let sessions = bb.sessions().list(ListSessionsParams::new()).await?;

    for session in &sessions {
        println!(
            "ID={} Status={}",
            session.id,
            session.status.as_deref().unwrap_or("?")
        );

        if session.status.as_deref() == Some("RUNNING")
            || session.status.as_deref() == Some("CREATED")
        {
            println!("  -> Releasing session...");
            bb.sessions()
                .update(
                    &session.id,
                    UpdateSessionRequest::new(&project_id, "REQUEST_RELEASE"),
                )
                .await?;
            println!("  -> Released");
        } else {
            println!("  -> Deleting session...");
            bb.sessions().delete(&session.id).await?;
            println!("  -> Deleted");
        }
    }

    println!("\nAll sessions cleaned up!");
    Ok(())
}