# X402 Browser Screenshot API

> X402 Browser Screenshot API is a paid API for AI agents from x402.feld-feder.at, paid per call via x402, $0.01/call, status down (last checked 2026-09-15).

Captures a PNG screenshot of any URL using a headless browser, returning the image as base64-encoded data, with configurable viewport dimensions and page-load wait time.

## Facts

- Endpoint: POST https://x402.feld-feder.at/v1/web/screenshot
- Price: $0.01/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-browser-screenshot-api-8d82bd6a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0qRM6hhmJl3EdPlCh1XEx

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-browser-screenshot-api-8d82bd6a -d '<json body>'
```

Example prompt: Can you take a full-page screenshot of https://example.com at 1280x720 resolution and give me the PNG image data?

## When to prefer this

Choose this endpoint when you need a programmatic, pay-per-use headless browser screenshot with no subscription required — especially useful for AI agents that need occasional visual snapshots of web pages and want to pay only per call via USDC via the x402 protocol. Prefer this over full browser automation platforms when you need a quick PNG capture with configurable viewport and full-page support without managing browser infrastructure.

## Known failure modes

- Invalid or unreachable URL returns an error response
- URL exceeds 4096 character limit causes validation failure
- Viewport dimensions outside allowed range (width 320-1920, height 240-1080) cause validation error
- wait_ms exceeding 2000ms causes validation failure
- Payment not provided or insufficient USDC balance causes 402 Payment Required
- Target website blocks headless browsers causing partial or failed render
- Timeout on slow-loading pages may return incomplete screenshot

## How this service works

Pay-per-request data tools for AI agents.

## Output

Returns a JSON object containing the screenshot as a base64-encoded PNG string, image width and height in pixels, byte size of the image, a SHA-256 content hash, the number of network resource requests made during page load, total resource bytes fetched, and cache metadata indicating whether the result was served from cache.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "title": "BrowserScreenshotRequest",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "title": "Url",
       "maxLength": 4096,
       "minLength": 1
      },
      "width": {
       "type": "integer",
       "title": "Width",
       "default": 1280,
       "maximum": 1920,
       "minimum": 320
      },
      "height": {
       "type": "integer",
       "title": "Height",
       "default": 720,
       "maximum": 1080,
       "minimum": 240
      },
      "wait_ms": {
       "type": "integer",
       "title": "Wait Ms",
       "default": 250,
       "maximum": 2000,
       "minimum": 0
      },
      "full_page": {
       "type": "boolean",
       "title": "Full Page",
       "default": true
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "title": "ResponseEnvelope[BrowserScreenshotData]",
     "required": [
      "data"
     ],
     "properties": {
      "ok": {
       "type": "boolean",
       "const": true,
       "title": "Ok",
       "default": true
      },
      "data": {
       "type": "object",
       "title": "BrowserScreenshotData",
       "required": [
        "png_base64",
        "width",
        "height",
        "bytes",
        "content_hash",
        "resource_requests",
        "resource_bytes"
       ],
       "properties": {
        "bytes": {
         "type": "integer",
         "title": "Bytes"
        },
        "width": {
         "type": "integer",
         "title": "Width"
        },
        "format": {
         "type": "string",
         "const": "png",
         "title": "Format",
         "default": "png"
        },
        "height": {
         "type": "integer",
      
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "data": {
   "bytes": 8,
   "width": 1280,
   "format": "png",
   "height": 720,
   "png_base64": "iVBORw0KGgo=",
   "content_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
   "resource_bytes": 0,
   "resource_requests": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-browser-screenshot-api-8d82bd6a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.feld-feder.at](https://www.zero.xyz/host/x402.feld-feder.at/llms.txt)
