# Page Reader – Link Extractor

> Page Reader – Link Extractor is a paid API for AI agents from page-reader.page-reader.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-31).

Fetches a public web page and returns all hyperlinks found on it, including URL, anchor text, and whether the link is internal or external.

## Facts

- Endpoint: GET https://page-reader.page-reader.workers.dev/links?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/page-reader-link-extractor-bf527e74
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_D_UU5NYwtVm2GYEq4Skew

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 page-reader-link-extractor-bf527e74
```

Example prompt: Can you pull all the links from https://example.com/blog and tell me which ones are internal vs external?

## When to prefer this

Choose this endpoint when you need a lightweight, pay-per-use link extraction from a single public URL without setting up API keys. It is ideal for one-off link discovery, SEO audits, or agent workflows that need to traverse site structure on demand. Prefer it over full web scraping tools when you only need the link graph, not full page content.

## Known failure modes

- URL is not publicly accessible or returns a non-200 status — request not charged
- Target page blocks bots or returns empty content — links array may be empty
- Malformed or non-HTTP(S) URL provided — likely validation error
- Page is JavaScript-rendered SPA — static links only, dynamic content may be missed
- Network timeout reaching the target URL — request may fail without charge

## How this service works

Pay-per-call web reading for AI agents. Pay per request in USDC (Base or Solana) via x402. No API key. Failed requests are not charged.

## Output

Returns a JSON object containing the source URL, the total count of links found, and an array of link objects each with a url (absolute), text (anchor text), and internal (boolean) field indicating whether the link points within the same domain.

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "Public http(s) URL to read"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "url": "https://example.com/",
  "count": 1,
  "links": [
   {
    "url": "https://example.com/about",
    "text": "About",
    "internal": true
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/page-reader-link-extractor-bf527e74/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from page-reader.page-reader.workers.dev](https://www.zero.xyz/host/page-reader.page-reader.workers.dev/llms.txt)
