The developer media toolkit
you'll actually use

Screenshots, PDFs, social cards, QR codes, and URL metadata — one API, one key, one bill. 100 free operations daily.

99.99% uptime 300+ edge locations Sub-second cached responses No credit card required

Five tools. One API.

Everything a modern app needs to handle media — without running infrastructure.

📷

Screenshot

GET /v1/screenshot?url=<url>

Capture any webpage as PNG, JPEG, or WebP. Full-page, element selectors, dark mode, retina.

curl "https://snap-apii.com/v1/screenshot?url=https://stripe.com&format=png" -o shot.png
📄

PDF Generation

GET /v1/pdf?url=<url>

Convert any URL or raw HTML to a PDF. A4, Letter, landscape, custom margins, headers/footers.

curl "https://snap-apii.com/v1/pdf?url=https://example.com&format=A4" -o page.pdf
🎨

OG Image Generator

GET /v1/og-image?title=<text>

Dynamic social cards for Twitter, LinkedIn, Slack. 7 themes. Use as og:image URL directly.

<meta property="og:image" content="https://snap-apii.com/v1/og-image?title=My+Post&theme=gradient" />
🔗

URL Unfurling

GET /v1/unfurl?url=<url>

Extract title, description, OG image, favicon, author, and more from any URL. Link previews made easy.

curl "https://snap-apii.com/v1/unfurl?url=https://github.com" | jq .

QR Code Generator

GET /v1/qr?data=<text>

Generate QR codes as SVG. Custom colors, sizes, error correction levels. Cache forever.

<img src="https://snap-apii.com/v1/qr?data=https://myapp.com&size=256" />
🚀

Coming soon

More tools on the roadmap

Image optimization, HTML email rendering, document conversion. Same API, same key, same bill.

# All tools share one API key and one rate limit. No extra setup.
Choose a tool and click Run

GET https://snap-apii.com/v1/screenshot?url=https://stripe.com

One API key. Every tool.

Simple REST API — works with any language, any framework.

Screenshot → PNG
const res = await fetch(
  `${API}/v1/screenshot?url=${url}`,
  { headers: { Authorization: `Bearer ${key}` }}
);
const png = await res.arrayBuffer();
URL → Metadata JSON
const { data } = await fetch(
  `${API}/v1/unfurl?url=${url}`
).then(r => r.json());

console.log(data.title);  // "GitHub"
console.log(data.image);  // "https://..."
HTML → PDF
const pdf = await fetch(`${API}/v1/pdf`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    html: "<h1>Invoice #123</h1>...",
    format: "A4"
  })
});
5
API endpoints
300+
Edge locations
<50ms
Cached responses
$0
To get started

One price for all tools

Every plan includes all 5 endpoints. Operations = any API call.

Free

$0/mo
  • 100 operations/day
  • All 5 tools
  • Edge caching
Start free

Pro

$49/mo
  • 2,500 operations/day
  • All 5 tools
  • Ad blocking
  • Priority support
Subscribe

Business

$99/mo
  • 10,000 operations/day
  • All 5 tools
  • 99.9% SLA
  • Dedicated support
Subscribe

Scale

$199/mo
  • 50,000 operations/day
  • All 5 tools
  • Custom SLA
  • Priority everything
Subscribe

Start building in 30 seconds

No credit card. No setup. One key for every tool.

Get your free API key