For a one-off screenshot in Node.js, send a JSON POST request to Browserless’s /screenshot REST endpoint, pass your Browserless token in the URL, and save the response as binary image data. Set options.fullPage to true to request the full page rather than just the visible viewport.
Capture a screenshot with Browserless REST and Node.js
Set your Browserless token as an environment variable, then run this ES module. It checks that the token exists, sends the documented JSON request, reports HTTP errors, and writes the response bytes to screenshot.png in the current directory.
As an Amazon Associate I earn from qualifying purchases.
import fs from 'node:fs/promises';
const token = process.env.BROWSERLESS_TOKEN;
if (!token) throw new Error('Set BROWSERLESS_TOKEN');
const response = await fetch(
`https://production-sfo.browserless.io/screenshot?token=${encodeURIComponent(token)}`,
{
method: 'POST',
headers: {
'Cache-Control': 'no-cache',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
options: { fullPage: true, type: 'png' },
}),
},
);
if (!response.ok) {
throw new Error(`Screenshot request failed: ${response.status} ${response.statusText}`);
}
const bytes = Buffer.from(await response.arrayBuffer());
await fs.writeFile('screenshot.png', bytes);
Keep the token outside source code: set BROWSERLESS_TOKEN in your shell or application environment, and do not commit a real token to a repository. The request body supplies the destination URL and screenshot options. The response is image bytes, not JSON, so read it as an array buffer and write the resulting buffer directly to a file.
Free tools Windows power users keep installed
One-click scans. No signup required.
Run it
- Save the code as
screenshot.mjs. - Set
BROWSERLESS_TOKENin your environment using the token issued for your Browserless account. - Run
node screenshot.mjs. On success, look forscreenshot.pngin the current directory.
The example uses Browserless’s documented production SFO endpoint. If your account or deployment uses a different endpoint, use the endpoint specified for that setup.
#1 Best Overall
- 【14" HD Display】The business and leisure activities will undoubtedly benefit from the mesmerizing clarity and brilliance.
- 【Intel Processor N150】Enjoy seamless multitasking, consistent performance, and significant energy conservation, making it an outstanding choice for your everyday computing needs.
- 【4GB DDR4 RAM】Get high-bandwidth performance for resource-intensive tasks. Run multiple applications at once and stay responsive.【128GB UFS】 Delivers blazing boot-up speed and enhanced storage capabilities. Effortlessly access your extensive digital library with ease.
- 【Intel Graphics】Enjoy vibrant colors and sharp details that bring your everyday content to life. 【720p HD Camera】Provides high quality video calls, virtual meetings and online interactions.
- 【Windows 11 S】Unlock endless possibilities with a user-friendly operating system, tailored to your needs.【Dimensions & Weight】12.76 x 8.86 x 0.71 inches, 3.24 lbs.【Ports】1x USB Type-C, 2x USB Type-A, 1x Headphone/microphone combo, 1x Media card reader, 1x HDMI 1.4b, 1x AC Smart pin. Wi-Fi 6, Bluetooth, Webcam.
Choose REST or a browser session
REST is the simpler fit when one request can navigate to a page and capture it. For a workflow that must interact with the page, perform multiple browser operations, or wait for dynamic content in a custom way, connect to a managed browser with Puppeteer or Playwright instead.
| Workflow | Integration | What your script manages |
|---|---|---|
| One navigation followed by a capture | HTTP POST /screenshot |
Send the request and handle the image response. |
| Interaction or multiple browser operations before capture | Puppeteer or Playwright over Browserless’s WebSocket connection | Connect to the browser, run page operations, capture, and close the managed session. |
When using Puppeteer
Browserless’s documented Puppeteer approach uses puppeteer-core, connects with puppeteer.connect(), navigates, captures with page.screenshot(), and closes the browser in a finally block. The reason to use puppeteer-core is that the full puppeteer package downloads Chromium locally, even though the browser in this workflow runs remotely.
Rank #2
- ULTRA HD 4K CLARITY: Stand out in every video call with breathtaking 4K video at 30fps or smooth 1080p at 60fps. Powered by a premium 1/2.5" CMOS sensor and a wide f/1.78 aperture, this webcam captures every detail with vibrant color and stunning low-light performance-so you always look your best
- FAST AUTOFOCUS & SMART LIGHT CORRECTION: No more blurry moments with this webcam for PC. Advanced Phase Detection Auto Focus (PDAF) locks onto your face instantly and keeps you sharp-even when you move. Built-in light correction adapts to your environment, balancing brightness and contrast for a flawless image in dim rooms or bright spaces
- DUAL NOISE-CANCELING MICS: Speak with confidence using this webcam with microphones. Dual microphones with intelligent noise-canceling tech isolate your voice and reduce background noise-suitable for webinars, live streams, team meetings, and virtual interviews
- WIDE-ANGLE LENS & FLEXIBLE MOUNTING OPTIONS: Capture more of your world with an 80 field of view and full 360 swivel rotation. Whether this streaming webcam is mounted on a laptop, monitor, or tripod, it allows you to find the right angle for any setup
- BUILT-IN PRIVACY COVER & PLUG-AND-PLAY SIMPLICITY: Protect your privacy with a secure sliding lens cover that blocks the camera when not in use. Setup is a breeze-just plug into any USB-A port and start streaming, chatting, or recording instantly. The USB webcam is compatible with Zoom, Microsoft Teams, Skype, OBS Studio, and all major platforms across Windows, macOS, and Linux
When using Playwright
Browserless also documents connecting Playwright to its Chromium endpoint, capturing the page, and closing the session. Whatever browser library you choose, close the managed session when the work is done so it is released.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesSet the capture options that fit the page
Full page, viewport, and lazy-loaded content
options.fullPage: true requests a full-page capture instead of only the viewport. A full-page request does not guarantee that content which loads only after scrolling has appeared: Browserless advises using scrollPage: true before capture for lazy-loaded content, together with full-page mode for long pages.
Rank #3
- This Certified Refurbished product is tested and certified to look and work like new. The refurbishing process includes functionality testing, basic cleaning, inspection, and repackaging. The product ships with all relevant accessories, a minimum 90-day warranty, and may arrive in a generic box. Only select sellers who maintain a high performance bar may offer 1Certified Refurbished products on Amazon.com.
- Powerful 10th Gen Intel Core i5: Features a quad-core i5-10210U processor (up to 4.2GHz Turbo Boost) for smooth multitasking and business productivity.
- High-Speed Memory & Storage: 32GB DDR4 RAM ensures seamless performance, while the 1TB M.2 NVMe SSD provides ultra-fast boot-up and file access.
- Stunning 15.6-inch FHD Display: Enjoy crisp visuals with 1920x1080 resolution.
- Enhanced Connectivity: Features Wi-Fi, Bluetooth, Type-C, HDMI, and Thunderbolt for versatile connectivity options.
Image format and quality
The screenshot API supports PNG, JPEG, and WebP through its type setting. Quality is relevant to lossy formats, not PNG. Check the current Browserless API reference for accepted option values and their exact request locations before relying on a particular combination; the REST API and BrowserQL are distinct interfaces, and their fields should not be assumed interchangeable.
Capture an element or a rectangle
For a specific element, the REST screenshot documentation describes a top-level selector that waits for the element and crops the screenshot to its bounds. For a fixed rectangle, use options.clip. These are different targeting approaches: use a selector when the page element defines the bounds, and a clip when you already know the rectangle.
Rank #4
- 【Efficient Quad-Core Performance】 Powered by a 1.8GHz Quad-Core processor, this mini laptop ensures smooth multitasking. With 2GB RAM and 64GB ROM (expandable to 1TB), it handles daily work and online tasks with ease.
- 【10.1" HD IPS Display & GMS Support】 Featuring a 1280x800 HD IPS screen, this cheap laptop delivers vibrant visuals. Pre-installed with Android OS and GMS, you get direct access to the Google Play Store for apps.
- 【Ultra-Portable & Lightweight Design】 Weighing only 1.76 lbs, this Blue computer is designed for mobility. Its compact form makes it an ideal companion for students and professionals for home schooling or trips.
- 【Versatile Connectivity Options】 Stay productive with dual USB 2.0 ports, a headphone jack, and a TF card slot. This computer for kids and adults features built-in Wi-Fi and Bluetooth for stable connections.
- 【Complete All-in-One Bundle】 This kid laptop kit includes the laptop, carrying bag, mouse, mouse pad, and power adapter. It is the perfect ready-to-use set for online classes, remote work, and entertainment.
Troubleshoot blank, incomplete, or failed captures
- The request fails with an HTTP status error: The example throws with the returned status and status text for non-success responses. Check that the token is set correctly and that the URL, JSON body, and endpoint match your Browserless setup.
- The saved image is blank: The destination may have returned a blank page, or its content may not have loaded before capture. Check the target URL and loading behavior; for content that appears only after scrolling, use the documented scrolling option.
- An element is missing: Confirm that the selector identifies an element present on the page and that the page has had time to render it. The REST selector behavior waits for the element, but a missing element can still indicate a page or access problem.
- The image shows a CAPTCHA, 403, or access-denied page: The site may be blocking automation. Browserless documents a separate
/unblockAPI for certain anti-bot cases, but that does not mean every site can be captured. - The capture cuts off content: Check that you requested
fullPage: true. If lower-page images load lazily, arrange scrolling before capture as well. - A browser workflow holds resources longer than expected: Close the Puppeteer or Playwright session when finished, including on errors, by putting cleanup in a
finallyblock.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. Its one-request API can return an image or PDF without you connecting a browser session in your Node.js code. Here is the Node.js request pattern; replace YOUR_API_KEY with your key and change the target URL as needed. See the ScreenshotNeo API documentation for request options.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each of those steps can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. Its MCP server gives AI agents tools for screenshots, page information, and PDF capture. The free plan includes 1,000 shots per month without a card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Does the Node.js example need a third-party HTTP package?
No. It uses Node.js’s built-in fetch and the built-in node:fs/promises module.
Can Browserless guarantee a screenshot of a site that blocks automation?
No. A site may show an anti-bot challenge or deny access; Browserless’s documented /unblock API covers certain cases, not every site.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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.




