Skip to main content

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

They are lazy-loaded and were never scrolled into view. Scroll the page before capturing, or use a service that does.

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.