A static fetch of a JavaScript-rendered page returns a shell rather than an error, which is the failure that wastes the most time; fetch and fetch_raw both detect the need for rendering and both take mode, so either path can be forced when the detection guesses wrong. maxLength on the markdown fetch is what keeps a long page out of the whole context window, and the screenshot's 2MB ceiling is stated up front rather than found on a tall page.
A page fetcher with three tools — markdown extraction, raw HTML and a screenshot — each auto-detecting whether the page needs JavaScript rendering and each accepting an explicit mode.
- fetch returns a page as clean markdown, auto-detecting whether JavaScript rendering is required, with mode="browser" forcing Playwright and mode="static" forcing direct HTTP, and maxLength bounding the output.
- fetch_raw returns the raw HTML, for when the structure rather than the extracted text is what you need.
- screenshot returns a base64-encoded PNG, with fullPage for the whole document; output is limited to 2MB.
Nothing — no account, no key. The browser path runs Playwright on the host, and screenshot output is capped at 2MB.
One command — npx -y render-fetch
