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_hereCreate API keys in your dashboard.
Rate Limits
| Plan | Rate | Monthly |
|---|---|---|
| Free | 3 req/day | 10 |
| Pro | 60 req/min | 1,000 |
| Business | 60 req/min | Unlimited |
Rate limit info is included in response headers: X-RateLimit-Remaining, X-RateLimit-Reset.
Endpoints
POST
/api/v1/captureCapture 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/htmlCapture 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/batchCapture 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/convertConvert 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]
}
}