Fast, headless screenshot API

Capture any website.
Generate OG images.

One API for pixel-perfect screenshots and dynamic Open Graph images. Built for developers who ship fast.

No credit card required · Free tier included

Everything you need

Screenshot capture and OG image generation, with the developer experience you expect.

Screenshot API

Capture any URL as PNG, JPEG, or PDF. Configurable viewport, custom dimensions, and fast rendering powered by Playwright.

OG Image Generation

Generate beautiful Open Graph images from templates. Blog posts, product cards, social profiles — all via a simple API call.

Fast & Reliable

Deployed on edge infrastructure with API key auth, rate limiting, and usage tracking built in. Production-ready from day one.

Try it live

Enter any URL to capture a screenshot instantly — no API key needed for the demo.

Dead simple API

Three lines of code. That's it.

# Take a screenshot curl "https://snapcap.dev/v1/screenshot?url=https://example.com" \ -H "X-API-Key: sk_live_..." \ -o screenshot.png # Generate an OG image curl -X POST "https://snapcap.dev/v1/og" \ -H "X-API-Key: sk_live_..." \ -H "Content-Type: application/json" \ -d '{"template":"blog-post","data":{"title":"Hello","author":"You"}}' \ -o og-image.png
// Take a screenshot const res = await fetch("https://snapcap.dev/v1/screenshot?url=https://example.com", { headers: { "X-API-Key": "sk_live_..." } }); const png = await res.arrayBuffer(); // Generate an OG image const og = await fetch("https://snapcap.dev/v1/og", { method: "POST", headers: { "X-API-Key": "sk_live_...", "Content-Type": "application/json" }, body: JSON.stringify({ template: "blog-post", data: { title: "Hello", author: "You" } }) });
import requests # Take a screenshot res = requests.get( "https://snapcap.dev/v1/screenshot", params={"url": "https://example.com"}, headers={"X-API-Key": "sk_live_..."} ) with open("screenshot.png", "wb") as f: f.write(res.content) # Generate an OG image og = requests.post( "https://snapcap.dev/v1/og", headers={"X-API-Key": "sk_live_..."}, json={"template": "blog-post", "data": {"title": "Hello", "author": "You"}} )

Simple, transparent pricing

Start free. Scale as you grow. No surprise fees.

Free

$0
forever
  • 100 renders / month
  • 10 requests / min
  • PNG, JPEG, PDF
  • 5 OG templates
Get Started

Starter

$9/mo
billed monthly
  • 5,000 renders / month
  • 60 requests / min
  • PNG, JPEG, PDF
  • All templates
Subscribe

Business

$79/mo
billed monthly
  • 200,000 renders / month
  • 300 requests / min
  • Priority rendering
  • All templates
Subscribe

Ready to get started?

Start capturing screenshots in minutes. Free tier included.

Read the Docs