REST API · 200 free screenshots/month · No credit card
Capture pixel-perfect website screenshots from any URL in under 2 seconds. Full-page, custom viewports, element-level. PNG, JPEG, WebP, PDF. Built for developers who hate maintaining headless Chrome.
Same endpoint, same parameters. Drop it into any stack.
curl "https://captureapi.dev/api/v1/screenshot\ ?url=https://example.com\ &width=1280&height=720\ &fullPage=true&format=png" \ -H "X-API-Key: cap_your_key" \ -o screenshot.png
import requests
resp = requests.get(
"https://captureapi.dev/api/v1/screenshot",
params={
"url": "https://example.com",
"width": 1280, "height": 720,
"fullPage": True, "format": "png",
},
headers={"X-API-Key": "cap_your_key"},
)
with open("screenshot.png", "wb") as f:
f.write(resp.content)import fs from "node:fs";
const params = new URLSearchParams({
url: "https://example.com",
width: "1280", height: "720",
fullPage: "true", format: "png",
});
const res = await fetch(
`https://captureapi.dev/api/v1/screenshot?${params}`,
{ headers: { "X-API-Key": "cap_your_key" } },
);
fs.writeFileSync("screenshot.png", Buffer.from(await res.arrayBuffer()));Capture the entire scrollable page, not just the viewport. Auto-handles lazy-loaded images, infinite scroll triggers, and sticky headers.
Any width × height combination from mobile (320px) to 4K (3840px). Pre-set device profiles for iPhone, iPad, Android, desktop.
Pass a CSS selector to screenshot just one element. Perfect for chart exports, social-card previews, or component testing.
PNG (lossless), JPEG (small files), WebP (modern), PDF (multi-page documents). Quality control on JPEG/WebP from 1 to 100.
Wait for network idle, a specific selector, or a custom JavaScript condition before capture. Eliminates flaky screenshots.
Inject cookies, localStorage, or basic auth headers to screenshot logged-in pages, dashboards, or member-only content.
Built-in ad blocker and cookie banner dismisser. Get clean marketing screenshots without manual cropping.
Screenshot from US, EU, or APAC origin to capture geo-targeted content correctly.
Generate Open Graph images on demand from a template URL. Replaces server-side puppeteer with a 50ms HTTP call. See our /blog/og-images-guide for the full pattern.
Drop CaptureAPI into Playwright or Cypress to grab pixel-stable screenshots from a clean cloud environment. No more flaky local screenshots due to font rendering or zoom level.
Render an HTML invoice, quote, or report into a paginated PDF in one call. No headless Chrome on your servers, no Puppeteer maintenance.
Auto-generate website thumbnails for directory listings, blog cards, or competitor monitoring dashboards.
Capture before/after screenshots when running Lighthouse, axe, or other audit tools. Export them to client reports.
Take screenshots inside CI/CD pipelines without provisioning Selenium grids or maintaining headless browser containers.
Compared to the most-cited alternatives at our launch volume tier.
| Provider | Entry price | Notes |
|---|---|---|
| CaptureAPI (us) | $9/mo for 5k | 200 free/month, full Chromium, PDF + WebP included. |
| Urlbox | $9/mo for 1k | We match the price, deliver 200 free vs none. |
| ScreenshotOne | $17/mo for 2k | We're 47% cheaper at the same volume. |
| ApiFlash | $29/mo for 1k | Same volume, 1/3 the price. |
| Browserless | $50/mo (BYO Puppeteer) | We're a managed REST API, no Puppeteer code. |
| Roll your own (AWS Lambda + Puppeteer) | ~$30/mo + maintenance | We handle Chromium upgrades, IP rotation, queue scaling. |
Prices verified May 2026 from each provider's public pricing page. Volumes equalized to ~5,000 screenshots/month.
A screenshot API is an HTTP service that takes a URL or HTML payload and returns an image (PNG, JPEG, WebP) or PDF rendered by a real browser. It removes the need to run headless Chromium yourself, manage memory leaks, rotate IPs to avoid bot blocks, or queue concurrent requests.
Median response time is under 2 seconds for a typical 1280x720 PNG of a public marketing page. Heavy SPAs with many third-party scripts can take 4-6 seconds; pages behind CDNs in your region typically resolve in 1.2 seconds.
Yes. Pass cookies, localStorage values, or basic-auth headers in the request body. We support session cookies, Authorization Bearer tokens, and custom headers. We never store auth material between requests.
Yes. Every capture runs in a real Chromium 130+ instance with full JavaScript, WebGL, web fonts, and modern CSS support. You can also disable JavaScript per-request if you need a fast static snapshot.
Screenshots return a single image at the captured viewport. PDFs return a paginated document, optionally multi-page, with print-friendly CSS applied. Use screenshots for cards and previews; use PDFs for invoices, reports, and printable documents.
Yes — 200 screenshots per month at 720p, PNG only, with a small CaptureAPI watermark. No credit card required to start. Paid plans from $9/month remove the watermark, raise the resolution to 4K, add PDF / WebP / JPEG, and lift rate limits.
Yes. Pass cache_ttl (1-86400 seconds) and we'll return the cached image at zero cost on subsequent identical requests. Default cache is 0 (always fresh).
We rotate residential and datacenter IPs across multiple regions, use realistic browser fingerprints, and respect robots.txt by default. For sites that aggressively block automation, switch on the stealth flag (paid plans).
Get a free API key in 30 seconds, take 200 screenshots/month forever, scale to 100k for $79.