# PageWire Crawl — Web Pages to Markdown for AI Agents

> PageWire Crawl — Web Pages to Markdown for AI Agents is a paid API for AI agents from pagewire.dev, paid per call via x402, $0.03/call, status unknown (last checked 2026-10-12).

Fetches a public web page and up to 4 linked pages, returning each as clean Markdown with metadata, paid per call in USDC with no account or API key required.

## Facts

- Endpoint: GET https://pagewire.dev/x402/crawl?utm_source=zero.xyz
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pagewire-crawl-web-pages-to-markdown-for-ai-agents-a8aa1784
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_VYh4vo6ZAHG61ksteUaYN

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 pagewire-crawl-web-pages-to-markdown-for-ai-agents-a8aa1784
```

Example prompt: Can you fetch https://docs.example.com/getting-started and also read up to 3 linked pages under /docs/, converting everything to Markdown so I can use it?

## When to prefer this

Choose PageWire when your AI agent needs to read one or a small cluster of web pages (up to 5 total) as clean Markdown without setting up an account or API key — ideal for per-call, pay-as-you-go use cases using USDC micropayments. Prefer this over general scraping APIs when you want structured metadata (title, word count, status) alongside the Markdown, or when you need lightweight crawling constrained to a specific path prefix.

## Known failure modes

- Target URL is not publicly accessible or returns non-200 status (status field reflects HTTP error)
- Page content exceeds size limits, resulting in truncated Markdown (truncated: true)
- Invalid or malformed URL provided in query params
- Linked pages outside the specified prefix are silently excluded
- Payment failure via x402/MPP prevents the request from being processed
- Dynamic JavaScript-rendered pages may return incomplete content if JS is not executed

## How this service works

Pay-per-call web reading API and MCP server for AI agents: page to Markdown, metadata and small crawls. USDC via x402 or MPP, no account, no API key.

## Output

A JSON object containing a 'pages' array where each entry has the page URL, title, word count, HTTP status code, full Markdown content, and a truncation flag; plus the original start URL and a 'skipped' array of any URLs that could not be fetched.

## 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",
    "queryParams"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri",
       "description": "Public http(s) page to fetch"
      },
      "limit": {
       "type": "string",
       "description": "Linked pages to read, 0-4 (default 4)"
      },
      "prefix": {
       "type": "string",
       "description": "Optional path prefix the linked pages must start with, e.g. /docs/"
      }
     },
     "additionalProperties": false
    }
   }
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "properties": {
      "pages": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string"
         },
         "title": {
          "type": "string"
         },
         "words": {
          "type": "number"
         },
         "status": {
          "type": "number"
         },
         "markdown": {
          "type": "string"
         },
         "truncated": {
          "type": "boolean"
         }
        }
       }
      },
      "start": {
       "type": "string"
      },
      "skipped": {
       "type": "array",
       "items": {}
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "pages": [
   {
    "url": "https://example.com/",
    "title": "Example Domain",
    "words": 8,
    "status": 200,
    "markdown": "This domain is for use in documentation examples.",
    "truncated": false
   }
  ],
  "start": "https://example.com/",
  "skipped": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pagewire-crawl-web-pages-to-markdown-for-ai-agents-a8aa1784/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from pagewire.dev](https://www.zero.xyz/host/pagewire.dev/llms.txt)
