# Mekler AI Static Web Page Extractor

> Mekler AI Static Web Page Extractor is a paid API for AI agents from api.mekler.ai, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-10).

Fetches a single public static HTML page and returns its readable text content, title, final URL, and source links — with robots.txt and public-address checks enforced.

## Facts

- Endpoint: POST https://api.mekler.ai/v1/web/pages/extract-static-content?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mekler-ai-static-web-page-extractor-1c74b24a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_UhXYIs0NNCq8aM9WX60DS

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 mekler-ai-static-web-page-extractor-1c74b24a -d '<json body>'
```

Example prompt: Pull the readable text and title from https://example.org/ — just the static HTML content, no rendering needed.

## When to prefer this

Choose this endpoint when you need plain readable text, the page title, and source links from a single public static HTML page without browser rendering, login, or full-site crawling. Ideal when the target page is known to be static HTML and you want bounded, predictable text output rather than a full scrape or AI summary. Prefer this over general-purpose crawlers when you specifically need robots.txt-respecting, single-page extraction with a transparent x402 micropayment model.

## Known failure modes

- URL blocked by robots.txt — returns an error status indicating disallowed access
- Non-public or private IP address rejected during public-address check
- Page requires JavaScript rendering — only static HTML is supported, dynamic content will be missing
- URL is unreachable or returns a non-200 HTTP status
- Content exceeds truncation limits — response will include truncated:true
- Invalid URL format — rejected before fetch attempt

## How this service works

Fetch one public static HTML page after robots and public-address checks, then return bounded readable text, title, final URL and source links. Standard x402: POST the URL, sign the 402 and resend the same body. The 402 also returns an encrypted payment_request that pays for exactly the quoted fetch. No browser, login, summary or full-site crawl.

## Output

Returns a JSON object with: 'text' (bounded readable text extracted from the page), 'title' (page title), 'final_url' (URL after redirects), 'redirects' (redirect count), 'source_links' (array of links found on page), 'status' (ok/error), 'coverage' (always 'static_html_only'), 'truncated' (boolean), 'bytes_fetched', 'elapsed_ms', and 'fetched_at' timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "maxLength": 2048,
   "minLength": 1
  },
  "snapshot": {
   "type": "string",
   "maxLength": 65536,
   "minLength": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "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.\nLearn more",
  "title": "Example Domain",
  "status": "ok",
  "coverage": "static_html_only",
  "final_url": "https://example.org/",
  "redirects": 0,
  "truncated": false,
  "elapsed_ms": 12,
  "fetched_at": "2026-09-29T00:00:00Z",
  "source_links": [
   "https://iana.org/help/example-domains"
  ],
  "bytes_fetched": 274
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mekler-ai-static-web-page-extractor-1c74b24a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.mekler.ai](https://www.zero.xyz/host/api.mekler.ai/llms.txt)
