BrowserGrab
PricingDocs

Chrome Extension

BrowserGrab for Chrome

Capture any tab with Alt+Shift+S. Annotate in Studio. No API key needed.

Free on Chrome Web Store
NewBulk Screenshots — capture up to 20 URLs in one API call
Screenshot Infrastructure for Developers

Capture
Any Page

Point it at any URL. Get back a flawless screenshot. No browser setup, no infrastructure — just clean, pixel-perfect results in milliseconds.

Read the docs
BrowserGrab API - Screenshot anything—quick, clean, and effortless | Product Hunt
POST /api/screenshot200 OK · 1.3s

Request

{
  "url": "https://example.com",
  "format": "webp",
  "width": 1280,
  "height": 800,
  "fullPage": false
}

Response

{
  "success": true,
  "data": {
    "url": "https://cdn.browsergrab.app/…",
    "format": "webp"
  }
}

stripe.com captured

0.7s · 1280×800 · webp

just now

No credit card required  ·  100 free screenshots / month

<2s

Avg capture time

99.9%

API uptime

4K

Max resolution

20×

Bulk per request

— How it works

Everything you need to capture the web

REST API, TypeScript SDK, Chrome Extension — pick the integration that fits your workflow.

One endpoint. Any website.

POST to /api/screenshot with your API key and a URL. We spin up a headless Chromium instance, render the page fully, and return a screenshot — in under 2 seconds.

  • Handles JavaScript-heavy SPAs and CSR apps
  • Custom viewport, full-page, and waitFor delays
  • PNG, JPEG, and WebP output formats
  • Credits only charged on successful captures
bash
curl -X POST https://browsergrab.app/api/screenshot \
  -H "Authorization: Bearer bg_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://github.com",
    "width": 1440,
    "height": 900,
    "format": "webp",
    "fullPage": true
  }'

// Response
{
  "success": true,
  "data": {
    "url": "https://cdn.browsergrab.app/abc123.webp",
    "width": 1440,
    "height": 5200,
    "format": "webp",
    "storage": "cloud"
  }
}

— Capabilities

Powerful by default

Up to 4K Resolution

Capture up to 3840×2160 with 2× Retina HiDPI rendering on Super. Standard HD up to 1920×1080 on free.

Dark Mode Emulation

Force prefers-color-scheme: dark before capturing. Perfect for showcasing your UI in both themes.

Ad & Tracker Blocking

Block common ad networks and trackers for clean, distraction-free screenshots of any page.

Smart Billing

DNS errors, blank pages, and timeouts are never charged. Credits only consumed on a real screenshot.

Flexible Storage

Cloud CDN URL, Google Drive file, or inline base64 — choose the storage destination per request.

PNG · JPEG · WebP

All three formats supported. Set quality 1–100 for JPEG and WebP to balance size and fidelity.

— Why developers choose BrowserGrab

Built for real workflows

From OG image generation to compliance archiving — BrowserGrab fits into the tools you already ship.

Marketing & SaaS

Open Graph Image Generation

Auto-generate og:image previews for every blog post, product page, or dashboard link. Capture a rendered HTML template and serve the CDN URL as your meta tag — no design tools needed.

See how →

QA & Engineering

Visual Regression Testing

Capture a baseline screenshot of every page in your app. On each deployment, diff against the baseline and catch layout regressions before your users do — without spinning up a browser farm.

Read the docs →

Monitoring & Ops

Website Change Monitoring

Schedule screenshots of competitor pages, status pages, or your own production UI. Store them to cloud and alert when the visual diff crosses a threshold — a dead-simple uptime eye.

View pricing →

Business Intelligence

Competitive Intelligence

Programmatically snapshot competitor landing pages, pricing tables, and ad creative at scale. Feed screenshots into your AI pipeline to extract insights without manual browsing.

Try bulk API →

E-commerce

Product & Catalog Screenshots

Capture product pages from supplier or affiliate URLs at scale and embed the screenshot directly into your catalog. Build rich visual search indexes without manual photography.

View SDK →

Legal & Compliance

Web Archiving & Evidence

Capture timestamped, pixel-perfect screenshots of web content for compliance audits, DMCA notices, or legal evidence. Store to cloud CDN with immutable URLs and creation timestamps.

Start free →

— Annotation Studio

Capture, then annotate

BrowserGrab Studio lets you draw, highlight, blur, and label directly on any screenshot — no Figma, no Photoshop. Open any cloud screenshot in Studio with one click.

Freehand pen

Draw at any size & color

Shapes & arrows

Rect, ellipse, arrow tool

Text labels

Click to annotate anywhere

Blur & highlight

Redact or call out regions

BrowserGrab StudioPenArrowRectTextBlur
Fix this CTA!
[blurred]
60 undo steps · Export PNGCanvas ready

— New Feature

Just shipped

Capture at scale

Send up to 20 URLs in a single request. Each URL captures concurrently and counts as one credit — no batching logic on your end.

20URLs per request
1API call
Concurrent captures
1:1Credit per URL
Before — 3 separate calls
// ❌ 3 requests, 3 round-trips
await fetch("/api/screenshot", {
  body: JSON.stringify({
    url: "https://stripe.com"
  })
});

await fetch("/api/screenshot", {
  body: JSON.stringify({
    url: "https://github.com"
  })
});

await fetch("/api/screenshot", {
  body: JSON.stringify({
    url: "https://vercel.com"
  })
});
After — 1 bulk call3 captured · 200 OK
// ✅ 1 request, captured concurrently
await fetch("/api/screenshot", {
  body: JSON.stringify({
    urls: [
      "https://stripe.com",
      "https://github.com",
      "https://vercel.com",
      // ...up to 20
    ],
    format: "png",
    storage: "cloud"
  })
});
Bulk response200 OK
{
  "success": true,
  "count": 3, "captured": 3,
  "results": [
    {
      "url": "https://stripe.com",
      "success": true,
      "data": { "url": "https://cdn..." }
    },
    // ... 2 more results
  ]
}

Failed URLs don't block the batch

If one URL fails (DNS error, blank page), the rest still capture. Failed captures are not charged.

Comma-separated shorthand

Send "url": "a.com,b.com,c.com" as a shortcut — no array needed.

Works in the dashboard tester

Paste multiple URLs separated by commas or newlines in the Screenshot Tester to try it right now.

— Pricing

Simple, transparent

Start free. Upgrade when you need more power.

Free
$0/month

Test the waters

  • 50 screenshots / month
  • Up to 1920 × 1080
  • PNG, JPEG, WebP
  • Base64 / local only
  • REST API + SDK
Get started free
Basic
$4.99/month

For personal projects

  • 500 screenshots / month
  • Up to 1920 × 1080
  • 1 GB Cloud CDN storage
  • PNG, JPEG, WebP
  • REST API + SDK
Start Basic
Most Popular
Super
$9.99/month

For indie devs & small teams

  • 5,000 screenshots / month
  • Up to 4K (3840 × 2160)
  • 15 GB Cloud CDN storage
  • Google Drive integration
  • 2× Retina / HiDPI
  • Dark mode · Ad blocking
  • Priority support
Start with Super
For Teams
Pro
$39/month

High-volume production

  • 25,000 screenshots / month
  • Up to 4K (3840 × 2160)
  • 100 GB Cloud CDN storage
  • Google Drive integration
  • 2× Retina / HiDPI
  • Dark mode · Ad blocking
  • Priority support
Start with Pro

Need more than 25,000 screenshots/month? Contact us for enterprise plans.

Postman Collection

Every endpoint pre-wired

Import our ready-to-run Postman collection. All endpoints, example bodies, and real responses — run them immediately without writing a line of code.

Open in Postman

TypeScript SDK

Zero dependencies

Install the official npm package and start capturing in seconds. Full TypeScript types, auto-retry, and typed error codes built in.

npm install browsergrab
View SDK

— Get started today

Ready to
build?

15 free screenshots. No credit card required.

Read the docs