SnapWeb

API Documentation

Integrate SnapWeb into your workflow with our REST API. All endpoints accept JSON and return JSON.

Authentication

Include your API key in the Authorization header:

Authorization: Bearer sw_live_your_api_key_here

Create API keys in your dashboard.

Rate Limits

PlanRateMonthly
Free3 req/day10
Pro60 req/min1,000
Business60 req/minUnlimited

Rate limit info is included in response headers: X-RateLimit-Remaining, X-RateLimit-Reset.

Endpoints

POST/api/v1/capture

Capture a screenshot from a URL

REQUEST BODY

{
  "url": "https://example.com",
  "format": "png",           // jpg, png, pdf, html, svg
  "viewport": { "width": 1440, "height": 900 },
  "scale": 2,                // 1, 2, or 3
  "fullPage": true,
  "darkMode": false,
  "hideSelectors": [".cookie-banner"],
  "customCss": "body { font-family: 'Inter' !important; }",
  "delay": 2000
}

RESPONSE

{
  "success": true,
  "downloadUrl": "https://cdn.snapweb.io/captures/abc123.png",
  "metadata": {
    "width": 2880,
    "height": 1800,
    "fileSize": 524288,
    "capturedAt": "2026-04-16T12:00:00Z"
  }
}
POST/api/v1/capture/html

Capture a screenshot from raw HTML

REQUEST BODY

{
  "html": "<html><body><h1>Hello</h1></body></html>",
  "format": "png",
  "viewport": { "width": 800, "height": 600 }
}

RESPONSE

{
  "success": true,
  "downloadUrl": "https://cdn.snapweb.io/captures/def456.png",
  "metadata": { "width": 800, "height": 600, "fileSize": 12345 }
}
POST/api/v1/capture/batch

Capture multiple URLs at once

REQUEST BODY

{
  "urls": [
    "https://example.com",
    "https://stripe.com",
    "https://linear.app"
  ],
  "format": "jpg",
  "quality": 85
}

RESPONSE

{
  "success": true,
  "batchId": "batch_abc123",
  "totalJobs": 3
}
POST/api/v1/convert

Convert a webpage to a design format

REQUEST BODY

{
  "url": "https://example.com",
  "target": "figma",          // figma, penpot, framer — all coming soon
  "viewport": { "width": 1440, "height": 900 },
  "options": {
    "darkMode": false,
    "autoLayout": true,
    "generateStyles": true,
    "extractTokens": true
  }
}

RESPONSE

{
  "success": true,
  "downloadUrl": "https://cdn.snapweb.io/converts/ghi789.json",
  "designTokens": {
    "colors": { "color-1": "#6366f1", "text-color-1": "#0f172a" },
    "fonts": [{ "family": "Inter", "weights": [400, 600, 700] }],
    "spacing": [4, 8, 12, 16, 24, 32],
    "radii": [4, 8, 12]
  }
}