CrawlVolt Browser API

Browser actions

POST /v1/browse opens a page, executes actions sequentially, and extracts the resulting page with the same formats as POST /v1/scrape.

Supported actions

Wait for an element

{ "action": "wait", "selector": "main[data-ready=true]", "timeout_ms": 10000 }

Fill or type

Use fill for ordinary controlled inputs and type when the page depends on keyboard events.

{ "action": "fill", "selector": "input[name=email]", "value": "agent@example.com" }
{ "action": "type", "selector": "input[role=combobox]", "text": "Paris" }

Click

{ "action": "click", "selector": "button[type=submit]" }

Scroll

Offsets are CSS pixels and may be negative.

{ "action": "scroll", "x": 0, "y": 800 }

Sleep

Use a fixed delay only when the page has no observable selector to wait for.

{ "action": "sleep", "ms": 500 }

Result model

action_results is ordered exactly like the request. The final outputs block is compatible with the V1 extraction response.

{
  "action_results": [
    { "action": "fill", "ok": true, "detail": "ok" },
    { "action": "click", "ok": true },
    { "action": "wait", "ok": true }
  ],
  "outputs": { "markdown": "# Search results\n..." },
  "billing": { "billable": true, "units": 3, "unit": "browser_action" }
}

The preview accepts at most 25 actions, 32 KiB per text value, 2,048 characters per selector, 5 seconds per sleep, and 15 seconds of cumulative sleep. Action requests bypass the render cache.

JavaScript evaluation exists in the internal browser engine but is disabled at the public boundary unless the operator explicitly enables it after deploying browser egress isolation. Upload and CAPTCHA-solving actions are not public product features.

On this page