Skip to main content
Limits keep browser jobs predictable. Some limits are source-defined and public. Others can vary by account or deployment.

Public limits to design around

AreaCurrent guidance
Browser durationPass maxDuration when creating browsers that should expire sooner than the default.
Playwright execution timeoutKeep snippets bounded. SDK and MCP surfaces cap execution timeout.
Staged filesThe SDK rejects staged file uploads above its file size limit.
DownloadsUse maxBytes when saving or reading downloads.
MCP tool callsrun_web_agent accepts maxTurns, maxToolCalls, and toolTimeoutMs on the agent surface.
Recordings and artifactsStore IDs you need, and close browsers when the workflow is done.
Use the limits reference for exact current values that are documented publicly.

Account-specific limits

Concurrency, rate limits, retention windows, and cost controls may depend on your account or deployment. Your application should handle 429, 413, timeout, and resource-limit errors explicitly.

Cost controls

Public source does not define a universal billing-control API in these docs. Treat cost as an application concern:
  • Set browser maxDuration for job-scoped browsers.
  • Set agent maxTurns, maxToolCalls, timeoutMs, and toolTimeoutMs.
  • Cap downloads, uploads, observations, and returned data.
  • Close browsers when a job is complete.
  • Log usage metadata when web.agent() returns it.

Cleanup checklist

  • Close browsers created for one job.
  • Store only the artifact IDs and summaries your app needs.
  • Avoid logging signed Debug UI or CDP URLs.
  • Put file size caps on download reads and saves.
  • Use policy to constrain uploads and downloads.
Reference: observability, SDK resources reference, proxy reference, environment variables, and limits.