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.
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.
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:
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.
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.
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).
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.
You can tweak other options like:
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”:
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.
You can capture a full-page screenshot with just a few steps. Here is an outline of the process using the ScreenshotAPI endpoint:
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.
// 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.
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.
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.
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.
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.
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:
Either way, you can now capture full-page screenshots with confidence choosing the tool that best fits your workflow.
Use a tool or browser extension that supports full-page capture, so it scrolls automatically and saves the whole page.
Use features like “Full Page” in tools such as Puppeteer or ScreenshotAPI by enabling the full-page option.
Press the fullscreen screenshot shortcut on your device (like F11 + screenshot key on Windows or Command + Shift + 3 on Mac).
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.