The Best Ways on How to Take Full Page Screenshots Effortlessly

Profile
Hanzala Saleem

17 Sept 2025 | 7 min read

By taking a full-page screenshot means grabbing the entire scrollable content of an entire webpage not just the visible viewport. ScreenshotAPI.net will streamline this process and make it easy as well as trouble free. It can capture the full webpage with its full_page option using which the API makes it possible to capture the area that is not visible as well.

Indeed, the full-page screenshot is actually a major feature of ScreenshotAPI, which means that there is no need to collage images by yourself or manually scroll through pages. In this guide we will see how to use Puppeteer and ScreenshotAPI to make fast and accurate screenshots of full web pages using its potent parameters and tools to capture the dynamic elements of the page without a hitch.

What Is a Full-Page Screenshot?

A full-page screenshot includes everything on the page from top to bottom even content that normally requires scrolling to view. As the ScreenshotAPI documentation explains, when full_page=true the API will capture off-screen items as well, which is particularly useful for web developers. The default option (full_page=false) would only take what is visible on the page at that given time in the viewport of the screen. In comparison, with full_page mode, “the entire contents of the page will be carried, even though they would not be initially in view, should the user have to scroll". This will make sure that nothing is excluded even in the screenshot.

Full-page screenshots are especially helpful for tasks like archiving or data harvesting. An example would be that if you need to document product price listings or complete articles that extend below the fold, a full-page capture will include those lower sections. ScreenshotAPI’s technology even handles pages with complex scrolling behavior. It supports sites with parallax effects and lazy loaded content so that all elements appear correctly in the final image. In short full-page screenshots provide a complete visual record of the entire web page in one file, which is essential for design reviews, archival, or data auditing.

The Best Ways on How to Take Full Page Screenshots Effortlessly

Whether you're a developer, QA tester, product manager, or technical writer, having precise and reliable full-page screenshots is invaluable. In this guide, we'll explore two approaches to capturing full-page screenshots:

  1. Using Puppeteer: a powerful, scriptable browser automation library giving fine-grained control.
  2. Using ScreenshotAPI.net: an API-first solution built for effortless, programmatic screenshot capture.

Taking Full-Page Screenshots with Puppeteer

Puppeteer is a Node library by the Google Chrome team which automates a headless (or full) version of Chrome. It’s often used for web scraping, automation, testing and of course for screenshot capture.

Installation and Setup

First, you’ll need Node.js (v12+) installed on your device . Then, in your project:

npm install puppeteer

This bundles Chromium with the library so you can start automating right away.

Basic Screenshot (Visible Viewport)

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'screenshot.png' });
  await browser.close();
})();

By default, it captures what’s visible in a viewport (default ~800×600 px).

Capturing Full Page

To capture an entire page, use the fullPage: true flag:

await page.screenshot({ path: 'fullpage.png', fullPage: true });

This instructs Puppeteer to scroll through the page, stitch content, and produce a complete screenshot.

Customizing Output

You can tweak other options like:

  • type: "png" or "jpeg"
  • quality: for JPEG, between 0–100
  • omitBackground: hides background, useful for transparency.
  • clip: screenshot a specific rectangular area (x, y, width, height).

Advanced Techniques for Robust Captures

Some web pages use lazy loading or infinite scroll, which Puppeteer’s simple fullPage may miss. In those cases, a more reliable approach involves “smart scrolling”:

  • Measure the page's full height programmatically.
  • Scroll gradually, triggering all content loads.
  • Wait for animations or network calls to finish.
  • Finally, capture the full-page screenshot.

Here’s the pattern:

const pageHeight = await page.evaluate(() => document.body.scrollHeight);
await page.evaluate(async (height) => {
  window.scrollTo(0, 0);
  const steps = 20;
  for (let i = 1; i <= steps; i++) {
    window.scrollTo(0, (height / steps) * i);
    await new Promise(r => setTimeout(r, 100));
  }
}, pageHeight);
await page.waitForTimeout(500);
await page.screenshot({ path: 'smart-fullpage.png', fullPage: true });

This ensures that any dynamically loaded elements are visible before capture.

Taking Full-Page Screenshots with ScreenshotAPI.net (Effortless Approach)

You can capture a full-page screenshot with just a few steps. Here is an outline of the process using the ScreenshotAPI endpoint:

  1. Obtain Your API Key. Sign up or log in to the ScreenshotAPI Dashboard to get your unique API token. This token will authenticate your requests.
  2. Build the API Request. Choose the target webpage URL (url parameter) and decide on the output. For a static image, set output=image. You can also choose the file format (file_type=png for example)
  3. Enable Full-Page Mode. Add full_page=true to your query string. This tells the API to scroll and stitch the page into one image
  4. Send the Request. Make a GET or POST request to the ScreenshotAPI endpoint (for example, https://shot.screenshotapi.net/v3/screenshot?token=YOUR_API_TOKEN&url=...&full_page=true&output=image&file_type=png). The API call will trigger the screenshot process on the ScreenshotAPI servers.
  5. Retrieve the Screenshot. The final screenshot will be given by the API. The image file itself is by default the response when output=image. output=json can also be set to get a JSON output giving a URL to the image. Storage and delivery is performed by ScreenshotAPI and thus you just save the returned PNG (or other format) to your system.

All the steps are automatable in any programming language. As an illustration, a Node.js script may build query URL (full_page=true) and then download the image returned by it. The documentation, in reality, gives language code examples of popular languages. Still, what I got is the following conclusion, namely, the full-page screenshot is as simple to make as to add one more parameter to your API request.

  • No-Code Alternative: In case you like a graphical interface, you can use the Query Builder in the Dashboard of ScreenshotAPI. Type in the target URL, specify your output type and just tick in the box labeled as "Full-Page Screenshot". The builder will construct the right query for you. This allows one to be able to copy that query or run it directly. This turns it easy to explore possibilities without writing any code.
// Example (Node.js): Capture a specific viewport
const request = require('request');
const fs = require('fs');
const token = 'YOUR_API_KEY';
const pageUrl = encodeURIComponent('https://example.com');
const width = 1920, height = 1080;

const query = `https://shot.screenshotapi.net/v3/screenshot?token=${token}&url=${pageUrl}` +
              `&width=${width}&height=${height}&output=image&file_type=png`;
              
request.get({url: query, encoding: 'binary'}, (err, res, body) => {
  fs.writeFile("view-screenshot.png", body, 'binary', () => {});
});
Node.js example setting a fixed viewport (1920×1080) for a screenshot using ScreenshotAPI (standard view). Capturing only the visible area uses width/height. In this case, the screenshot will include only what fits in the 1920×1080 window.
// Modified example: Capture the full page
const request = require('request');
const fs = require('fs');
const token = 'YOUR_API_KEY';
const pageUrl = encodeURIComponent('https://example.com');

const queryFull = `https://shot.screenshotapi.net/v3/screenshot?token=${token}&url=${pageUrl}` +
                  `&output=image&file_type=png&full_page=true`;
                  
request.get({url: queryFull, encoding: 'binary'}, (err, res, body) => {
  fs.writeFile("fullpage-screenshot.png", body, 'binary', () => {});
});
Changing to full_page=true in the API query tells ScreenshotAPI to capture the entire page. This call results in a single screenshot containing all scrollable content.

These examples demonstrate the power of the full-page parameter. With just one flag, ScreenshotAPI goes from a fixed viewport capture to grabbing everything on the page.

Tips for Full-Page Screenshots

Formats & Quality:

Other than images, full-page captures can be output as a PDF document when required (by supplying file_type=pdf). This is convenient to archive or print whole pages. ScreenshotAPI is API that allows multi-page PDF with user-defined ranges.

Retina and Scaling:

For very large or high-DPI pages, it is worth trying retina=true to upscale the pixels by a factor of two. This makes the text and graphics to be sharp. Note that more resolution images will take bigger files.

Handle Hidden Content:

In case some elements of the page are not available until the user takes action (as do some menus or buttons), set the Query Builder or parameters to expose them before capture. It is also possible to inject CSS or JS, scroll to the bottom or navigate a carousel first.

Stay Within Limits:

ScreenshotAPI can take very long screenshots, but extremely tall ones (tens of thousands of pixels) can be quite large in size. If you need more than that, you can split the page into parts or use the “Scrolling Screenshot” video option for extra-long pages.

Conclusion

Capturing a full-page screenshot can be done in two very different ways by scripting it yourself with Puppeteer or by letting a dedicated service like ScreenshotAPI.net handle it for you.

With Puppeteer, you can control the browser completely from opening a page and interacting with it to waiting for specific actions before taking a screenshot. This makes it ideal for developers who want exact results. However, it also requires more effort, such as setting up the necessary tools, writing code for scrolling or changing content, and running Chrome on your own server or computer.

ScreenshotAPI.net makes the process much easier. By sending a single API request with the full_page=true setting, it uses the built in screenshot tool to automatically scroll, combine, and optimize the screenshot for you. There’s no need to install anything, manage a browser, or create your own scrolling code you get fast, consistent, and complete screenshots every time.

In short:

  • If you want flexibility and don’t mind coding, Puppeteer is a great choice.
  • If you want speed, simplicity, and effortless integration, ScreenshotAPI.net is the way to go.

Either way, you can now capture full-page screenshots with confidence choosing the tool that best fits your workflow.

FAQs

How do I take a screenshot of the scrolling page?

Use a tool or browser extension that supports full-page capture, so it scrolls automatically and saves the whole page.

How to take a screenshot of an entire page?

Use features like “Full Page” in tools such as Puppeteer or ScreenshotAPI by enabling the full-page option.

How do I take a screenshot in full screen mode?

Press the fullscreen screenshot shortcut on your device (like F11 + screenshot key on Windows or Command + Shift + 3 on Mac).

How do I screenshot an entire webpage to PDF?

Use a screenshot tool that supports PDF output like ScreenshotAPI with file_type=pdf to capture the full page and save it directly as a PDF.