Skip to content

Use cases · Screenshot API

What teams build with the Screenshot API

From regulatory archives to visual QA — real workflows, with the exact parameters to use.

Use case 01

Compliance archiving

Keep a verifiable, timestamped record of what your website, ads or partner pages showed on a given day.

The challenge

Regulated industries must prove which disclosures, prices and terms were displayed. Manual screenshots are inconsistent and impossible to scale.

How it works

Schedule full-page PDF captures of every critical page, upload them straight to your own bucket with write-once retention, and index them by date.

  • format=pdf
  • full_page=true
  • s3_bucket
  • s3_url=true
curl -G "https://api.screenshotdude.com/v1/capture" \
  --data-urlencode "url=https://bank.example/terms" \
  -d format=pdf -d full_page=true \
  -d s3_bucket=compliance-archive -d s3_region=eu-west-1 \
  -d s3_object_key=terms/2026-11-09.pdf -d s3_url=true \
  --data-urlencode "s3_access_key_id=$AWS_KEY" \
  --data-urlencode "s3_secret_key=$AWS_SECRET" \
  -H "x-api-key: $SCREENSHOTDUDE_API_KEY"
Use case 02

Marketing previews & link cards

Generate thumbnails for link previews, directories, portfolios and social cards automatically.

The challenge

User-submitted URLs need a visual preview, but many sites have no og:image or one that doesn't represent the page.

How it works

Capture a 1200×630 viewport as WebP, cache it for a week and serve it from your CDN. Cookie banners and ads are removed for a clean look.

  • viewport_width=1200
  • viewport_height=630
  • format=webp
  • cache=true
  • remove_cookie_banners
curl -G "https://api.screenshotdude.com/v1/capture" \
  --data-urlencode "url=https://startup.example" \
  -d viewport_width=1200 -d viewport_height=630 \
  -d format=webp -d image_quality=80 \
  -d remove_cookie_banners=true -d remove_ads=true \
  -d cache=true -d cache_ttl=604800 \
  -H "x-api-key: $SCREENSHOTDUDE_API_KEY" -o card.webp
Use case 03

Automated bug reporting

Attach a screenshot of the exact page to every error report, uptime alert or support ticket.

The challenge

"It looks broken" is hard to reproduce. Engineers waste time guessing what the user or monitor actually saw.

How it works

When your monitoring detects an error, fire an async capture with a webhook. The signed webhook delivers the finished job, which you attach to the incident.

  • is_async=true
  • webhook_url
  • full_page=true
curl -G "https://api.screenshotdude.com/v1/capture" \
  --data-urlencode "url=https://app.example/checkout" \
  -d full_page=true -d is_async=true \
  --data-urlencode "webhook_url=https://ops.example/hooks/screenshotdude" \
  -H "x-api-key: $SCREENSHOTDUDE_API_KEY"
# → 202 { "job_id": "job_…" }
Use case 04

Live documentation

Keep product screenshots in your docs, help center and changelog in sync with the real UI.

The challenge

Screenshots in documentation go stale after every release, and retaking them by hand is tedious.

How it works

Run captures in CI after each deploy. Target individual components with selector, render at 2× for retina screens and in dark mode for themed docs.

  • selector
  • scale_factor=2
  • dark_mode=true
  • wait_for_selector
curl -G "https://api.screenshotdude.com/v1/capture" \
  --data-urlencode "url=https://app.example/dashboard" \
  --data-urlencode "selector=#usage-chart" \
  --data-urlencode "wait_for_selector=#usage-chart svg" \
  -d scale_factor=2 -d dark_mode=true \
  --data-urlencode 'cookies=[{"name":"session","value":"demo"}]' \
  -H "x-api-key: $SCREENSHOTDUDE_API_KEY" -o docs/usage-chart.png
Use case 05

Visual regression across devices

Catch layout regressions on phones and tablets before your users do.

The challenge

Testing every page on every device by hand doesn't scale, and local device emulators drift from reality.

How it works

Capture key pages on several device profiles in parallel and diff them against a baseline in your CI pipeline.

  • device=iphone_14_pro
  • device=galaxy_s23
  • device=ipad
  • full_page=true
for d in iphone_14_pro galaxy_s23 ipad; do
  curl -sG "https://api.screenshotdude.com/v1/capture" \
    --data-urlencode "url=https://staging.example" \
    -d device=$d -d full_page=true \
    -H "x-api-key: $SCREENSHOTDUDE_API_KEY" -o "shots/$d.png" &
done; wait
Use case 06

A/B test validation

Verify that every experiment variant renders correctly before you send traffic to it.

The challenge

A broken variant can silently skew results for days. Variants are often hidden behind cookies or query parameters.

How it works

Force each variant with a cookie or header, capture it on desktop and mobile, and review the set before launch.

  • cookies
  • headers
  • device
  • wait_until=networkidle0
curl -G "https://api.screenshotdude.com/v1/capture" \
  --data-urlencode "url=https://shop.example/pricing" \
  --data-urlencode 'cookies=[{"name":"exp_pricing","value":"variant_b"}]' \
  -d wait_until=networkidle0 -d full_page=true \
  -H "x-api-key: $SCREENSHOTDUDE_API_KEY" -o variant-b.png

Start capturing in minutes

Create a free account and get 100 free screenshots every month. No credit card required.