Screenshots & PDFs,
One API Call Away

Capture any webpage as an image or PDF. Generate dynamic OG images. Built for developers who ship fast.

Enter a URL and click Capture
Capturing website...
curl "https://api.snapsly.dev/v1/screenshot?url=https://example.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o screenshot.png

Everything you need to capture the web

Powerful features built on a reliable headless browser infrastructure.

📸

Screenshot Capture

PNG, JPEG, WebP. Full-page, custom viewport, element selectors, dark mode, ad blocking.

📄

PDF Generation

Pixel-perfect PDFs from any URL. A4, Letter, custom sizes. Background colors, landscape mode.

✨

OG Image Generation

Beautiful social cards from templates. Dynamic text, images, branding. 1200x630 optimized.

Integrate in minutes

Three simple steps to start capturing.

Step 1: Get your API key

Sign up for a free account. It takes 30 seconds and no credit card is required.

Step 2: Make an API call

Use our simple REST API from any language or framework.

Step 3: Get your result

Receive your high-quality image or PDF instantly.

cURL
Node.js
Python
Go
curl -X POST https://api.snapsly.dev/v1/screenshot \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com", "full_page": true, "dark_mode": true }' \ -o screenshot.png
const fetch = require('node-fetch'); async function capture() { const res = await fetch('https://api.snapsly.dev/v1/screenshot', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://example.com', full_page: true }) }); // Handle the image buffer... }
import requests url = "https://api.snapsly.dev/v1/screenshot" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } payload = { "url": "https://example.com", "full_page": True } response = requests.post(url, json=payload, headers=headers) with open("screenshot.png", "wb") as f: f.write(response.content)
package main import ( "bytes" "net/http" ) func main() { payload := []byte(`{"url":"https://example.com"}`) req, _ := http.NewRequest("POST", "https://api.snapsly.dev/v1/screenshot", bytes.NewBuffer(payload)) req.Header.Add("Authorization", "Bearer YOUR_API_KEY") req.Header.Add("Content-Type", "application/json") client := &http.Client{} res, _ := client.Do(req) // Handle response... }
Response (AI Mode)
{ "success": true, "data": { "image_url": "https://cdn.snapsly.dev/abcd123.png", "metadata": { "title": "Example Domain", "word_count": 245, "headings": ["Example Domain", "More info"], "links": ["https://www.iana.org/domains/example"] } } }

Built for AI Pipelines

Extracting data for LLMs? Our unique AI Mode returns a high-quality screenshot along with structured DOM metadata in a single API call.

Feed web pages directly into GPT-4V, Gemini Pro Vision, or Claude 3 Opus with perfect rendering and extracted text, headings, and links.

Read AI Guide

Simple, transparent pricing

Start for free, scale as you grow. No hidden fees.

Free
$0/mo
Perfect for testing and hobby projects.
  • 200 captures / month
  • Basic screenshots
  • Standard priority
  • Community support
Beginner
$9.99/mo
Great for early-stage apps.
  • 1,000 captures / month
  • Basic screenshots
  • Full-page & custom viewport
  • Standard priority
Starter
$19/mo
For side projects and small apps.
  • 3,000 captures / month
  • PDF Generation
  • Full-page & custom viewport
  • OG Image templates
Business
$99/mo
For high-volume requirements.
  • 30,000 captures / month
  • Anti-bot bypass
  • Custom cookies & headers
  • Dedicated support & SLA

Frequently Asked Questions

Most pages take 2-4 seconds to capture, depending on the target website's loading speed and assets. We use a globally distributed browser fleet for optimal performance.

Your API requests will return a 429 Too Many Requests status code. There are no surprise overage charges. You can upgrade your plan at any time to resume service instantly.

Snapsly is a fully managed cloud API. Running headless browsers at scale is resource-intensive and error-prone. You focus on building your app, we handle the infrastructure.

Images and PDFs are cached securely for 24 hours to ensure fast re-delivery if you request the same URL again, then they are automatically deleted from our servers.

You can pass custom cookies and HTTP headers with your requests on the Pro and Business plans, allowing you to capture authenticated pages seamlessly.