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.
/screenshotCookie banners, blocking overlays, chat widgets, and lazy loading are handled by default. Every cleanup pass can be controlled per request.
Authorization
api-key Enter your API key with the bc_ prefix
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Block common advertising and analytics requests
trueClick this CSS selector before capture
Capture an exact pixel rectangle instead of the page
Value in
- "light"
- "dark"
Cookies to set before loading the page
Extra settling time after the page is ready, in milliseconds
0 <= value <= 300000Named viewport preset
"desktop"Value in
- "desktop"
- "desktop-hd"
- "tablet"
- "iphone-15"
- "pixel-8"
true"png"Value in
- "png"
- "jpeg"
- "webp"
Capture the complete page instead of only the viewport
trueauto uses native capture for normal pages and stitched slices for very tall pages
"auto"Value in
- "auto"
- "native"
- "stitch"
Headers sent while loading the page
Show fixed/sticky UI once instead of repeating it in stitched captures
trueHide matching elements before capture
"#000000"Cover matching elements with a solid privacy mask
Maximum full-page height. Prevents endless captures on infinite pages.
1000 <= value <= 5000030000Use a transparent background where the page allows it
falseProxy mode
"auto"Value in
- "none"
- "basic"
- "datacenter"
- "residential"
- "stealth"
- "auto"
JPEG or WebP quality
1 <= value <= 10085trueHide common support and chat widgets
trueAccept known consent dialogs, hide remaining cookie banners, and restore page scrolling
trueRemove newsletter gates, modal backdrops, and blocking overlays
trueReturn a CDN URL or an inline data URL
"url"Value in
- "url"
- "base64"
Capture at CSS pixel size or the emulated device pixel ratio
"css"Value in
- "css"
- "device"
Pause between lazy-load scroll steps, in milliseconds
50 <= value <= 2000250Scroll through the page first so lazy content is loaded
trueCapture one element instead of the page
CSS rules to apply before capture
1000 <= value <= 12000030000Public webpage URL to capture
Custom viewport. Overrides the named device dimensions.
Wait for this CSS selector before capture
Page readiness milestone used before capture
"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}