# Adam Hale Tools: Page Markdown Extractor

> Adam Hale Tools: Page Markdown Extractor is a paid API for AI agents from tools.adamhaleworks.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-17).

Fetches up to 3 public web pages and returns their content as clean Markdown, along with metadata like title, language, word count, and links.

## Facts

- Endpoint: GET https://tools.adamhaleworks.workers.dev/x402/v1/page-markdown?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/adam-hale-tools-page-markdown-extractor-48387613
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_lpcoJT7zbcM8JAFRf3bGf

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 adam-hale-tools-page-markdown-extractor-48387613
```

Example prompt: Can you fetch the content of https://www.example.com/blog/article and return it as markdown so I can read and summarize it?

## When to prefer this

Use this endpoint when you need to read the human-readable text content of one to three public web pages and receive it in Markdown format suitable for LLM processing, summarization, or analysis. It is ideal for fetching article content, documentation pages, or landing page copy. Prefer this over raw HTML scrapers when you want clean, structured text without dealing with HTML parsing.

## Known failure modes

- Private or internal hostnames (IPs, localhost, internal DNS) are rejected
- Non-existent or unreachable URLs return ok:false with an error
- Pages requiring authentication or behind paywalls may return incomplete or empty markdown
- More than 3 URLs in a single request exceeds the limit
- Very long pages may have content truncated (contentTruncated: true)
- Non-HTML content types (PDFs, images) may not convert cleanly to markdown

## How this service works

Guides and free-to-run Apify actors for bulk tech stack lookup, sitemap URL export to CSV, TED and UK Find a Tender search, and RSS-to-JSON feed monitoring.

## Output

Returns a JSON object with a count of attempted URLs, a success/failure tally, and a results array. Each result includes the input URL, the final (redirected) URL, the canonical URL, the page title, language code, word count, link count, HTTP status, content type, meta description, a truncation flag, and the full page content converted to Markdown.

## 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": [
      "urls"
     ],
     "properties": {
      "urls": {
       "type": "string",
       "description": "Up to 3 page URLs, comma-separated. A bare domain means its https:// homepage. Public hosts only (no IPs, no internal names), ports 80/443."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "failed": 0,
  "results": [
   {
    "ok": true,
    "input": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402",
    "result": {
     "url": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402",
     "lang": "en-US",
     "title": "402 Payment Required - HTTP | MDN",
     "finalUrl": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402",
     "markdown": "# 402 Payment Required\n\nThe HTTP **`402 Payment Required`** [client error response](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status#client_error_responses) status code is a **nonstandard** response status code reserved for future use.\n\n…",
     "canonical": "https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/402",
     "linkCount": 14,
     "wordCount": 322,
     "httpStatus": 200,
     "contentType": "text/html",
     "description": "The HTTP 402 Payment Required client error response status code is a nonstandard response status code reserved for future use.",
     "contentTruncated": false
    }
   }
  ],
  "succeeded": 1
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/adam-hale-tools-page-markdown-extractor-48387613/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tools.adamhaleworks.workers.dev](https://www.zero.xyz/host/tools.adamhaleworks.workers.dev/llms.txt)
