Screenshot API

Screenshot API — Full-page, Element & Multi-device

POST a URL, get a PNG, JPEG or WebP back. Full-page, element-cropped, mobile, tablet or desktop. JS-rendered, anti-bot ready.

  • fullPage: true for the whole scroll, or selector: ".price" for a single element.
  • Multi-device presets: iphone-15, pixel-8, ipad-pro, desktop-1440.
  • Dark-mode and reduced-motion toggles for design-system snapshot tests.
  • Returns image directly OR a signed URL for downstream pipelines.
screenshot.shcURL
curl -X POST https://api.browserforhire.com/screenshot \
  -H "Authorization: Bearer $BFH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "fullPage": true,
    "device": "iphone-15",
    "darkMode": true,
    "format": "webp",
    "quality": 90
  }' \
  --output example-iphone-dark.webp

What you get

Pixel-perfect captures

Full-page scroll-stitch, element clipping, transparent backgrounds, dark mode, custom CSS injection.

Real device viewports

Pixel-accurate device emulation including DPR, touch events, user-agent, viewport, and locale.

Pipeline-friendly

Sync (binary response) or async (signed URL + webhook). Uploads directly to your S3 bucket if you want.

FAQ

How is this different from a free Puppeteer screenshot?+
You get JS rendering at scale, anti-bot bypass on protected sites, multi-device presets, signed-URL delivery, and webhook callbacks. No Chrome to manage.
Can I screenshot pages behind a login?+
Yes. Pass session=<id> to reuse an authenticated browser context across calls, or pass cookies inline for one-shot captures.

Ship Chrome to production today.

Free 1,000 credits, no credit card. Drop-in replacement for Browserless.