Copy
curl -X POST "https://vebapi.com/api/websitescreenshot" \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "test-job-00012123",
"url": "https://vebapi.com",
"viewport": {
"width": 1920,
"height": 1080
},
"fullPage": true,
"format": "png",
"waitUntil": "domcontentloaded",
"blockCookieBanners": true,
"hideOverlays": true,
"loadLazy": true,
"scrollStep": 800,
"scrollDelayMs": 200,
"maxScrolls": 30,
"hideSelectors": "#intercom-container,.drift-frame",
"hideMode": "both",
"delayMs": 4000
}'
๐ธ VebAPI โ Website Screenshot API
Capture high-quality screenshots of any public website with one POST request. Perfect for ๐ SEO tools, ๐งช QA, ๐ก๏ธ monitoring, and ๐จ previews.
๐ Endpoint
Method
POST
URL
https://vebapi.com/api/websitescreenshot
๐ Authentication
All requests must include your API key:
Header
X-API-KEY
Value
YOUR_API_KEY
๐งพ Required Headers
Header
Required?
Description
X-API-KEY
โ
Yes
Your VebAPI API key
Content-Type
โ
Yes
application/json
๐งช Example cURL Request
curl -X POST "https://vebapi.com/api/websitescreenshot" \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "test-job-00012123",
"url": "https://vebapi.com",
"viewport": { "width": 1920, "height": 1080 },
"fullPage": true,
"format": "png",
"waitUntil": "domcontentloaded",
"blockCookieBanners": true,
"hideOverlays": true,
"loadLazy": true,
"scrollStep": 800,
"scrollDelayMs": 200,
"maxScrolls": 30,
"hideSelectors": "#intercom-container,.drift-frame",
"hideMode": "both",
"delayMs": 4000
}'
๐ฅ Request Body
โ
Required Parameters
Field
Type
Description
jobId
string
Unique identifier for tracking this request
url
string (URL)
The webpage URL to capture
โ๏ธ Optional Parameters
๐ฅ๏ธ Viewport
Field
Type
Default
Description
viewport.width
integer
1280
Browser width
viewport.height
integer
800
Browser height
๐ผ๏ธ Screenshot Options
Field
Type
Default
Description
fullPage
boolean
false
Capture full page by scrolling
format
string
png
png, jpg, jpeg, webp
waitUntil
string
domcontentloaded
Page load strategy (example: load, networkidle)
delayMs
integer
0
Extra wait before screenshot (ms)
๐งน Cleanup & Hiding Elements
Field
Type
Default
Description
blockCookieBanners
boolean
false
Best-effort cookie banner dismissal
hideOverlays
boolean
false
Hides common overlays (chat widgets, modals)
hideSelectors
string
""
CSS selectors to hide (comma-separated)
hideMode
string
both
css, dom, or both
๐งฒ Lazy Loading & Scrolling
Field
Type
Default
Description
loadLazy
boolean
false
Scrolls to load lazy content before capture
scrollStep
integer
800
Scroll distance per step
scrollDelayMs
integer
200
Delay between scroll steps (ms)
maxScrolls
integer
30
Max scroll iterations (used with loadLazy / fullPage)
๐ค Example Response
{
"jobId": "test-job-00012123",
"contentType": "image/png",
"bytes": 35585,
"url": "https://screenshotapi.vebapi.com/cdn/f813df3d8d6c4103c7944cde0430e168.png",
"expiresAt": "2025-12-31T14:30:23.341Z",
"expiresInSeconds": 86400
}
๐งพ Response Fields
Field
Description
jobId
Echoes your request jobId
contentType
MIME type of the generated image
bytes
Image size in bytes
url
Temporary download URL for the screenshot
expiresAt
When the URL expires
expiresInSeconds
Seconds until expiration (usually 86400)
โก Performance
โฑ๏ธ Typical processing time: 5โ15 seconds
๐ Full-page screenshots may take longer
๐ง Heavy JavaScript websites can increase capture time
๐ซ Limitations & Notes
โ ๏ธ CAPTCHA-protected pages (Google, Bing) may fail depending on protection and volume
๐ Screenshot URLs are temporary (usually 24 hours )
๐ฆ Excessive requests may be rate-limited (429)
๐ Only publicly accessible pages can be captured
โ Error Codes
Status
Meaning
What to do
400
Invalid input
Fix request body (URL, types, values)
401
Unauthorized
Check your X-API-KEY
429
Rate limited
Reduce concurrency and retry later
500
Internal error
Retry; if persistent, contact support
Example Error JSON
{
"error": "API request failed",
"status": 429
}