ScreenshotLensscreenshotlensdocs

Screenshot API

Capture a still image of a public page as binary output or a JSON asset URL.

GET /v1/screenshots

The target url must be absolute and use http or https.

Basic request

curl -G "https://api.screenshotlens.com/v1/screenshots" \
  --data-urlencode "url=https://example.com" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  --data-urlencode "response_type=json"
const params = new URLSearchParams({
  url: "https://example.com",
  api_key: process.env.SCREENSHOTLENS_API_KEY!,
  response_type: "json",
})

const response = await fetch(
  `https://api.screenshotlens.com/v1/screenshots?${params}`,
)

const capture = await response.json()

Common parameters

ParameterTypeDefaultLimits
urlabsolute URLnoneRequired. Must use http or https.
api_keystringnoneRequired unless the request carries a dashboard session.
response_typebinary or jsonbinaryUse json while integrating.
viewport_devicestringnoneA Playwright device name, e.g. iPhone 13 or Pixel 5. Emulates that device's viewport, scale factor, user agent, and touch support, overriding viewport_width, viewport_height, and scale_factor.
viewport_widthinteger12801 to 7680 pixels
viewport_heightinteger7201 to 4320 pixels
scale_factorinteger11 to 5
delayinteger00 to 10 seconds, waited before capture
timeoutinteger300 to 30 seconds
wait_untilenumLoadLoad, DomContentLoaded, NetworkIdle0, NetworkIdle2
darkbooleanfalseEmulates a dark color scheme
block_adsbooleantrueBlocks common ad resources
block_cookie_bannersbooleantrueBlocks and dismisses common cookie banners
block_chatbooleanfalseBlocks common chat widgets

Image parameters

ParameterTypeDefaultLimits
image_formatenumPngPng, Jpeg, Webp
image_qualityinteger800 to 100, applied to Jpeg and Webp only

Full-page parameters

ParameterTypeDefaultLimits
full_pagebooleanfalseCaptures the whole page instead of the viewport
scrollbooleanfalseScrolls before capture to trigger lazy content, needs full_page=true
scroll_delayinteger2000 to 5000 milliseconds between scroll steps
scroll_byinteger500100 to 10000 pixels per scroll step
max_heightintegernone1 to 50000 pixels, caps a tall page

Response modes

JSON

response_type=json returns the stored asset URL.

{
  "screenshot_url": "https://cdn.screenshotlens.com/captures/example.png",
  "credits_charged": 1
}

Binary

The default response_type=binary returns the image file itself, with Content-Type set from image_format.

curl -G "https://api.screenshotlens.com/v1/screenshots" \
  --data-urlencode "url=https://example.com" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  --output capture.png

When ScreenshotLens can read the target page status, the binary response carries it in X-Page-Status-Code.

Pricing

A viewport screenshot costs 1 credit and a full-page screenshot costs 2. See Credits and Billing for when the charge lands and when it does not.

On this page