Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 3.21 KB

File metadata and controls

42 lines (33 loc) · 3.21 KB
pcx_content_type reference
title REST API timeouts
sidebar
order
5

import { Tabs, TabItem } from "~/components";

Browser Rendering uses several independent timers to manage how long different parts of a request can take. If any of these timers exceed their limit, the request returns a timeout error.

Each timer controls a specific part of the rendering lifecycle — from page load, to selector load, to action.

Timer Scope Default Max
goToOptions.timeout Time to wait for the page to load before timeout. 30 s 60 s
goToOptions.waitUntil Determines when page load is considered complete. Refer to waitUntil options for details. domcontentloaded
waitForSelector Time to wait for a specific element (any CSS selector) to appear on the page. null 60 s
waitForTimeout Additional amount of time to wait after the page has loaded to proceed with actions. null 60 s
actionTimeout Time to wait for the action itself (for example: a screenshot, PDF, or scrape) to complete after the page has loaded. null 5 min
PDFOptions.timeout Same as actionTimeout, but only applies to the /pdf endpoint. 30 s 5 min

waitUntil options

The goToOptions.waitUntil parameter controls when the browser considers page navigation complete. This is important for JavaScript-heavy pages where content is rendered dynamically after the initial page load.

Value Behavior
load Waits for the load event, including all resources like images and stylesheets
domcontentloaded Waits until the DOM content has been fully loaded, which fires before the load event (default)
networkidle0 Waits until there are no network connections for at least 500 ms
networkidle2 Waits until there are no more than two network connections for at least 500 ms

For pages that rely on JavaScript to render content, use networkidle0 or networkidle2 to ensure the page is fully rendered before extraction.

Notes and recommendations

You can set multiple timers — as long as one is complete, the request will fire.

If you are not getting the expected output:

  • Try increasing goToOptions.timeout (up to 60 s).
  • If waiting for a specific element, use waitForSelector. Otherwise, use goToOptions.waitUntil set to networkidle2 to ensure the page has finished loading dynamic content.
  • If you receive a 422 error, refer to 422 Unprocessable Entity.