Viscout REST API Reference · v1
Developer API Documentation
Automated screenshot captures, PDF generation, parallel batches, scrolling video reels, LLM Markdown extraction, signed URLs, and regression diffs.
POST
/api/v1/captureVisual CaptureAdvanced Screenshot Capture
High-resolution headless Chromium snapshot rendering.
HiDPI RetinaFull Page ScrollDark ModeSelector CropPopup Auto-DismissCustom JS/CSS
Captures standard, HiDPI Retina (2×), or full-height scrollable screenshots from any public URL or raw HTML string. Features automatic cookie banner dismissal, element blurring, CSS/JS injection, custom viewports, and transparent backgrounds.
curl -X POST "http://localhost:3000/api/v1/capture" \
-H "Authorization: Bearer sk_live_snap_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://stripe.com/pricing",
"fullPage": true,
"darkMode": true,
"retina": true,
"format": "webp",
"quality": 85
}' --output stripe.webpHTTP 200 OK Response Preview
Headers & Payload// HTTP 200 OK
// Content-Type: image/webp
// Content-Disposition: inline; filename="snapshot.webp"
// X-Execution-Ms: 1240
// X-RateLimit-Remaining: 59
<Binary WebP Image Stream>Request Parameters (17)
JSON Body or Query String| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | optional | — | Target website URL to capture (required if html is not provided) |
| html | string | optional | — | Raw HTML string to render directly without navigating a URL |
| selector | string | optional | — | CSS selector to crop snapshot directly to a specific DOM node |
| fullPage | boolean | optional | true | Capture the complete scrollable page height |
| format | string | optional | 'webp' | 'webp' | 'png' | 'jpeg' | 'pdf' | 'base64' | 'json' |
| quality | number | optional | 80 | Image quality compression level between 1 and 100 |
| viewport | object | optional | { width: 1440, height: 900 } | Custom browser viewport dimensions { width, height } |
| darkMode | boolean | optional | false | Emulates prefers-color-scheme: dark |
| retina | boolean | optional | false | Emulates 2× device pixel ratio (HiDPI) |
| lazyLoad | boolean | optional | false | Scrolls page to bottom before capture to trigger deferred images |
| blockPopups | boolean | optional | true | Automatically dismisses cookie consent modals and subscription popups |
| delay | number | optional | 0 | Additional wait duration in milliseconds after DOM ready |
| waitForSelector | string | optional | — | Pauses capture until this CSS selector renders in the DOM |
| blurSelectors | string[] | optional | — | List of CSS selectors to apply Gaussian blur to (e.g. sensitive customer data) |
| removeSelectors | string[] | optional | — | List of CSS selectors to remove/hide from the DOM prior to snapshot |
| omitBackground | boolean | optional | false | Renders with transparent background (PNG/WebP) |
| cookies | string | optional | — | Inject session cookies formatted as 'name=val; name2=val2' |