API Docs/Browser Automation
POST

Website Screenshot API

Free Public API

Capture crisp, pixel-perfect PNG & JPEG screenshots of any dynamic website at scale.

Try in Live Web Tool
POSThttps://api.headless-lender.com/api/v1/screenshot
Public: No Key Needed•Highest Free Quota: 1,000 Req/Mo + 10h Browsers (No Card Required)

Overview & Architecture

Capture high-resolution full-page or viewport screenshots. Handles complex JavaScript, WebGL, custom fonts, retina displays, and full scrolling animations.

Full page scrolling capture with infinite scroll support
CSS selector element clipping
Custom retina device scale factors
Zero headless detection / Anti-bot shielded
Playwright Execution & Valkey Caching Pipeline

Because this endpoint utilizes full headless Chromium rendering, dynamic JavaScript and single-page apps (SPAs) are executed completely before conversion:

1. Cold Scrape (Cache MISS)~800ms – 2.5s

Chromium initializes, fetches the URL, executes client JavaScript, resolves DOM mutations, and generates output.

2. Repeat Request (Cache HIT)~5ms – 15ms

Returned instantly from Valkey/Redis cache with header X-Lender-Cache: HIT (15-minute TTL).

Code Integration Examples

Instant Public Endpoint: Zero configuration, no API key needed. Want our highest free quota? Get 1,000 free requests/month + 10 hours of cloud browsers with a free key (No credit card required).
curl -X POST https://api.headless-lender.com/api/v1/screenshot \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://github.com/trending",
    "fullPage": true,
    "format": "png"
  }' --output screenshot.png

Headers & Authentication Standard

1. Public Access (No Key)

No Authorization header required. Simply send a JSON POST request. Perfect for quick prototypes, small scripts, and low-volume scraping.

Content-Type: application/json

2. Free API Key (Highest Free Quota)

1,000 Req/Mo Free

Sign up in 10s with no credit card required. Unlocks 1,000 free monthly requests, 600 browser minutes (10 hours), 120 req/min burst limits, and cache-bypass controls.

Authorization: Bearer hl_live_your_api_key_here
Access ModeMonthly QuotaCloud Browser TimeBurst LimitCredit CardAction
Public AnonymousDaily IP Allowance5-min trial sandbox10 req/minNoneInstant (No Setup)
Free Account (Highest Quota)1,000 Req / Month600 Mins (10 Hours)120 req/minZero ($0 forever)Claim Free Key →

Request Body Parameters

FieldTypeRequiredDefaultDescription
urlstringrequired—Target website URL to capture.
fullPagebooleanoptionalfalseCapture the entire scrollable height of the webpage.
format'png' | 'jpeg'optional'png'Image encoding format.
qualitynumber (1-100)optional80JPEG compression quality (only applicable when format is jpeg).
selectorstringoptional—CSS selector to capture only a specific DOM element.
waitUntil'domcontentloaded' | 'load' | 'networkidle'optional'domcontentloaded'Page lifecycle state to wait for before taking the screenshot.

Response Schema & Example

200 OK — application/jsonDuration: ~800ms (Cold) / ~8ms (Cached)
Binary stream of image/png or image/jpeg