REST API · 200 free screenshots/month · No credit card
Screenshot API That Just Works
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.
One HTTP call. Three languages.
Same endpoint, same parameters. Drop it into any stack.
cURL
curl "https://captureapi.dev/api/v1/screenshot\ ?url=https://example.com\ &width=1280&height=720\ &full_page=true&format=png" \ -H "X-API-Key: cap_your_key" \ -o screenshot.png
Python
import requests
resp = requests.get(
"https://captureapi.dev/api/v1/screenshot",
params={
"url": "https://example.com",
"width": 1280, "height": 720,
"full_page": True, "format": "png",
},
headers={"X-API-Key": "cap_your_key"},
)
with open("screenshot.png", "wb") as f:
f.write(resp.content)Node.js / TypeScript
import fs from "node:fs";
const params = new URLSearchParams({
url: "https://example.com",
width: "1280", height: "720",
full_page: "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()));Everything a serious screenshot API needs
Full-page screenshots
Capture the entire scrollable page, not just the viewport. Auto-handles lazy-loaded images, infinite scroll triggers, and sticky headers.
Custom viewports
Any width × height combination from mobile (320px) to 4K (3840px). Pre-set device profiles for iPhone, iPad, Android, desktop.
Element capture
Pass a CSS selector to screenshot just one element. Perfect for chart exports, social-card previews, or component testing.
Multiple formats
PNG (lossless), JPEG (small files), WebP (modern), PDF (multi-page documents). Quality control on JPEG/WebP from 1 to 100.
Wait conditions
Wait for network idle, a specific selector, or a custom JavaScript condition before capture. Eliminates flaky screenshots.
Cookie + auth support
Inject cookies, localStorage, or basic auth headers to screenshot logged-in pages, dashboards, or member-only content.
Block ads + cookies
Built-in ad blocker and cookie banner dismisser. Get clean marketing screenshots without manual cropping.
Geo-routed regions
Screenshot from US, EU, or APAC origin to capture geo-targeted content correctly.
Common screenshot API use cases
Social card generation
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.
Visual regression testing
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.
PDF document generation
Render an HTML invoice, quote, or report into a paginated PDF in one call. No headless Chrome on your servers, no Puppeteer maintenance.
Marketing thumbnails
Auto-generate website thumbnails for directory listings, blog cards, or competitor monitoring dashboards.
SEO + accessibility audits
Capture before/after screenshots when running Lighthouse, axe, or other audit tools. Export them to client reports.
QA automation
Take screenshots inside CI/CD pipelines without provisioning Selenium grids or maintaining headless browser containers.
Screenshot API pricing comparison
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.
Frequently asked questions
What is a screenshot API?v
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.
How fast is CaptureAPI?v
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.
Can I screenshot a logged-in page?v
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.
Does CaptureAPI render JavaScript?v
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.
What's the difference between screenshot and PDF?v
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.
Is there a free tier?v
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.
Can I cache screenshots?v
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).
How do you handle bot blocking?v
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).
Stop maintaining Puppeteer.
Get a free API key in 30 seconds, take 200 screenshots/month forever, scale to 100k for $79.