# Full-Page Screenshot Capture API

> Full-Page Screenshot Capture API is a paid API for AI agents from screenshot-api-production-fe7e.up.railway.app, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Captures a full-page (scrolled) PNG screenshot of any public HTTP/HTTPS URL and returns it base64-encoded in a JSON envelope with metadata.

## Facts

- Endpoint: POST https://screenshot-api-production-fe7e.up.railway.app/capture/fullpage
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/full-page-screenshot-capture-api-0e6cf378
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_I4UX_Z-jGvFle2PBtvEPY

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 full-page-screenshot-capture-api-0e6cf378 -d '<json body>'
```

Example prompt: Take a full-page screenshot of https://stripe.com/pricing — capture the entire scrollable page at 1440px wide, waiting until the network is idle, and give me the PNG as base64.

## When to prefer this

Choose this endpoint when you need the full scrolled content of a webpage captured as a single PNG — not just the visible viewport. Prefer it over the viewport-only screenshot endpoint when the target page has significant below-the-fold content (landing pages, documentation, product listings). Use it over the element-selector endpoint when you want the whole page rather than an isolated component, and over the PDF endpoint when you need an image format (PNG) rather than a printable document.

## Known failure modes

- Internal/loopback hostnames (e.g. localhost, 192.168.x.x) are rejected with an error
- Invalid or unreachable URLs result in a capture failure
- Pages that never reach the requested wait_until state (e.g. networkidle never fires) may time out
- Viewport width outside the 320–3840 range may be rejected or clamped
- Non-HTTP/HTTPS schemes are rejected
- Very long pages may produce extremely large base64 payloads

## How this service works

Capture a full-page (scrolled) PNG screenshot of an http(s) URL; returns a JSON envelope with the PNG base64-encoded under image_base64, plus final_url, title, viewport, and size.

## Output

A JSON object containing: image_base64 (the full-page PNG encoded as a base64 string), final_url (the resolved URL after any redirects), title (the page title), viewport (object with width and height), and size (byte size of the image).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "The http(s) URL to capture, e.g. 'https://example.com'. Internal/loopback hosts are rejected."
  },
  "width": {
   "type": "integer",
   "description": "Viewport width in pixels (320-3840). Defaults to 1280. Height auto-extends to the full page."
  },
  "wait_until": {
   "type": "string",
   "description": "Playwright load state to wait for before capture: 'load', 'domcontentloaded', 'networkidle', or 'commit'. Defaults to 'networkidle'."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/full-page-screenshot-capture-api-0e6cf378/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from screenshot-api-production-fe7e.up.railway.app](https://www.zero.xyz/host/screenshot-api-production-fe7e.up.railway.app/llms.txt)
