Website Screenshot API API Documentation - VebAPI

Website Screenshot API

Website Screenshot API for SEO reports, compliance, and monitoring

Website Screenshot API

POST
POST /websitescreenshot

Example 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
  }'

Response

{
    "jobId": "test-job-00012123",
    "contentType": "image/png",
    "bytes": 1763986,
    "url": "https://screenshotapi.vebapi.com/cdn/79b8xxxxxxxxxxxxxxxxxxxxxxx2a3f3.png",
    "expiresAt": "2025-12-31T19:37:39.512Z",
    "expiresInSeconds": 86400
}

๐Ÿ“ธ 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
}