Approvals

Keep expensive or sensitive decisions in a human-controlled browser flow.

View Markdown

Approval is a deliberate boundary, not an automatic retry. It covers estimates above the account's confirmation threshold and actions that require the human's provider consent.

A confirmation-required run

  1. The agent calls run with the inspected tool_id and input.
  2. scrollport validates the input and returns confirmation_required with run_id, approval_url, estimate and an expiry.
  3. The agent shows the estimate and URL to the human.
  4. The human approves or denies in the browser.
  5. After approval, the agent resumes the existing run or retries the same call with confirm: true, exactly as the error teaches.

The initial quote holds no money. Approval places the hold only after the balance is checked again, so a stale quote cannot reserve funds the account no longer has.

A provider connection

connection_required is a different gate. It means a human must connect an account before the provider action can be attempted. Give the human connect_url; do not treat it as permission to guess or collect credentials.

What the agent must not do

  • Do not set confirm: true before a human approves the quote.
  • Do not poll an expired approval URL.
  • Do not create a second run while the first decision is pending.
  • Do not say a provider action succeeded until the run status says succeeded.

See errors for the teaching payloads that point to the next safe action.