Use Browserless’s /screenshot REST endpoint and set options.fullPage to true. The endpoint returns image bytes, so save the response directly to a file. For pages with lazy-loaded content, also set scrollPage to true so Browserless scrolls the page before capture. Browserless documents this endpoint and its options.
Capture a long page with Browserless REST
You need a Browserless API token and the endpoint that matches your account’s fleet and region. This example uses Browserless’s documented shared SFO endpoint. Keep the token private: use an environment variable or secret store in production rather than placing a real token in source code.
As an Amazon Associate I earn from qualifying purchases.
- Get an API token from your Browserless account dashboard.
- POST the target page URL and screenshot options to
https://production-sfo.browserless.io/screenshot?token=YOUR_API_TOKEN_HERE. - Save the binary response body as an image file. Do not try to parse it as JSON.
Example JSON body:
{
"url": "https://example.com/long-page",
"scrollPage": true,
"options": {
"fullPage": true,
"type": "png"
}
}
Runnable cURL example:
export BROWSERLESS_TOKEN="YOUR_API_TOKEN_HERE"
curl -X POST "https://production-sfo.browserless.io/screenshot?token=$BROWSERLESS_TOKEN"
-H "Content-Type: application/json"
--data '{"url":"https://example.com/long-page","scrollPage":true,"options":{"fullPage":true,"type":"png"}}'
--output screenshot.png
Replace the example URL with the page you want to capture. The output file contains the returned PNG image data.
Recommended Free Tools
Prepare the page so the capture includes the content you need
Trigger lazy-loaded content
Set the top-level scrollPage option to true when images or other elements load only as a visitor scrolls. Browserless documents scrolling as the way to trigger lazy-loaded content before capture. It cannot guarantee that every site’s custom interaction will load through scrolling alone; a page may require a click, consent choice, or other site-specific action.
#1 Best Overall
Choose the viewport width deliberately
The screenshot uses the width at which the page is rendered. A narrow viewport can trigger a mobile layout; a wider viewport can change line breaks and the total page height. Set the viewport intentionally when the output needs to match a particular responsive breakpoint or device-sized layout. See Browserless’s browser-session documentation for the broader browser workflow.
Wait for images or page readiness
For image-heavy pages, use the documented waitForImages screenshot option or an appropriate wait/navigation condition. Navigation completing does not necessarily mean every client-rendered element or external image is ready. Pick a wait that matches the page instead of assuming a single readiness signal fits every site. The REST screenshot reference describes the available screenshot and wait options.
Rank #2
Choose the right output and capture scope
- Full page: Set
options.fullPageexplicitly totrue. It defaults tofalsein the documented screenshot options. - Format: The REST endpoint supports PNG, JPEG, and WebP. PNG is a straightforward lossless choice; quality controls do not apply to PNG, while compressed formats have quality settings.
- One element or region: Use a selector for a specific element or a clip rectangle for a fixed area when you do not need the whole document.
- Timeout: The BQL screenshot reference lists a default screenshot timeout of 30 seconds. That is a documented default, not a guarantee that every long page will render within that time.
Option names and availability can differ between Browserless APIs. Check the reference for the endpoint you are calling rather than assuming an option documented for BQL or a browser session is accepted by every route. See the BQL screenshot reference.
Free tools Windows power users keep installed
One-click scans. No signup required.
When to use another Browserless route
- One URL to one image: The
/screenshotREST endpoint is the direct path; it does not require opening a WebSocket browser connection. - Interactions or custom preparation: Use a connected Puppeteer, Playwright, or BAP browser session when you need to interact with the page or run custom work before capture.
- Structured response: Smart Scrape can include a full-page screenshot as a base64 PNG in its response and forces a browser strategy when screenshot output is requested. See Browserless Smart Scrape documentation.
- Agent Run: Do not assume its screenshot is full-page. Browserless describes the Agent Run screenshot result as a visible-viewport PNG encoded in base64. See the Agent Run API documentation.
Image versus PDF: the important distinction
A full-page screenshot is a tall image of rendered pixels. Browserless’s /pdf endpoint uses Chrome’s print engine and produces selectable text, but it does not make a single long-page PDF that captures the entire webpage on one page. Browserless says custom full-page PDF generation is possible through /function. Choose the PDF route for a printable document; choose the screenshot route when you need the page as an image. See the Browserless PDF reference.
Rank #3
Troubleshooting a missing or incomplete screenshot
- The result shows only the visible viewport: Confirm the request uses
options.fullPage: truein the JSON body. The option defaults to false in the documented screenshot options. - Images or sections are absent: Try
scrollPage: trueto trigger scroll-based loading, and wait for images or another appropriate readiness condition. If the site requires a click or other custom action, use a browser session and perform that interaction before capture. - The page looks like a mobile or desktop layout unexpectedly: Set the rendering viewport to the intended width and recapture; responsive layout affects wrapping and page height.
- The request fails or takes too long: Check that the token is valid and that the endpoint matches your account’s fleet and region. Long pages may need more time than the documented BQL default screenshot timeout, and no timeout value guarantees a successful render for every site.
- The saved file is not a usable image: Save the response body as binary data with cURL’s
--outputoption or the equivalent in your HTTP client. Do not parse the response as JSON. - You expected a one-page PDF: The standard
/pdfroute is a print-engine PDF, not a single continuous full-height page. Use a full-page image or implement custom PDF generation through/function.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. It can remove cookie banners, newsletter popups, and chat widgets before a capture; bot checks, blank pages, and failed loads are not billed; and its MCP server lets AI agents take screenshots. It includes 1,000 screenshots a month free with no card, and paid plans start at $5 for 3,000.
For setup and request options, see the ScreenshotNeo API documentation. One GET request returns the image:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/long-page -o shot.webp
Sign up for ScreenshotNeo’s free plan to try 1,000 screenshots a month with no card.
Rank #4
Frequently Asked Questions
Can Browserless capture a full-page screenshot as a PNG?
Yes. Set options.fullPage to true and options.type to png in a request to the /screenshot REST endpoint.
Does scrollPage: true guarantee every lazy-loaded element appears?
No. It is Browserless’s documented way to trigger scroll-based loading, but site-specific interactions or loading behavior may require additional steps.
Best Value
Can the Browserless /pdf endpoint make a single continuous PDF of the whole page?
No. Browserless describes /pdf as print-engine output and says custom full-page PDF generation is possible through /function.
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.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →

