keep_session: true to pause after the task and receive a sandbox_id. Pass that sandbox_id back to a subsequent BROWSER_USE_SANDBOX_RUN_TASK step to reconnect to the same browser session and continue.
Configuration
Inputs
Credit cost
Whenopenai_api_key is blank, the step is billed in Jinba Credit per token, at the rate of the llm_model you pick — not a flat fee per step. Supplying your own key bills OpenAI directly and costs no credits.
- Before the run, credits are reserved:
max_steps× the tokens one browser step typically sends (each step re-sends the page DOM and the run history), at that model’s rate. The reservation is also the admission check — a balance below it refuses the step before the sandbox starts. - After the run, the reservation is replaced by the token usage the agent actually reported, whether the task succeeded or failed. Only the reservation is capped at
max_steps: 100; the final charge follows real usage. - A run that ends without reporting any usage is charged the tool’s fixed minimum. This is not a per-run price: a run that reports its usage is charged for its tokens.
- A step that runs over a list (
forEach) is settled per iteration. Each iteration is billed by the two rules above as if it had run alone: its own reported tokens, or the minimum when it reported none. The step’s charge is the sum over all iterations. Only the reservation is still a single iteration’s figure — so the admission check does not bound the final charge, and a 20-iteration loop can settle at up to 20× what one iteration costs. Budget aforEachbrowser-use step at one iteration’s cost × the number of items, not at its reservation. Inside a flow run, the balance is checked again before each batch of iterations: a batch starts only as many iterations as the remaining balance covers at one reservation each, after what the finished iterations cost, so a loop on a low balance runs with less parallelism. When not even one more reservation fits, the loop stops there — the next iteration fails withInsufficientCredits, the rest are skipped, and the iterations that ran keep their results and are charged. “Run Step” has no such check, and neither does a loop placed inside a subflow.
max_steps and with the price of llm_model, so raising max_steps raises what your balance must cover up front, even for a task that finishes in a few steps. The step’s badge reads “Dynamic pricing”; the usage page shows what each run was charged (How tools are priced).
Outputs
files[]
A file is never dropped silently — if it cannot be carried out, the entry comes back with
error instead of url. Reasons: over 10 MB, the run total over 20 MB, more than 20 files, the download was still in progress when the agent stopped, or the extension is outside the accepted set.
Accepted extensions: csv, html, json, txt, xml, yaml, yml, md, tsv, log, sql, xls, xlsx, pdf, docx, pptx, png, svg, jpg, jpeg, gif, webp.
Typing a secret the agent must not see
Write<secret>MY_SECRET</secret> in task, where MY_SECRET is the name of a workspace secret. The agent and the LLM only ever see the placeholder; the real value is restored in the browser action that types it, and the step output records Typed sensitive data rather than the value.
Only workspace and organization secrets can be used. Personal (user-scoped) secrets are not visible to this tool.The secret is scoped to the agent, not to a site: browser-use will type it on whatever page the agent reaches. Keep the task specific about which sites to visit, and prefer a credential whose blast radius you accept.