Guide

How to capture a full-page screenshot of an entire webpage

A normal screenshot stops at the fold. Here is how to capture the whole page, by hand for one-offs and through an API when you need it automated or at scale.

Viewport versus the full page

Your screen shows one viewport, the slice of a page currently visible. A standard capture saves only that slice. A full-page screenshot, sometimes called an entire-webpage, full-webpage, or whole-page capture, includes everything from the top of the document to the bottom, no matter how far it scrolls.

Capture a full page by hand

For a one-off, your browser or phone can already do it. Pick your platform.

Chrome (built in)

Open DevTools, press the keyboard shortcut for the Command Menu, type "screenshot", and choose "Capture full size screenshot". Chrome saves the entire page, not just the visible part.

Browser extension

A one-click extension such as GoFullPage scrolls the page and stitches a single image. Convenient for occasional manual captures.

Firefox (built in)

Right-click the page, choose "Take Screenshot", then "Save full page" to capture the whole document.

iPhone

Take a normal screenshot, tap the preview, then choose the "Full Page" tab. Save it as a PDF to keep the entire scrollable page.

Mac

macOS shortcuts capture the visible screen only. For a true full-page capture use the browser methods above, since there is no native scrolling-screenshot tool.

These are great for occasional manual captures. For automated, repeatable, or at-scale capture, use an API instead.

The fast way for automation: one API parameter

With the Grabbit screenshot API, set full_page: true. The height field is ignored and the output spans the entire document. The response returns a hosted image_url.

cURL
curl https://grabbit.live/api/v1/grabs \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://news.ycombinator.com", "full_page": true }'
  • width (320 to 1920) changes the responsive layout before capture.
  • delay_ms (up to 10000) waits for lazy-loaded images and JavaScript content, which matters on long pages.
  • selector clips to one element instead of the whole document.
  • format chooses PNG, JPEG, or WebP.

Doing it yourself with Puppeteer or Playwright

Both headless browser libraries take a full-page screenshot with a single option, fullPage: true.

Puppeteer (Node)
import puppeteer from "puppeteer";

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://example.com", { waitUntil: "networkidle0" });
await page.screenshot({ path: "out.png", fullPage: true });
await browser.close();
Playwright (Node)
import { chromium } from "playwright";

const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
await page.screenshot({ path: "out.png", fullPage: true });
await browser.close();

This works well locally. Running it in production is where the cost shows up: scaling headless Chrome, handling cold starts, font and emoji rendering, cookie banners, and bot walls. That operational load is exactly what a screenshot API removes, which is why many teams move the full-page capture to a service once it runs more than occasionally.

Full-page screenshot FAQ

How do I take a screenshot of a full length page?
Use a tool that captures the whole document rather than the visible viewport. In Chrome, use the DevTools Command Menu "Capture full size screenshot". To automate it, call a screenshot API with full_page: true.
How do you take a full page scrolling screenshot?
A scrolling, or stitched, screenshot captures content below the fold by scrolling the page and combining the frames. Browser extensions do this manually; an API does it automatically when you set full_page: true.
How do I take a full-page screenshot with GoFullPage?
Install the extension, open the page, and click its toolbar icon. It scrolls the page and produces one long image you can save as PNG or PDF. For programmatic capture, use an API instead.
How do I enable a full-page screenshot on iPhone?
Take a screenshot, tap the thumbnail preview, and switch to the "Full Page" tab at the top. You can then save the full scrollable page as a PDF.
Why does my screenshot only capture the visible part?
Default screen capture stops at the viewport, the part currently on screen. To get the entire page you need a full-page tool or an API parameter such as full_page: true that captures the full document height.
Can I capture a full-page screenshot of a page that loads on scroll?
Yes. For lazy-loaded or infinite-scroll content, add a wait before capture. With the Grabbit API, set delay_ms (up to 10000) so images and client-rendered content settle before the full-page shot.

Ready to automate it? See the screenshot API or read about screenshots as a service.