Crate screenshotbase_sdk

Crate screenshotbase_sdk 

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

Modulesยง

client
error
types