Move long work out of a synchronous request
Use the async job endpoint when capture duration can exceed your own application, proxy, or serverless request timeout. Async submission returns a job identifier; it does not mean that the screenshot is ready.
Wait for a terminal result
- Keep the job identifier returned by submission.
- Poll its status at a reasonable interval or configure a webhook.
- Download the result when the status is completed.
- Read the recorded error if the job failed; do not treat submission success as capture success.
Missing or expired results
JOB_NOT_COMPLETED means the result is not ready. JOB_NOT_FOUND can indicate a wrong identifier or organization. JOB_EXPIRED means the result has expired. Store files you need to keep and avoid submitting the same job repeatedly while an existing job is still running.
Documentation
Related support articles
Fix an authentication or permission error
Troubleshoot missing keys, revoked credentials, and features your organization cannot use.
Fix a request validation error
Use supported options, valid JSON, and the correct capture endpoint.
Understand rate limits and quota errors
Separate temporary request throttling from a used-up screenshot allowance.
Need help with this issue?
Email support with this article, your request or capture ID, and the result you expected. Remove credentials and private information first.
Email [email protected]