How to Capture a Full Page Screenshot with an API

A full page website screenshot captures the complete scrollable document, including content below the visible browser viewport. This guide explains when to use full-page mode, how to request it through the API, and how waits and scrolling affect dynamic pages.

To start with the capture workflow and result, visit the full-page website screenshot tool. For production automation, compare capabilities on the website screenshot API product page or open the API documentation.

When to Use a Full Page Screenshot

  1. Release evidence: Preserve the complete state of a landing page or application after a deployment.
  2. Visual monitoring: Compare the same complete page on a recurring schedule instead of checking only the first viewport.
  3. Documentation and support: Share one continuous image that includes the header, content, and footer.
  4. Regional QA: Repeat the same full-page request from the US, Europe, or Australia / Asia Pacific to review localized experiences.

How Full-Page Mode Works

Add fullpage=true to the request. The capture browser loads the page at the viewport width you choose, measures the scrollable document, and returns the complete page as one image.

The viewport still matters because it controls responsive layout and the width of the output. It does not replace full-page mode: setting an unusually tall viewport can change sticky elements and responsive behavior instead of faithfully capturing the natural page.

Runnable Full Page Screenshot API Examples

Replace YOUR_API_KEY and the target URL before running these examples. The JavaScript and Python versions send the key in a request header so it does not appear in the URL.

cURL

curl -o full-page.png \
  "https://api.addscreenshots.com/screenshots?apikey=YOUR_API_KEY&fullpage=true&scroll_wait=1000&url=https%3A%2F%2Fexample.com"

JavaScript

import { writeFile } from "node:fs/promises";

const endpoint = new URL("https://api.addscreenshots.com/screenshots");
endpoint.searchParams.set("fullpage", "true");
endpoint.searchParams.set("scroll_wait", "1000");
endpoint.searchParams.set("url", "https://example.com");

const response = await fetch(endpoint, {
  headers: { "x-api-key": process.env.ADD_SCREENSHOTS_API_KEY }
});
if (!response.ok) throw new Error(`Capture failed: ${response.status}`);

await writeFile("full-page.png", Buffer.from(await response.arrayBuffer()));

Python

import os
import requests

response = requests.get(
    "https://api.addscreenshots.com/screenshots",
    headers={"x-api-key": os.environ["ADD_SCREENSHOTS_API_KEY"]},
    params={
        "url": "https://example.com",
        "fullpage": "true",
        "scroll_wait": 1000,
    },
)
response.raise_for_status()

with open("full-page.png", "wb") as image:
    image.write(response.content)

Fix Incomplete or Unstable Full Page Captures

Dynamic pages often need one or two additional controls before the result becomes repeatable:

  • Lazy-loaded images or sections: Use scroll_wait=1000 so the browser scrolls through the page and gives on-demand content time to appear.
  • Late JavaScript rendering: Add a short wait delay after navigation.
  • Cookie banners and overlays: Use consent handling, element hiding, or a browser action before capture.
  • Sticky headers repeated in the output: Hide or restyle the fixed element with custom CSS for the capture request.
  • Infinite feeds: Set an intentional stopping condition. A page that continually appends content does not have a stable natural endpoint.

Need format guidance? Review the PNG vs JPEG website screenshot format guide and tune compression with quality settings.

Full Page Website Screenshot Example

Below is an example of how to request a full page website screenshot, capturing the entire scrollable area in one seamless image:

// Line breaks added for readability https://api.addscreenshots.com/screenshots
?apikey=
YOUR_API_KEY
&fullpage=true
&url=https://www.powerbi.com

Your API key can be found on the API Keys page. Need an API Key? Sign up to get started.
For internal applications, replace YOUR_API_KEY with your own unique API Key.
For public facing websites or hotlinks, generate a signed URL.

Full page website screenshot of a complete Power BI page

Need production-ready full page captures? Review pricing or generate an API key to start scheduling unlimited full-page renders in minutes.