# Screenshot API – PDF Capture

> Screenshot API – PDF Capture is a paid API for AI agents from screenshot.payapi.market, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-23).

Renders a URL as a PDF using headless Chromium and returns the base64-encoded PDF bytes with configurable paper size and load state.

## Facts

- Endpoint: POST https://screenshot.payapi.market/capture/pdf?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/screenshot-api-pdf-capture-b61bec40
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WuwKlWtE6hRl7bAMX7KnT

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 screenshot-api-pdf-capture-b61bec40 -d '<json body>'
```

Example prompt: Can you turn https://example.com/report into a PDF for me using A4 paper and wait until the network is idle before capturing?

## When to prefer this

Choose this endpoint when you need a paginated, print-ready PDF representation of a live web page with full Chromium rendering (CSS, JS, fonts), configurable paper size (A4, A3, Letter, Legal, Tabloid), and control over the page load state before capture. It is ideal over screenshot endpoints when the output must be a vector PDF document rather than a raster image.

## Known failure modes

- Internal or loopback host URLs are rejected with an error
- Invalid format enum values result in a bad request error
- Pages that never reach the specified load state may time out
- Network errors or unreachable URLs return a capture failure response
- Very large or complex pages may produce oversized PDFs or time out

## How this service works

Headless Chromium screenshots, PDFs, full-page captures and element captures, with x402 payments.

## Output

A JSON object containing the original URL, the page title, the paper format used, the final resolved URL (after redirects), the PDF as a base64-encoded string, and the file size in bytes.

## 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."
  },
  "format": {
   "type": "string",
   "description": "Paper size: 'A4', 'A3', 'Letter', 'Legal', or 'Tabloid'. Defaults to 'A4'."
  },
  "wait_until": {
   "type": "string",
   "description": "Playwright load state to wait for before capture: 'load', 'domcontentloaded', 'networkidle', or 'commit'. Defaults to 'networkidle'."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://example.com",
  "title": "Example Domain",
  "format": "A4",
  "final_url": "https://example.com/",
  "pdf_base64": "JVBERi0xLjQKJeLjz9MK... (base64-encoded PDF bytes, truncated)",
  "size_bytes": 45678
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/screenshot-api-pdf-capture-b61bec40/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from screenshot.payapi.market](https://www.zero.xyz/host/screenshot.payapi.market/llms.txt)
