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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
- 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
- Confirm the target URL. Open it without authentication assumptions and check whether the content is present in a normal browser.
- Start with
full_page=true. Do not change several timing variables before establishing a baseline. - 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.
- Slow the scroll. Set
full_page_scroll_bybetween 100 and 500 pixels and addfull_page_scroll_delay. A 500-pixel step and 1,500-millisecond delay are documented starting values, not universal requirements. - 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. - Reduce motion. Enable
reduce_motionwhen transitions or carousels are changing the pixels between sections. The option cannot reliably replace custom JavaScript animation, canvas rendering or animated-image handling. - 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.
- 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
- 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.
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
- 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
- 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.
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
- 【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.
Quick Recap
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.

