# Web Content Extractor (ai-policy-kit)

> Web Content Extractor (ai-policy-kit) is a paid API for AI agents from ai-policy-kit.moneymaker-ai.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-19).

Fetches and extracts text content, metadata, links, and structured information from a public URL

## Facts

- Endpoint: GET https://ai-policy-kit.moneymaker-ai.workers.dev/api/web-extract?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/web-content-extractor-ai-policy-kit-ac3d5ec9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_lZJEgx0tfyTNcb8McdoYg

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 web-content-extractor-ai-policy-kit-ac3d5ec9
```

Example prompt: Can you fetch the content of https://github.com/torvalds/linux/blob/master/README and extract the text and any metadata from the page, with a max of 10000 characters?

## When to prefer this

Use this endpoint when you need to fetch and extract readable text and metadata from any public URL in a structured JSON format. It is particularly useful when you need page title, description, open graph tags, headings, link counts, and clean body text without writing your own scraper. Choose this over a full browser automation tool when you need fast, lightweight extraction from publicly accessible pages.

## Known failure modes

- URL is not publicly accessible (private or firewalled) — returns non-200 HTTP status
- Invalid or malformed URL provided — request fails with validation error
- Page blocks bots via robots.txt — still fetched but flagged as disallowed
- Text truncated if page body exceeds 2MB — body_truncated_at_2mb set to true
- max_chars out of range (must be 500–50000) — validation error
- Timeout on slow-loading pages — request may fail or return partial content

## How this service works

Generate an AI_POLICY.md and a pull request template with an AI-disclosure section for your open-source repo. Free, runs in your browser.

## Output

Returns a JSON object containing the extracted page text, title, meta description, detected language, HTTP status code, word count, internal and external link counts, headings, canonical URL, open graph data, JSON-LD types, favicon, robots rules, content type, last modified date, and whether the text was truncated.

## 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"
      },
      "max_chars": {
       "type": "string",
       "description": "optional text limit, 500-50000 (default 20000)"
      }
     }
    }
   },
   "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/",
  "lang": "en",
  "meta": {},
  "text": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
  "links": {
   "sample": [],
   "external": 0,
   "internal": 0
  },
  "title": "Example Domain",
  "robots": {
   "rule": "robots.txt HTTP 404 (treated as allow)",
   "allowed": true,
   "checked": true
  },
  "favicon": "data:,",
  "headings": [],
  "canonical": null,
  "final_url": "https://example.com/",
  "open_graph": {},
  "word_count": 25,
  "description": null,
  "http_status": 200,
  "text_source": "body",
  "content_type": "text/html; charset=utf-8",
  "jsonld_types": [],
  "x_robots_tag": null,
  "last_modified": "Tue, 13 Oct 2026 22:05:48 GMT",
  "text_truncated": false,
  "body_truncated_at_2mb": false
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/web-content-extractor-ai-policy-kit-ac3d5ec9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ai-policy-kit.moneymaker-ai.workers.dev](https://www.zero.xyz/host/ai-policy-kit.moneymaker-ai.workers.dev/llms.txt)
