Docs
Screenshot

Capture a clean screenshot of one web page

Cookie banners, blocking overlays, chat widgets, and lazy loading are handled by default. Every cleanup pass can be controlled per request.

POST/screenshot

Cookie banners, blocking overlays, chat widgets, and lazy loading are handled by default. Every cleanup pass can be controlled per request.

AuthorizationBearer <token>

Enter your API key with the bc_ prefix

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

blockAds?boolean

Block common advertising and analytics requests

Defaulttrue
clickSelector?string

Click this CSS selector before capture

clip?

Capture an exact pixel rectangle instead of the page

colorScheme?string

Value in

  • "light"
  • "dark"
cookies?array<>

Cookies to set before loading the page

delay?number

Extra settling time after the page is ready, in milliseconds

Range0 <= value <= 30000
Default0
device?string

Named viewport preset

Default"desktop"

Value in

  • "desktop"
  • "desktop-hd"
  • "tablet"
  • "iphone-15"
  • "pixel-8"
disableAnimations?boolean
Defaulttrue
format?string
Default"png"

Value in

  • "png"
  • "jpeg"
  • "webp"
fullPage?boolean

Capture the complete page instead of only the viewport

Defaulttrue
fullPageAlgorithm?string

auto uses native capture for normal pages and stitched slices for very tall pages

Default"auto"

Value in

  • "auto"
  • "native"
  • "stitch"
headers?

Headers sent while loading the page

hideFixedElements?boolean

Show fixed/sticky UI once instead of repeating it in stitched captures

Defaulttrue
hideSelectors?array<string>

Hide matching elements before capture

location?
maskColor?string
Default"#000000"
maskSelectors?array<string>

Cover matching elements with a solid privacy mask

maxHeight?number

Maximum full-page height. Prevents endless captures on infinite pages.

Range1000 <= value <= 50000
Default30000
omitBackground?boolean

Use a transparent background where the page allows it

Defaultfalse
proxy?string

Proxy mode

Default"auto"

Value in

  • "none"
  • "basic"
  • "datacenter"
  • "residential"
  • "stealth"
  • "auto"
quality?number

JPEG or WebP quality

Range1 <= value <= 100
Default85
reducedMotion?boolean
Defaulttrue
removeChatWidgets?boolean

Hide common support and chat widgets

Defaulttrue
removeCookieBanners?boolean

Accept known consent dialogs, hide remaining cookie banners, and restore page scrolling

Defaulttrue
removeOverlays?boolean

Remove newsletter gates, modal backdrops, and blocking overlays

Defaulttrue
responseFormat?string

Return a CDN URL or an inline data URL

Default"url"

Value in

  • "url"
  • "base64"
scale?string

Capture at CSS pixel size or the emulated device pixel ratio

Default"css"

Value in

  • "css"
  • "device"
scrollDelay?number

Pause between lazy-load scroll steps, in milliseconds

Range50 <= value <= 2000
Default250
scrollPage?boolean

Scroll through the page first so lazy content is loaded

Defaulttrue
selector?string

Capture one element instead of the page

styles?array<string>

CSS rules to apply before capture

timeout?number
Range1000 <= value <= 120000
Default30000
url*string

Public webpage URL to capture

viewport?

Custom viewport. Overrides the named device dimensions.

waitForSelector?string

Wait for this CSS selector before capture

waitUntil?string

Page readiness milestone used before capture

Default"networkidle"

Value in

  • "domcontentloaded"
  • "load"
  • "networkidle"

Response Body

application/json

curl -X POST "https://example.com/screenshot" \  -H "Content-Type: application/json" \  -d '{    "url": "https://example.com"  }'
{  "credits": {    "used": 0  },  "data": {},  "error": "string",  "metadata": {    "authorName": "string",    "authorUrl": "http://example.com",    "contentType": "string",    "durationSeconds": 0,    "durationText": "string",    "language": "string",    "source": "string",    "statusCode": 0,    "thumbnailUrl": "http://example.com",    "timestamp": "2019-08-24T14:15:22Z",    "title": "string",    "url": "http://example.com",    "videoId": "string"  },  "success": true}
Empty
Empty
Empty