Expand description
screenshotbase
A Rust client for the screenshotbase.com API. It provides:
- API status retrieval
- Website screenshot capture to image/PDF bytes
The API reference: https://screenshotbase.com/docs/
Authentication is performed via the X-API-Key header and also appended
as a query parameter api_key for compatibility.
By default this crate exposes async APIs via reqwest. Enable the blocking
feature to also use a synchronous client.
Basic async usage:
let api_key = std::env::var("SCREENSHOTBASE_API_KEY")?;
let client = screenshotbase_sdk::client::ScreenshotbaseClient::new(api_key)?;
// Status
let status = client.get_status().await?;
println!("Plan: {:?}", status.plan);
// Take a screenshot
let result = client.take_screenshot(
"https://example.com",
screenshotbase_sdk::types::RenderOptions {
format: Some(screenshotbase_sdk::types::ImageFormat::Png),
full_page: Some(true),
width: Some(1280),
height: Some(800),
..Default::default()
}
).await?;
println!("Content-Type: {:?}", result.content_type);
println!("Received {} bytes", result.bytes.len());Blocking usage (enable blocking feature):
{
let api_key = std::env::var("SCREENSHOTBASE_API_KEY")?;
let client = screenshotbase_sdk::client::ScreenshotbaseBlockingClient::new(api_key)?;
let status = client.get_status()?;
println!("Plan: {:?}", status.plan);
let _bytes = client.take_screenshot(
"https://example.com",
screenshotbase_sdk::types::RenderOptions::default()
)?;
}