# x402-snap Browser Rendering API

> x402-snap Browser Rendering API is a paid API for AI agents from x402-snap.zaden-gaming.workers.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-02).

Renders any URL in a headless browser and returns a full-page screenshot (PNG), PDF, or JavaScript-rendered HTML for AI agents

## Facts

- Endpoint: POST https://x402-snap.zaden-gaming.workers.dev/snap?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-snap-browser-rendering-api-e347d637
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ghQSm7UcCyQj60FSrE2rJ

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 x402-snap-browser-rendering-api-e347d637 -d '<json body>'
```

Example prompt: Take a full-page screenshot of https://example.com — render it in a real browser so JavaScript executes, wait 2000ms for dynamic content to load, and give me back a PNG.

## When to prefer this

Choose this endpoint when a plain HTTP fetch returns an empty or incomplete HTML shell because the page uses client-side JavaScript rendering (React, Vue, Angular, etc.), or when you specifically need a visual screenshot or PDF of a page rather than raw HTML. It is especially valuable for AI agents that need to see what a page actually looks like, archive a visual snapshot, or extract data from SPAs. Prefer it over static HTTP fetchers whenever JavaScript execution is required to see meaningful content.

## Known failure modes

- Target URL is unreachable or returns a non-200 status — status field reflects the actual HTTP error code
- Timeout if the page takes too long to load or waitMs is set too high
- Invalid or non-public URL (e.g. localhost, private IP) rejected
- Unsupported format value causes a format error
- Page with heavy anti-bot protections (Cloudflare, CAPTCHAs) may not render correctly
- Payment not completed — x402 payment required before rendering begins

## How this service works

Pay-per-call browser rendering for AI agents. Render any URL in a real headless browser and get back a full-page screenshot (PNG), a PDF, or the JavaScript-rendered HTML — solves the empty-shell problem when plain HTTP fetches hit client-rendered pages.

## Output

Returns a JSON object containing: the output format identifier, the final URL after redirects, and either a base64-encoded PNG or PDF (in the `base64` field) or a JavaScript-rendered HTML string (in the `html` field), plus the HTTP status of the target page and its content type.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "Public http/https URL to render"
  },
  "width": {
   "type": "integer"
  },
  "format": {
   "enum": [
    "screenshot",
    "pdf",
    "html"
   ],
   "type": "string",
   "description": "What to return: PNG screenshot (base64), PDF (base64), or JS-rendered HTML (string)"
  },
  "height": {
   "type": "integer"
  },
  "waitMs": {
   "type": "integer",
   "description": "Extra milliseconds to wait after page load before capturing"
  },
  "fullPage": {
   "type": "boolean",
   "description": "Screenshot the full scrollable page instead of just the viewport"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "format",
  "finalUrl"
 ],
 "properties": {
  "html": {
   "type": "string",
   "description": "Present for html format"
  },
  "base64": {
   "type": "string",
   "description": "Present for screenshot and pdf formats"
  },
  "format": {
   "type": "string"
  },
  "status": {
   "type": [
    "integer",
    "null"
   ],
   "description": "HTTP status of the target page"
  },
  "finalUrl": {
   "type": "string",
   "description": "URL after any redirects"
  },
  "contentType": {
   "type": "string"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-snap-browser-rendering-api-e347d637/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-snap.zaden-gaming.workers.dev](https://www.zero.xyz/host/x402-snap.zaden-gaming.workers.dev/llms.txt)
