Skip to main content

Confirm

Are you sure?

Glossary

Full-page screenshot

The whole page in one image — and the four things that make that harder than a flag.

By · Last updated: September 2026

TL;DR

A full-page screenshot is an image of a web page's entire scrollable height, not only the visible viewport. The browser renders the page as if its window were as tall as the document and captures that. Lazy-loaded images, sticky headers, infinite scroll and a maximum image height make it harder than it sounds.

Free plan, no credit card. 1,000 credits a month.

How it works

How it is taken

A viewport screenshot is what fits in the window: 1350 × 797 CSS pixels, say. A full-page one asks the browser to render beyond the viewport — Chrome's DevTools Protocol does it in one pass — so the image is as tall as the document. The other way is to scroll and stitch tiles together, which repeats a position: fixed header once per tile.

In practice

What breaks it

  • Lazy-loaded images. They load when scrolled into view. Capture without scrolling and the lower half of the page is empty boxes.
  • Infinite scroll. The page grows as long as you scroll it, so the capture needs a limit.
  • Maximum height. Chrome's rendering surface tops out at 16,384 device pixels; past that a capture comes back truncated or blank rather than failing.
  • Viewport-sized sections. A hero set to 100vh is as tall as the viewport you chose, so the viewport height changes the picture.
  • Overlays. Cookie banners and chat widgets sit on top of the content in every capture.

URLpipe

Full-page screenshots in URLpipe

/screenshot captures the full page by default. Before capturing, the engine scrolls through the page once so lazy images load, bounded in steps and height so a feed cannot run forever, then returns to the top and renders in one pass, so a fixed header appears once, where it belongs. The image is at most 16,384 pixels tall (full_page_max_height lowers it); a taller page is captured down to that height.

POST /screenshot
{
  "url": "https://example.com",
  "sync": true,
  "page_options": { "block_cookie_banners": true },
  "screenshot_options": { "format": "webp", "quality": 80, "hide_selectors": ["#chat-widget"] }
}

WebP is usually the smallest format for a long page. Set full_page: false for the viewport only, or selector to capture one element.

FAQ

Frequently asked questions

Why are images missing from my full-page screenshot?
They are lazy-loaded and were never scrolled into view. Scroll the page before capturing, or use a service that does.
How tall can a full-page screenshot be?
Chrome's limit is 16,384 device pixels. At a device scale factor of 2 that is 8,192 CSS pixels of page.
Why does the header appear several times?
The screenshot was stitched from scrolled tiles, and the fixed header was drawn on each. Rendering beyond the viewport in one pass avoids it.

See it on your own pages.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.