A lot of the web doesn't exist until JavaScript runs. A plain HTTP fetch of those pages returns an empty shell — the content an agent actually wants is built client-side after load.

browser-session renders the page in a real headless browser, waits for JS, and hands back what a browser would see:

  • POST { "url": "https://…" } returns the rendered HTML plus the page title and the resolved final URL.
  • { "screenshot": true } returns a base64 PNG instead (add "full_page": true for the whole scroll height).
  • "wait_ms" holds for late-loading JS; "block_ads": true (default) drops ad and tracker requests for a cleaner capture.

Priced at $0.03/call. It runs on a REST render provider behind a worker secret; until that secret is set the endpoint returns an explicit 424 dependency response (dependency: "browser-runtime") rather than a vague error, so callers can tell a config gap from a page failure.

Use it when scrape-to-json or a direct fetch comes back empty because the target renders client-side.