# Relaystation Web Screenshot

> Relaystation Web Screenshot is a paid API for AI agents from api.relaystation.ai, paid per call via x402, $0.01/call, live (last probed 2026-10-10).

Agents call it through Zero, which pays per call: no API key and no wallet of your own. New accounts start with $5.

Captures a screenshot of any public web page as PNG, JPEG, or WebP using headless Chromium with SSRF protection

## Facts

- Endpoint: POST https://api.relaystation.ai/v1/web/screenshot?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: healthy
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/relaystation-web-screenshot-0c96d7a5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_i-H6hjYRUM5fU9UY70-Na

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 relaystation-web-screenshot-0c96d7a5 -d '<json body>'
```

Example prompt: Take a full-page screenshot of https://example.com and give it to me as a PNG — wait 2000ms for the page to fully load and use a 1280x800 viewport.

## When to prefer this

Choose this endpoint when you need a quick, pay-per-use ($0.01) visual capture of a public web page without managing your own headless browser infrastructure. Ideal for agents that need occasional screenshots for monitoring, archiving, or thumbnail generation. Prefer this over self-hosted Puppeteer/Playwright when you want zero DevOps overhead and SSRF safety built in. Use alternatives if you need authenticated page capture, interaction/click simulation, or batch processing at very high volume.

## Known failure modes

- URL is unreachable or returns non-200 status — screenshot may fail or return blank
- SSRF guard blocks private/internal IP ranges — returns error for non-public URLs
- Page load timeout if waitMs is insufficient for heavy JavaScript pages
- Invalid image format enum value causes validation error
- Viewport dimensions out of range (must be 1–10000px) cause rejection
- URL exceeds 4096-character limit

## How this service works

$0.01/screenshot. Screenshot any public web page to PNG/JPEG/WebP — headless Chromium, SSRF-guarded. 155 tools, one balance — relaystation.ai

## Output

Returns a binary image file (PNG, JPEG, or WebP) representing the rendered visual state of the requested web page, captured via headless Chromium. The image reflects the page after any specified wait delay, at the configured viewport size, and optionally shows the full scrollable page content.

## 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",
     "properties": {
      "url": {
       "type": "string",
       "maxLength": 4096,
       "minLength": 1
      },
      "type": {
       "enum": [
        "png",
        "jpeg",
        "webp"
       ],
       "type": "string"
      },
      "waitMs": {
       "type": "integer",
       "maximum": 20000,
       "minimum": 0
      },
      "fullPage": {
       "type": "boolean"
      },
      "viewport": {
       "type": "object",
       "properties": {
        "width": {
         "type": "integer",
         "maximum": 10000,
         "minimum": 1
        },
        "height": {
         "type": "integer",
         "maximum": 10000,
         "minimum": 1
        }
       }
      }
     }
    },
    "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"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/relaystation-web-screenshot-0c96d7a5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.relaystation.ai](https://www.zero.xyz/host/api.relaystation.ai/llms.txt)
