Skip to main content
Scrape returns each output independently. Inspect its success even after HTTP 200. isPartial signals failed or incomplete outputs when at least one requested output succeeds; it is absent when all requested outputs fail.

Set a deadline

Send this body to POST /web/scrape. See the Quickstart for authentication and SDK setup.
The default is 90,000 ms with behavior: "fail". Deadlines range from 1 to 300,000 ms; return-partial requires at least 5,000 ms. Keep your client timeout longer than the API deadline. fail returns 408 if the overall deadline is reached. Individual outputs can fail earlier while the request returns 200. return-partial permits the current page state and available outputs; check the outputs even if none succeeded. Neither behavior guarantees that all dynamic content finished rendering. Fixed waits must total less than the capture budget. They are the wait actions plus the waitFor value: a number you set, or the default of 500 ms (2,000 ms with frames or an XML URL) when you omit it. A selector counts as 0 ms. The capture budget depends on behavior:
  • fail: the full timeoutOpts.milliseconds.
  • return-partial: the deadline minus a response reserve. With formats.json, the reserve first sets aside the smaller of 10,000 ms and a quarter of the deadline for extraction. It then holds back the smaller of 5,000 ms and a quarter of what remains.

Size limits

An oversized output fails with data: null and CONTENT_TOO_LARGE. If the combined response is too large, the largest outputs are omitted until it fits.

Failed outputs

A failed output keeps data: null and explains the failure:

Error handling

Keep request_id and error_code for troubleshooting. A screenshot failure, unfinished image enrichment, failed product extraction, or near-empty Markdown from a text-heavy page (such as an app shell that never rendered) can set isPartial without discarding other outputs.