Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To capture an entire rendered page with ScreenshotOne, add full_page=true to your request. ScreenshotOne enables full-page scrolling for that request by default, scrolling down and back up so lazy-loaded images have an opportunity to load. If content is still missing, tune the scroll step and delay, wait longer for the page, reduce motion, or switch to the section-by-section algorithm.

Make the basic full-page request

ScreenshotOne documents the /take endpoint for GET and POST requests. Because ScreenshotOne’s public documentation does not specify a fixed public hostname, the examples below read the endpoint from SCREENSHOTONE_TAKE_URL. Set that variable to the /take URL shown in your ScreenshotOne account documentation before running the commands.

GET request with cURL

export SCREENSHOTONE_TAKE_URL='YOUR_SCREENSHOTONE_TAKE_ENDPOINT'
export SCREENSHOTONE_ACCESS_KEY='YOUR_ACCESS_KEY'

curl -G "$SCREENSHOTONE_TAKE_URL" 
  --data-urlencode "access_key=$SCREENSHOTONE_ACCESS_KEY" 
  --data-urlencode "url=https://example.com" 
  --data-urlencode "full_page=true" 
  -o full-page.png

The response is the requested image or other content type. Change the output filename and format options to match the response format you request.

Equivalent Python request

import os
import requests

endpoint = os.environ["SCREENSHOTONE_TAKE_URL"]
access_key = os.environ["SCREENSHOTONE_ACCESS_KEY"]
params = {
    "access_key": access_key,
    "url": "https://example.com",
    "full_page": "true",
}
response = requests.get(endpoint, params=params, timeout=90)
response.raise_for_status()
with open("full-page.png", "wb") as output:
    output.write(response.content)

Equivalent Node.js request

const endpoint = process.env.SCREENSHOTONE_TAKE_URL;
const accessKey = process.env.SCREENSHOTONE_ACCESS_KEY;

const query = new URLSearchParams({
  access_key: accessKey,
  url: 'https://example.com',
  full_page: 'true'
});

const response = await fetch(`${endpoint}?${query}`);
if (!response.ok) {
  throw new Error(`ScreenshotOne returned ${response.status}`);
}
const bytes = Buffer.from(await response.arrayBuffer());
require('fs').writeFileSync('full-page.png', bytes);

Core options

Option What it does Practical use
full_page=true Captures beyond the initial viewport. Use for long articles, dashboards and landing pages.
full_page_scroll=true Scrolls through the document and back up while rendering. It is enabled by default for a full-page request and helps trigger lazy-loaded resources.
full_page_algorithm=by_sections Captures sections separately and joins them into one image. Try it when a single stretched capture fails on complex or animated layouts.
full_page_scroll_by Sets the vertical scroll increment. Values from 100 to 500 pixels can help trigger lazy loading; 500 is the guide’s example.
full_page_scroll_delay Pauses after each scroll. The guide’s example uses 1,500 milliseconds when resources need time to appear.
reduce_motion Attempts to reduce animation during capture. Useful for moving headers, carousels and transitions, but it is best-effort.
full_page_max_height Caps the rendered full-page height. Protects a job from an exceptionally long or endlessly growing document.
full_page_slices=true Splits the rendered image into vertical slices. The default slice height is 4,000 pixels; the documented range is 1 to 16,000 pixels.

Why lazy-loaded content can be missing

A browser may not request an image, video poster or component until it approaches the viewport. A full-page request therefore does more than increase the image height: ScreenshotOne’s default full-page behavior scrolls through the document and returns to the top. That activity is intended to activate lazy-loading code before the final image is assembled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents

This is not a guarantee that every application will render completely. Infinite feeds, intersection-observer code, canvas scenes, animated images and scripts that depend on a particular scroll pattern can still produce incomplete or inconsistent output.

Tune a difficult capture in a controlled order

  1. Confirm the target URL. Open it without authentication assumptions and check whether the content is present in a normal browser.
  2. Start with full_page=true. Do not change several timing variables before establishing a baseline.
  3. Add a page-load wait. The full-page guide recommends experimenting with a five- to ten-second wait when late JavaScript or fonts are involved.
  4. Slow the scroll. Set full_page_scroll_by between 100 and 500 pixels and add full_page_scroll_delay. A 500-pixel step and 1,500-millisecond delay are documented starting values, not universal requirements.
  5. Try by_sections. Section captures can work better when a page changes while it is being scrolled, although stitching adds work and can increase latency.
  6. Reduce motion. Enable reduce_motion when transitions or carousels are changing the pixels between sections. The option cannot reliably replace custom JavaScript animation, canvas rendering or animated-image handling.
  7. Inspect the viewport. Width and height alter responsive breakpoints, text wrapping and the amount of content activated per scroll. Device presets emulate browser settings; they are not photographs from a physical phone or tablet.
  8. Bound the job. For an infinite-scroll page, use full_page_max_height. If downstream processing needs manageable files, enable slices and choose a slice height appropriate for your storage or OCR pipeline.

Choose between one capture, sections and a PDF

Default full-page image

The default algorithm uses the Chrome DevTools Protocol with ScreenshotOne tuning and site-specific optimizations. It is the simplest choice for a mostly static document and usually avoids the overhead of separately storing sections.

Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors

Section-by-section capture

by_sections scrolls, captures each section and combines the results. It may preserve complex or animated layouts more reliably, but it can take longer and still requires suitable scroll increments and delays. Compare the joins between sections if your page contains sticky navigation or elements that change position.

Single-page PDF

For a PDF that resembles one very tall full-page capture, ScreenshotOne’s option reference recommends format=pdf, media_type=screen, pdf_print_background=true and pdf_fit_one_page=true. Fitting a long document onto one PDF page can make text extremely small or create a very tall page, so use it only when that trade-off suits the reader or archive.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

POST requests, credentials and request size

Use POST when your option set is large or when you want to keep the request as structured JSON. ScreenshotOne documents a maximum POST request body of 100 MiB. The access key can be supplied in three documented ways: as a GET parameter, in the POST JSON body, or in the X-Access-Key header.

Rank #3
Sale
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.
curl -X POST "$SCREENSHOTONE_TAKE_URL" 
  -H "Content-Type: application/json" 
  -H "X-Access-Key: $SCREENSHOTONE_ACCESS_KEY" 
  --data '{
    "url": "https://example.com",
    "full_page": true,
    "full_page_scroll": true,
    "full_page_scroll_by": 500,
    "full_page_scroll_delay": 1500,
    "reduce_motion": true
  }' 
  -o full-page.png

Keep the key out of client-side browser code and public repositories. If a request fails, preserve the HTTP status and response body while debugging; documented error categories include internal errors, invalid options and reached limits.

Troubleshooting incomplete or failed screenshots

Symptom Likely cause Fix
Images near the bottom are blank Lazy-loading code did not receive enough scroll time. Use full-page scrolling, reduce the scroll step, increase the delay and add a five- to ten-second page wait.
Animated sections do not line up Pixels changed between section captures. Enable reduce_motion, add a wait for stable content, or test by_sections against the default algorithm.
The result stops on an endless feed The document keeps extending as it is scrolled. Set full_page_max_height; use slices if the resulting image is still too large.
Mobile text wraps unexpectedly Viewport dimensions or a device preset changed responsive layout. Specify the intended viewport explicitly and remember that presets emulate devices rather than reproducing a physical handset.
The request is rejected for options A parameter name, value or type is invalid. Remove recently added options, verify booleans and numeric ranges, then add settings back one at a time.
The service reports a limit Your account or request reached a documented limit. Check the plan allowance and request rate, reduce payload size, or wait for the relevant quota window.
The job returns an internal error or times out The page may be unusually complex, blocked, or incompatible with the capture method. Try a longer wait, a smaller scroll step, by_sections, a bounded height, or a simpler viewport. ScreenshotOne states that some pages remain difficult even after tuning.

Performance and reliability trade-offs

  • More waiting improves completeness but increases latency. Scroll delays and page-load waits give scripts time to insert content, while section stitching adds capture work.
  • Smaller scroll steps trigger more opportunities for lazy loading. They also create more browser actions, so use the smallest value that solves the missing-content problem.
  • Large images consume more memory and transfer bandwidth. A maximum height or vertical slices can make downstream storage, OCR and review safer.
  • Motion reduction is not a pixel-perfect freeze. Custom JavaScript, canvas drawing and animated images may still differ between runs.
  • No algorithm works for every page. ScreenshotOne’s own guide describes reliable full-page rendering as a real challenge and cautions that some pages may not work after extensive tuning.

ScreenshotOne plans listed on September 29, 2026

The following figures are ScreenshotOne’s vendor-published prices as listed on September 29, 2026. Prices exclude VAT, and the service says only successful requests are charged. Recheck the pricing page before committing because quotas and prices can change.

Rank #4
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient
Plan Monthly price Included screenshots Rate limit Extra screenshot
Basic $17/month 2,000/month 40 requests/minute $0.009
Growth $79/month 10,000/month 80 requests/minute $0.006
Scale $259/month 50,000/month 150 requests/minute $0.004

All listed tiers include full-page screenshots. The pricing page also lists image formats, PDF and HTML rendering, caching, webhooks, S3 upload, signed links and MCP access; Growth and Scale list additional features, while Scale lists GPU rendering and priority support.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

ScreenshotNeo is a managed screenshot API and MCP server for developers. It removes cookie-consent banners, newsletter popups and chat widgets before capture, bills only clean shots, and does not charge for bot checks or CAPTCHAs, blank pages, timeouts, failed loads or cache hits. Responses identify the page verdict and billing result with X-Page-Verdict and X-Billed headers. Its MCP tools—take_screenshot, get_page_info and capture_pdf—work with Claude, Cursor and other MCP clients.

Use one GET request instead of installing and tuning a browser:

Best Value
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for the complete option list, including full-page capture, lazy-image loading, CSS selectors, custom JavaScript, waits, headers, cookies, viewport and device settings, PDF output, caching, signed links, asynchronous jobs and bulk capture.

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' }); const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo has 1,000 screenshots a month free with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account to try the one-call workflow.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.