A screenshot API timeout is not one failure. It is the expiration of a specific deadline: the provider’s total request budget, browser navigation, a selector or function wait, a fixed delay, or your own client connection. Read the structured error, identify which layer expired, and change only that control. If a page never reaches a valid ready state, an arbitrarily large timeout only hides the defect.
Start with the error, not a larger timeout
Read the provider’s status, error code, message, and response headers before changing parameters. ScreenshotOne distinguishes several conditions:
timeout_error: rendering did not finish within the specified timeout. Its documented message says: “The screenshot couldn’t be taken within the specified timeout. Either the site doesn’t respond quickly, or rendering takes longer than expected. Play with thetimeoutor thenavigation_timeoutoptions or reach the support for the investigation.” See ScreenshotOne’s timeout errors.network_erroror DNS/name-resolution failure: the capture service could not connect to the host. Increasing a render deadline cannot repair DNS, routing, or TLS problems.host_returned_error: the target returned a non-2xx response unless error-page capture is explicitly enabled.concurrency_limit_reached: your account or provider capacity is exhausted; queue, throttle, or raise capacity rather than treating it as a slow page.- Invalid parameters: fix the request schema first. A malformed wait condition can look like a timing problem.
Log the URL, request options, start and finish timestamps, HTTP status, provider request ID, and the complete structured error. Never log API keys or cookies.
Know which timeout expired
| Layer | What it controls | Documented example | Correct response |
|---|---|---|---|
| Total request/render timeout | All navigation, waits, resource loading, and screenshot work | ScreenshotOne timeout: default 60 seconds, maximum 90 seconds |
Reduce work or use an asynchronous job when legitimate rendering needs more time |
| Navigation timeout | How long the browser waits for navigation to complete | ScreenshotOne navigation_timeout: default and maximum 30 seconds |
Fix redirects, DNS, TLS, blocking, or choose a navigation event the site actually reaches |
| Readiness wait | A selector, function, event, or delay that proves content is ready | ScreenshotOne wait_until, wait_for_selector, delay; Browserless selector, function, event, and fixed waits |
Prefer a deterministic selector or function over a blind delay |
| Client connection timeout | Your SDK, HTTP library, reverse proxy, or load balancer waiting for the API response | Independent of browser navigation | Set it above the provider’s maximum expected response time and inspect intermediary limits |
Browserless exposes gotoOptions.timeout for navigation and a query-parameter timeout for the whole REST request. Its guidance warns that the request timeout includes every wait operation: “Monitor Total Request Time: Remember that the query parameter timeout applies to the entire request, including all wait operations.” Keep the outer deadline longer than the realistic sum of navigation, readiness, and capture work.
#1 Best Overall
- DUAL-BAND WIFI 6 ROUTER: Wi-Fi 6(802.11ax) technology achieves faster speeds, greater capacity and reduced network congestion compared to the previous gen. All WiFi routers require a separate modem. Dual-Band WiFi routers do not support the 6 GHz band.
- AX1800: Enjoy smoother and more stable streaming, gaming, downloading with 1.8 Gbps total bandwidth (up to 1200 Mbps on 5 GHz and up to 574 Mbps on 2.4 GHz). Performance varies by conditions, distance to devices, and obstacles such as walls.
- CONNECT MORE DEVICES: Wi-Fi 6 technology communicates more data to more devices simultaneously using revolutionary OFDMA technology
- EXTENSIVE COVERAGE: Achieve the strong, reliable WiFi coverage with Archer AX1800 as it focuses signal strength to your devices far away using Beamforming technology, 4 high-gain antennas and an advanced front-end module (FEM) chipset
- OUR CYBERSECURITY COMMITMENT: TP-Link is a signatory of the U.S. Cybersecurity and Infrastructure Security Agency’s (CISA) Secure-by-Design pledge. This device is designed, built, and maintained, with advanced security as a core requirement.
A repeatable troubleshooting procedure
- Record the exact failure. Save the provider error code, HTTP status, elapsed time, and request options. Compare a failing URL with a known-fast URL.
- Verify the host independently. Resolve DNS, follow redirects, inspect the final HTTP status, validate TLS, and confirm that the URL is reachable from the provider’s region. A 4xx/5xx response, private hostname, geoblock, or IP block needs an access fix, not more waiting.
- Set a bounded total deadline. ScreenshotOne’s synchronous
timeoutis documented as 60 seconds by default and 90 seconds maximum. Do not send a value above the documented maximum and expect it to work. - Separate navigation from rendering. On ScreenshotOne,
navigation_timeouttops out at 30 seconds. On Browserless, configuregotoOptions.timeoutseparately from the RESTtimeout. Leave headroom for selector waits, resource loading, and image encoding. - Replace blind delays. Use
wait_for_selector, a function, an event, or an appropriatewait_untilcondition that proves the required content exists. A fixed delay consumes the same outer budget even when the page is already ready. - Reduce page work. Capture only the required element, block advertising and tracking resources where your provider supports it, and avoid waiting for optional third-party widgets. Browserless can reject undesired resource types or URL patterns; ScreenshotOne documents
fail_if_request_failedwhen required resources must succeed. - Test for automation blocking. Bot checks, CAPTCHAs, IP throttling, regional routing, and consent walls can prevent the expected selector or event from ever appearing. Confirm that automated access is permitted and that your chosen wait condition matches the page shown to the service.
- Use asynchronous delivery for valid long jobs. ScreenshotOne’s asynchronous request/webhook flow supports up to 300 seconds according to its timeout guide. A webhook removes pressure from a short-lived client connection, but it does not fix an unreachable host or a page that never becomes ready.
- Retry only transient failures. Retry network failures with a small, bounded exponential backoff and a maximum attempt count. A proxy retry can help when IP-based throttling or regional routing is suspected, but use it only after simpler checks and where automated access is allowed. Never retry indefinitely, and do not retry invalid parameters, host errors, or concurrency-limit responses as if they were slowness.
Make readiness measurable
Instrument phases instead of reporting only “the request timed out.” Record DNS/connect time when available, navigation completion, each readiness wait, screenshot encoding, and total API time. Run the same URL with:
- a short, known selector that appears in the initial HTML;
- the application’s real content selector;
- no selector wait, only to determine whether navigation itself is slow; and
- images and third-party resources blocked, where supported, to identify page-weight effects.
If navigation finishes quickly but the selector never appears, inspect the selector, JavaScript errors, authentication state, consent overlays, and bot challenges. If navigation consumes the budget, investigate redirects, DNS, TLS, host response time, and provider-region blocking. If the screenshot is produced but your caller times out, raise the client and intermediary limits or switch to an asynchronous callback.
Reproduce locally with Playwright
A local reproduction separates page behavior from provider infrastructure. Use the same URL, navigation condition, readiness selector, viewport, authentication, and resource policy as the API request. Playwright’s Page API supports configurable default timeouts and abort signals. This minimal Node.js diagnostic logs each phase and always closes the browser:
Rank #2
- Dual-band Wi-Fi with 5 GHz speeds up to 867 Mbps and 2.4 GHz speeds up to 300 Mbps, delivering 1200 Mbps of total bandwidth¹. Dual-band routers do not support 6 GHz. Performance varies by conditions, distance to devices, and obstacles such as walls.
- Covers up to 1,000 sq. ft. with four external antennas for stable wireless connections and optimal coverage.
- Supports IGMP Proxy/Snooping, Bridge and Tag VLAN to optimize IPTV streaming
- Access Point Mode - Supports AP Mode to transform your wired connection into wireless network, an ideal wireless router for home
- Advanced Security with WPA3 - The latest Wi-Fi security protocol, WPA3, brings new capabilities to improve cybersecurity in personal networks
import { chromium } from 'playwright';
const url = process.argv[2];
const selector = process.env.READY_SELECTOR || 'body';
const controller = new AbortController();
const stop = setTimeout(() => controller.abort(), 90000);
const started = Date.now();
const browser = await chromium.launch();
try {
const page = await browser.newPage();
page.setDefaultNavigationTimeout(30000);
page.setDefaultTimeout(15000);
console.log('navigation_start', Date.now() - started);
await page.goto(url, { waitUntil: 'domcontentloaded', signal: controller.signal });
console.log('navigation_done', Date.now() - started);
await page.locator(selector).waitFor({ state: 'visible' });
console.log('ready_done', Date.now() - started);
await page.screenshot({ path: 'debug.png', fullPage: true });
console.log('capture_done', Date.now() - started);
} finally {
clearTimeout(stop);
await browser.close();
}
Replace body with the element that proves the business content is ready. If the abort fires, the overall diagnostic budget expired. If the selector wait fails while navigation succeeds, fix readiness or page logic rather than extending navigation.
Common symptoms and precise fixes
The timeout occurs at exactly the provider maximum
The synchronous ceiling is probably being enforced. For ScreenshotOne, the documented maximum is 90 seconds. Remove unnecessary waits, reduce resource work, or submit an asynchronous job (up to 300 seconds in its documented flow).
The page loads in a browser but not through the API
Compare user agent, cookies, authorization, geolocation, IP region, and redirect chain. The target may block automated ranges or require an authenticated session. Confirm access rules before trying a permitted proxy.
Rank #3
- NIGHTHAWK WIFI 6 ROUTER FOR YOUR WHOLE HOME: Delivers fast, reliable WiFi across every room of your apartment or small home for streaming, gaming, video calls, and smart home devices, all running at the same time without slowing each other down.
- WORKS WITH YOUR EXISTING INTERNET SERVICE: Pairs with your existing modem or gateway via ethernet. Compatible with most cable, fiber, DSL, and satellite providers. Some gateways and modem router combos may require bridge mode. No coax needed.
- SET UP AND MANAGE YOUR NETWORK WITH THE NIGHTHAWK APP: Download the free Nighthawk app on iOS or Android for guided setup. Manage WiFi, run speed tests, pause devices, and set up guest networks from anywhere. Active internet required.
- READY FOR THE DEVICES YOU ALREADY OWN: Your phones, laptops, and TVs work right out of the box. WiFi 6 delivers speeds up to 1.8 Gbps across 2.4 GHz and 5 GHz bands. Backward compatible with WiFi 5 and earlier.
- COVERAGE IN EVERY ROOM: Covers up to 1,500 sq. ft. for up to 20 connected devices. Walls, floors, and interference can reduce range. Larger or multi-story homes may benefit from a NETGEAR Orbi mesh WiFi system.
A selector wait always expires
Inspect the rendered DOM, iframe boundaries, case-sensitive text, consent overlays, and client-side errors. Choose a selector that appears after the actual data request, or use a function/event supported by the provider. Do not substitute a very long delay for a missing readiness signal.
Small pages succeed; heavy pages fail
Third-party scripts, large images, advertisements, and trackers may consume the total budget. Block optional resource types or patterns, capture a specific element, and enforce only the resources that are required. On ScreenshotOne, consider fail_if_request_failed when a required resource must not silently fail.
Free tools Windows power users keep installed
One-click scans. No signup required.
Retries create a surge of failures
Check quota and concurrency responses before retrying. Use bounded backoff with jitter, a queue, and an idempotency strategy. A retry cannot solve a deterministic 4xx response or an invalid option.
Rank #4
- 𝐅𝐮𝐭𝐮𝐫𝐞-𝐏𝐫𝐨𝐨𝐟 𝐘𝐨𝐮𝐫 𝐇𝐨𝐦𝐞 𝐖𝐢𝐭𝐡 𝐖𝐢-𝐅𝐢 𝟕: Powered by Wi-Fi 7 technology, enjoy faster speeds with Multi-Link Operation, increased reliability with Multi-RUs, and more data capacity with 4K-QAM, delivering enhanced performance for all your devices.
- 𝐁𝐄𝟑𝟔𝟎𝟎 𝐃𝐮𝐚𝐥-𝐁𝐚𝐧𝐝 𝐖𝐢-𝐅𝐢 𝟕 𝐑𝐨𝐮𝐭𝐞𝐫: Delivers up to 2882 Mbps (5 GHz), and 688 Mbps (2.4 GHz) speeds for 4K/8K streaming, AR/VR gaming & more. Dual-band routers do not support 6 GHz. Performance varies by conditions, distance, and obstacles like walls.
- 𝐔𝐧𝐥𝐞𝐚𝐬𝐡 𝐌𝐮𝐥𝐭𝐢-𝐆𝐢𝐠 𝐒𝐩𝐞𝐞𝐝𝐬 𝐰𝐢𝐭𝐡 𝐃𝐮𝐚𝐥 𝟐.𝟓 𝐆𝐛𝐩𝐬 𝐏𝐨𝐫𝐭𝐬 𝐚𝐧𝐝 𝟑×𝟏𝐆𝐛𝐩𝐬 𝐋𝐀𝐍 𝐏𝐨𝐫𝐭𝐬: Maximize Gigabitplus internet with one 2.5G WAN/LAN port, one 2.5 Gbps LAN port, plus three additional 1 Gbps LAN ports. Break the 1G barrier for seamless, high-speed connectivity from the internet to multiple LAN devices for enhanced performance.
- 𝐍𝐞𝐱𝐭-𝐆𝐞𝐧 𝟐.𝟎 𝐆𝐇𝐳 𝐐𝐮𝐚𝐝-𝐂𝐨𝐫𝐞 𝐏𝐫𝐨𝐜𝐞𝐬𝐬𝐨𝐫: Experience power and precision with a state-of-the-art processor that effortlessly manages high throughput. Eliminate lag and enjoy fast connections with minimal latency, even during heavy data transmissions.
- 𝐂𝐨𝐯𝐞𝐫𝐚𝐠𝐞 𝐟𝐨𝐫 𝐄𝐯𝐞𝐫𝐲 𝐂𝐨𝐫𝐧𝐞𝐫 - Covers up to 2,000 sq. ft. for up to 60 devices at a time. 4 internal antennas and beamforming technology focus Wi-Fi signals toward hard-to-reach areas. Seamlessly connect phones, TVs, and gaming consoles.
Or skip the browser setup
ScreenshotNeo is a screenshot API and MCP server with clean shots: it accepts cookie/consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be disabled. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and whether it was billed. Its total request behavior still deserves normal client-side deadlines, but the response tells you whether the result was clean and billable.
One GET request returns PNG, JPEG, WebP, or PDF. The API supports full-page lazy-image loading, CSS-selector element capture, dark mode, device presets or custom viewports, retina scale, PDF paper and page controls, custom CSS and JavaScript, pre-capture clicks, hidden selectors, selector/delay/network-idle waits, request and resource blocking, headers, cookies, user agents, Authorization, timezone, geolocation, transparent backgrounds, resizing, chosen-TTL caching, signed image links, asynchronous signed webhooks, bulk capture of up to 100 URLs per call, usage data, OpenAPI, and compatibility with parameter names used by other screenshot APIs.
Use the ScreenshotNeo documentation for option details. cURL:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
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)
Node.js:
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 includes an MCP server with take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.
Best Value
- Dual band router upgrades to 1200 Mbps high speed internet (300mbps for 2.4GHz plus 900Mbps for 5GHz), reducing buffering and ideal for 4K stream
- Full Gigabit Ports - Gigabit Router with 4 Gigabit LAN ports, ideal for any internet plan and allow you to directly connect your wired devices
- Boosted Coverage - Four external antennas equipped with Beamforming technology extend and concentrate the Wi-Fi signals
- MU-MIMO technology - (5GHz band) allows high speeds for multiple devices simultaneously
- Access Point Mode - Supports AP Mode to transform your wired connection into wireless network, an ideal wireless router for home
Choosing a timeout strategy
| Situation | Best strategy |
|---|---|
| Fast, stable public page | Synchronous request with a bounded total timeout and a deterministic readiness signal |
| Slow but valid application render | Reduce optional resources, set navigation and readiness limits separately, then use asynchronous delivery if the work exceeds the synchronous ceiling |
| Intermittent network or regional failures | Validate DNS/status/TLS, retry a small number of times with backoff, and test an allowed proxy only when evidence points to IP or regional blocking |
| Unclear provider behavior | Reproduce locally with identical waits and log each phase before changing production limits |
FAQ
What is the difference between request and navigation timeout?
The request timeout covers the complete API operation, while navigation timeout covers only browser navigation. Readiness waits and image encoding consume the remaining request budget.
Should I always use a proxy after a timeout?
No. A proxy is a targeted test for suspected IP throttling or regional routing. First rule out DNS, host status, redirects, TLS, invalid waits, and concurrency limits.
When should I use a webhook?
Use asynchronous delivery when the legitimate navigation and rendering work cannot fit the synchronous deadline or when the caller cannot hold an HTTP connection open. Keep the job bounded and monitor its final status.
Why can a long delay be worse than a selector wait?
A fixed delay spends the same budget on every request and still fails when the page never reaches the intended state. A selector or function expresses the condition you actually need and exposes failures earlier.
Frequently Asked Questions
Can increasing the client HTTP timeout fix a browser navigation timeout?
No. The client only controls how long your application waits for the API response; it cannot extend a provider’s navigation or total render limit.
What should I save for support?
Provide the provider request ID, timestamp, URL (without secrets), HTTP status, structured error, timeout settings, readiness condition, and phase timings. Redact API keys, cookies, and authorization headers.
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.

