# Pocket Network Headless Browser Web Renderer

> Pocket Network Headless Browser Web Renderer is a paid API for AI agents from agent.pocket.network, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-11).

Renders a URL in headless Chromium with JavaScript execution and returns markdown, text, HTML, links, title, and optional screenshot for LLM/RAG pipelines.

## Facts

- Endpoint: POST https://agent.pocket.network/v1/agentsearch-web-render-v1?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pocket-network-headless-browser-web-renderer-6b363217
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IBKunJv-iNWSsoLV1p1D8

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 pocket-network-headless-browser-web-renderer-6b363217 -d '<json body>'
```

Example prompt: Can you load https://example.com/dashboard in a headless browser with JavaScript enabled, wait 1000ms for it to fully render, and give me the page content as markdown and a list of all links on the page?

## When to prefer this

Choose this endpoint when the target page is a JavaScript-rendered SPA, React, Vue, or Angular app where a plain HTTP fetch would return empty or incomplete content. It is ideal when you need a rendered screenshot in addition to text, or when you need to wait for dynamic content (e.g. lazy-loaded data) using a CSS selector or a timed delay. Prefer a simpler fetch endpoint for static HTML pages where JS execution is unnecessary. Use this over a generic web search when you already know the exact URL and need the full rendered page content.

## Known failure modes

- URL is a private/internal address — refused with error
- robots.txt disallows crawling — request refused
- Page fails to load within timeout — partial or empty content returned
- wait_for_selector not found within 1.5s — timeout error
- Screenshot exceeds 1 MB limit — truncated or error
- Invalid URL scheme or port — rejected
- max_chars truncation silently caps returned content

## How this service works

Load a URL in headless Chromium with JavaScript executed and get the rendered page back for an LLM or RAG pipeline: markdown, text, HTML, title, links and an optional screenshot. POST /v1/render with {url}. Robots.txt is honored and private addresses are refused. JSON in, JSON out, errors included. Pay per request in USDC; no account, no API key.

## Output

A JSON object containing whichever output formats were requested: 'markdown' (cleaned Markdown text), 'text' (plain text), 'html' (full rendered HTML), 'links' (array of URLs found on the page), plus the page title, and optionally a base64-encoded screenshot (PNG or JPEG, up to 1 MB). Errors are included in the JSON response.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "maxLength": 4096,
   "description": "The public page to render (http or https, port 80 or 443)."
  },
  "block": {
   "type": "array",
   "items": {
    "enum": [
     "image",
     "media",
     "font",
     "stylesheet"
    ],
    "type": "string"
   },
   "description": "Resource types not to load (default media and font)."
  },
  "formats": {
   "type": "array",
   "items": {
    "enum": [
     "markdown",
     "text",
     "html",
     "links"
    ],
    "type": "string"
   },
   "description": "Which renderings to return (default markdown)."
  },
  "wait_ms": {
   "type": "integer",
   "maximum": 1500,
   "minimum": 0,
   "description": "Extra wait after load, in milliseconds (default 0)."
  },
  "viewport": {
   "type": "object",
   "properties": {
    "width": {
     "type": "integer",
     "maximum": 1920,
     "minimum": 320
    },
    "height": {
     "type": "integer",
     "maximum": 1600,
     "minimum": 240
    }
   },
   "description": "Viewport size in pixels."
  },
  "full_page": {
   "type": "boolean",
   "description": "Screenshot the full page, clipped to 4000 px high (default false)."
  },
  "max_chars": {
   "type": "integer",
   "maximum": 100000,
   "minimum": 1,
   "description": "Cap on returned characters (default 20000)."
  },
  "screenshot": {
   "type": "boolean",
   "description": "Include a base64 screenshot, at most 1 MB (default false)."
  },
  "wait_until": {
   "enum": [
    "domcontentloaded",
    "load",
    "networkidle"
   ],
   "type": "string",
   "description": "When the page counts as loaded (default domcontentloaded)."
  },
  "screenshot_format": {
   "enum": [
    "png",
    "jpeg"
   ],
   "type": "string",
   "description": "Screenshot encoding (default png)."
  },
  "wait_for_selector": {
   "type": "string",
   "maxLength": 300,
   "description": "A CSS selector to wait for, at most 1.5 s."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {},
  "portal": {
   "serviceId": "agentsearch-web-render-v1",
   "provenance": "third-party-supplier",
   "schemaCheck": "passed"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pocket-network-headless-browser-web-renderer-6b363217/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent.pocket.network](https://www.zero.xyz/host/agent.pocket.network/llms.txt)
