# ScrapeMole Reader – Extract All Links from a Web Page

> ScrapeMole Reader – Extract All Links from a Web Page is a paid API for AI agents from reader.scrapemole.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-12).

Fetches all hyperlinks from any public web page and returns them as a structured list with URL, anchor text, internal/external classification, and occurrence count.

## Facts

- Endpoint: GET https://reader.scrapemole.workers.dev/v1/links?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scrapemole-reader-extract-all-links-from-a-web-page-951576b8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Grn_phnVomdeXnnCi6LNR

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 scrapemole-reader-extract-all-links-from-a-web-page-951576b8
```

Example prompt: Can you pull all the external links from https://example.com and give me a list with their anchor text? Limit it to 200 links.

## When to prefer this

Choose this endpoint when you need a structured, deduplicated list of all hyperlinks on a specific page — including anchor text, internal/external classification, and occurrence counts — without needing the full page content. It is ideal for SEO audits, link graph analysis, site structure discovery, and outbound link monitoring. Prefer sibling endpoints for full Markdown content, SEO metadata, or RSS feeds.

## Known failure modes

- Page not publicly accessible or behind a login wall — returns error, no charge
- Invalid or malformed URL provided — request rejected
- Page returns non-200 status — call fails and is not charged
- Link limit parameter out of range (must be 1–2000) — validation error
- Page has no links — returns empty links array with zero counts

## How this service works

Pay-per-call web reading for agents: any public page as clean Markdown, link-preview/SEO metadata (Open Graph, Twitter card, favicon, JSON-LD), RSS/Atom/JSON feeds normalized, every link on a page (internal/external, rel) and a site's XML sitemap as a URL list. USDC via x402, no accounts or API keys; failed calls are never charged.

Payments: x402 v2, scheme "exact", USDC on Base (eip155:8453). The payment is verified before the work and settled only when the response is 200. Terms: https://reader.scrapemole.workers.dev/terms

## Output

A JSON object containing the source URL, final (redirected) URL, total anchor count, internal link count, external link count, and an array of link objects each with: url, anchor text, internal flag, and occurrence count on the page.

## 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",
       "examples": [
        "https://www.sitemaps.org"
       ],
       "description": "Public http(s) URL of the page."
      },
      "type": {
       "enum": [
        "all",
        "internal",
        "external"
       ],
       "type": "string",
       "default": "all",
       "description": "Which links to return."
      },
      "limit": {
       "type": "string",
       "default": "500",
       "description": "Max distinct links (1-2000)."
      }
     },
     "additionalProperties": false
    }
   },
   "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://iana.org/domains/example",
    "text": "Learn more",
    "count": 1,
    "internal": false
   }
  ],
  "finalUrl": "https://example.com/",
  "totalAnchors": 1,
  "externalCount": 1,
  "internalCount": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/scrapemole-reader-extract-all-links-from-a-web-page-951576b8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from reader.scrapemole.workers.dev](https://www.zero.xyz/host/reader.scrapemole.workers.dev/llms.txt)
