Skip to content
SCREENSHOT · USE CASE

Full Page Screenshot API

Capture an entire scrolling page — not just the viewport — with lazy-loaded images resolved and sticky headers handled instead of stamped down the image.

Capture an entire scrolling page — not just the viewport — with lazy-loaded images resolved and sticky headers handled instead of stamped down the image.

Why render from HTML at all

Full-page capture is where naive screenshot code breaks. Lazy images never load because nothing scrolls; sticky navigation gets baked into every stitch seam; infinite-scroll pages grow until the capture times out. RenderKit scrolls the page to trigger loading, settles the layout, and neutralises fixed elements before stitching — the difference between a usable archive and a striped one.

The request

POSTscreenshot.sh
curl https://api.renderkit.tech/v1/screenshot \
  -H "x-api-key: $RENDERKIT_API_KEY" \
  -H "content-type: application/json" \
  -d '{ "url": "https://example.com", "full_page": true, "block_ads": true }'

Options that matter here

  • Scroll-triggered lazy loading resolved before capture
  • Sticky and fixed elements handled so they appear once, not once per seam
  • wait_until: "networkidle" for pages that hydrate after first paint
  • Height caps for infinite-scroll pages, so a capture cannot run away

More

Full screenshot API reference · API docs · compare RenderKit vs ScreenshotOne.

Common questions

Pass full_page: true to /v1/screenshot. RenderKit scrolls the page to trigger lazy loading, waits for layout to settle, then returns a single stitched image.

Lazy loading is triggered by scroll events, and a naive headless capture never scrolls. RenderKit scrolls the full height first, so intersection-observer images have loaded by the time the capture is taken.

Set a maximum height. RenderKit captures up to that bound and stops, rather than scrolling until the request times out.

RenderKit starts at $9/mo with 500 free renders, and screenshots, PDFs, and markdown extraction all draw from the same meter — there is no separate per-primitive plan.

Ship your first render in 60 seconds.

500 free renders to start. No card. Cancel by ignoring it.

Get your free key$npm i renderkit-sdk