Website Screenshots
Capture screenshots of public websites.
/v1/website-screenshots/screenshothttps://api.vee3.io/v1/website-screenshots/screenshot
Capture any public URL - viewport, full page, signed PNG or JPEG.
Authorization
Send your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
MCP
The same capability is available as an MCP tool on Vee3 hosted MCP.
Tool name
website-screenshots.captureParameters11 fields
urlstringRequiredPublic http or https URL to capture. Private, localhost, and internal network addresses are blocked.
max length 2048
full_pagebooleanOptionalCapture the full scrollable page. When false, only the viewport area is captured.
Default: false
viewport_widthintegerOptionalBrowser viewport width in pixels.
Default: 1280 · min 320, max 3840
viewport_heightintegerOptionalBrowser viewport height in pixels.
Default: 720 · min 240, max 2160
wait_until"load" | "domcontentloaded" | "networkidle"OptionalWhen to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster), or 'networkidle' (no network activity for 500ms, slowest but most complete).
Default: "domcontentloaded"
timeout_secondsintegerOptionalMaximum seconds to wait for the page to load before failing.
Default: 30 · min 5, max 60
format"png" | "jpeg"OptionalOutput image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files.
Default: "png"
qualityintegerOptionalJPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG.
Default: 80 · min 0, max 100
dark_modebooleanOptionalWhen true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling.
Default: false
block_cookie_bannersbooleanOptionalWhen true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain.
Default: false
file_namestringOptionalOptional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name.
max length 255
Response21 fields
screenshot_idstringUnique identifier, prefix ss_.
statusstringAlways "completed" for synchronous capture.
urlstringEcho of requested URL.
screenshot_urlstringSigned download URL from account file storage.
file_namestringAccount-relative path where the screenshot was stored.
viewport_widthintegerActual viewport width used.
viewport_heightintegerActual viewport height used.
full_pagebooleanWhether full page was captured.
dark_modebooleanEcho of whether dark color scheme emulation was used.
block_cookie_bannersbooleanEcho of whether cookie banner dismissal was attempted.
formatenumEcho of the requested output format (png or jpeg).
qualityintegerEcho of JPEG quality used when format is jpeg.
file_size_bytesintegerImage file size in bytes.
retained_untilstringISO 8601 timestamp when account storage retention expires.
created_atstringISO 8601 timestamp.
download_codestringShort code to pass to the @vee3/cli `vee3-get-file` command.
download_idstringStable identifier for the reserved download.
expires_atstringISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve).
install_commandstringOne-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca.
commandstringSuggested terminal command for downloading to a local path.
troubleshootingstringWhat to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps.
HTTP errors: unauthorized, url_blocked, screenshot_timeout, validation_error, site_unreachable, insufficient_tokens, payment_required, uploaded_file_name_in_use