How It Works
SnapAPI renders screenshots using a real Chromium browser instance. Every request spins up a headless Chrome session, navigates to your target URL, waits for the page to fully render (including JavaScript, CSS, and web fonts), then captures the viewport as an image.
The API is a single REST endpoint that accepts query parameters for URL, format, dimensions, and rendering options. Authentication is via a Bearer token in the Authorization header. The response is the raw binary image data with appropriate content-type headers.
curl -H "Authorization: Bearer snap_your_key" \
"https://apisnap.dev/api/screenshot?url=https://example.com&format=png&width=1280&height=800" \
-o screenshot.png
Average response time is under 2 seconds for most pages. The API handles JavaScript-heavy SPAs, CSS animations, custom fonts, and responsive layouts just like a real browser would.
Output Formats
SnapAPI supports three output formats to match your use case:
- PNG (default) — Lossless quality, ideal for UI screenshots, visual testing, and archival. Larger file sizes but pixel-perfect reproduction.
- JPEG — Lossy compression with adjustable quality (1-100). Best for thumbnails, social media previews, and bandwidth-sensitive applications.
- PDF — Full-page document capture. Perfect for generating printable reports, invoices, and documentation from web pages.
Set the format via the format query parameter. For JPEG, use the quality parameter to control compression (default: 80).
Start Capturing Screenshots Today
100 free screenshots per month. No credit card required. API key delivered instantly.
Get Started FreeRendering Options
Fine-tune your screenshots with these parameters:
- width / height — Viewport dimensions (320-3840px). Default: 1280x800.
- full_page — Capture the entire scrollable page, not just the viewport.
- dark_mode — Emulate
prefers-color-scheme: darkfor sites with dark mode support. - delay — Wait 0-10,000ms after page load before capture. Essential for lazy-loaded content and JavaScript animations.
- selector — Target a specific CSS element instead of the full page. Screenshot just a chart, hero section, or product card.
- deviceScaleFactor — Render at 2x or 3x for retina/HiDPI output.
All parameters are optional. The defaults produce a standard desktop viewport screenshot in PNG format.
Security & SSRF Protection
SnapAPI blocks all private IP ranges to prevent Server-Side Request Forgery (SSRF) attacks. The following address ranges are rejected:
- 127.0.0.0/8 (localhost)
- 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 (private networks)
- 169.254.0.0/16 (link-local / cloud metadata)
Only publicly routable URLs are accepted. This prevents users from accessing internal services, cloud metadata endpoints, or admin panels through the screenshot API.
Pricing & Free Tier
SnapAPI offers a generous free tier for evaluation and low-volume projects:
- Free — 100 screenshots/month. No credit card required. Full API access.
- Starter ($9/mo) — 5,000 screenshots/month. Priority rendering.
- Pro ($29/mo) — 25,000 screenshots/month. Priority support + rendering.
All tiers include the same API features. Upgrade or downgrade anytime from your dashboard. Usage resets on the 1st of each month.