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);
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
);
}
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(())
}