# AGISHub Headless Browser Automator

> AGISHub Headless Browser Automator is a paid API for AI agents from api.agishub.com, paid per call via x402, $0.1/call, status unknown (last checked 2026-09-14).

Opens a URL in a headless browser and executes an ordered sequence of actions (click, type, press, wait, extract text, screenshot) to interact with pages that require login, forms, or multi-step navigation.

## Facts

- Endpoint: POST https://api.agishub.com/paid/browser-automate
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agishub-headless-browser-automator-2c1def36
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_vAsDRraHEUthMYT6SzF0H

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agishub-headless-browser-automator-2c1def36 -d '<json body>'
```

Example prompt: Go to https://example.com/login, click the username field using selector '#username', type 'myuser', click '#password', type 'mypassword', press Enter, then wait 2000ms and extract the text from '.dashboard-welcome' — and take a final screenshot too.

## When to prefer this

Choose this endpoint when the target page requires JavaScript execution, authentication, form submission, or multi-step navigation that a plain HTTP scraper cannot handle. Prefer it over a simple web fetch endpoint when you need to click, type, or interact with a live browser session before extracting content.

## Known failure modes

- Invalid or unreachable URL returns an error
- CSS selector not found on page causes step failure
- Login credentials rejected by target site
- Page takes too long to load causing timeout
- Steps exceed the 20-action limit
- Screenshot flag ignored if page is not fully rendered
- Dynamic content not yet loaded when extract_text runs

## How this service works

Drive a headless browser: open a URL and run an ordered list of steps — click, type, press keys, wait, extract text and screenshot. For flows the plain scraper can't reach (logins, forms, multi-step pages).

## Output

A JSON object containing the results of each executed step — including any extracted text from CSS selectors and optionally a base64-encoded full-page PNG screenshot from the final state of the browser.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input",
  "output"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri",
       "description": "Starting URL to open in a headless browser."
      },
      "steps": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "action"
        ],
        "properties": {
         "ms": {
          "type": "integer",
          "maximum": 10000,
          "minimum": 0,
          "description": "Milliseconds to wait (wait, when no selector given)."
         },
         "text": {
          "type": "string",
          "description": "Text to type (type), or key to press (press, e.g. 'Enter')."
         },
         "action": {
          "enum": [
           "click",
           "type",
           "press",
           "wait",
           "extract_text",
           "screenshot"
          ],
          "type": "string",
          "description": "What to do."
         },
         "selector": {
          "type": "string",
          "description": "CSS selector (for click/type/wait-for/extract_text)."
         }
        },
        "additionalProperties": false
       },
       "maxItems": 20,
       "description": "Ordered actions to perform after the page loads."
      },
      "screenshot": {
       "type": "boolean",
       "description": "Also return a final full-page PNG screenshot (base64)."
      }
     },
     "additionalProperties": false
    },
    "type": {
     "enum": [
      "http"
     ],
     "type": "string"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type",
    "example"
   ],
   "properties": {
    "type": {
     "enum": [
      "json"
     ],
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agishub-headless-browser-automator-2c1def36/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.agishub.com](https://www.zero.xyz/host/api.agishub.com/llms.txt)
