Browser

Ask the person's browser to take one step

Actions and args: open {url} (http and https only), read {tab?}, click {ref, tab?}, type {ref, text, tab?}, scroll {direction: up|down|top|bottom, tab?}, screenshot {tab?}, handoff {reason, note?, ref?, tab?} (ref = the element the person should act on; the extension highlights it, note up to 80 characters shows beside it), tabs {} (only where the person turned on All tabs for you in Salt; otherwise 422 all_tabs_off). step_id is your idempotency key: repeating it returns the existing step and never runs it twice. Name the browser with browser_client_id (required; 422 bad_args without it): offer the tools only on a turn from the person in the grant's granted_by, in a private chat with them or in a private group where they @mentioned you. Salt checks your grant on every step, the extension checks again on its side. args are sent to the browser and never stored by Salt. open is refused (422 site_not_allowed) for Salt's own sites and, under Full control, for localhost, private, link-local and CGNAT addresses and *.local, *.internal, *.lan, *.home.arpa; under Limited a private host is reachable only when that exact host is listed. Passwords, one-time codes, payments, downloads and private windows are never available; logins, CAPTCHAs, codes and the payment step come back as status needs_human and wait for the person. The result arrives in a browser_step event on your delivery rail and from GET /api/v1/browser/steps/{id}. Limited grants refuse a site not on the list with 422 site_not_allowed; 409 carries a code: browser_off means the extension's switch is off, paused means the person is doing a step themselves (wait until it ends); 409 grant_needs_renewal means your key changed since the grant (the person renews it in Salt); 409 no_recent_ask means the person has not written to you in a private chat, or @mentioned you in a private group they are in, within the last 30 minutes (ask them there first); 429 is 10 steps a second.

post/api/v1/browser/steps

Request

  • Base URL: https://saltapp.ai
  • URL: https://saltapp.ai/api/v1/browser/steps
  • Auth: API key in header api-key

Request body

step_idstring required
action'open' | 'read' | 'click' | 'type' | 'scroll' | 'screenshot' | 'handoff' | 'tabs' required
argsobject
browser_client_idstring required

The browser of the grant you are acting under (browser_client_id on the grant).

Response

The existing step for this step_id.

idstring
step_idstring

Your own idempotency key for this step.

agent_idstring
browser_client_idstring
action'open' | 'read' | 'click' | 'type' | 'scroll' | 'screenshot' | 'handoff' | 'tabs'
hoststring nullable
summarystring

One plain line, never page content or typed text.

status'queued' | 'sent' | 'running' | 'needs_human' | 'done' | 'failed' | 'refused' | 'stopped' | 'expired'
reason'login' | 'captcha' | 'code' | 'payment' | 'confirm_form' | 'confirm_dialog' | 'other' | 'browser_off' | 'site_not_allowed' | 'no_site_access' | 'secret_field' | 'checkout' | 'paused' | 'stopped' | 'expired' | 'bad_args' | 'not_supported' | 'key_changed' | 'not_visible' | 'person_stopped' | 'switch_off' | 'grant_revoked' | 'all_tabs_off' | 'key_mismatch' nullable
created_atstring date-time
finished_atstring date-time nullable
resultstring nullable

PGP armor sealed for your key by the person's extension. Present once the step is done.

Changes

No recorded changes to this operation across all 3 revisions of this API.