# Web URL Distillation & Content Extraction API

> Web URL Distillation & Content Extraction API is a paid API for AI agents from serp-extract.agentdiet.dev, paid per call via MPP, $0.001/call, status unknown (last checked 2026-10-21).

Fetches a webpage URL (or raw HTML) and distills it into compact, agent-ready tokens using BM25 budget control and multiple extraction modes

## Facts

- Endpoint: GET https://serp-extract.agentdiet.dev/v1/paywall-clean-extract?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Provider: serp-extract.agentdiet.dev
- Website: https://serp-extract.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/serp-extract-agentdiet-dev-web-url-distillation-content-extraction-api-fa800507
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_P0Y-ckn-vtuHupBwXun1V

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 serp-extract-agentdiet-dev-web-url-distillation-content-extraction-api-fa800507
```

Example prompt: Fetch https://stripe.com/docs/payments and distill it into compact markdown, then give me a budget excerpt focused on 'webhook events' under 500 tokens so I can pass it to my LLM without blowing the context window.

## When to prefer this

Choose this endpoint when your agent needs to ingest web content but must stay within LLM context or cost limits — especially when you need BM25-ranked focused excerpts (mode=budget), clean Markdown distillation, or structured JSON extraction from arbitrary URLs. Prefer it over generic scrapers when token economy and ROI tracking matter, or when you need to pass web content downstream to an LLM and want compression metrics to justify the fetch cost.

## Known failure modes

- Invalid or unreachable URL returns an error status
- URL behind a hard paywall that cannot be fetched returns empty or partial content
- Exceeding the x402 payment budget or missing payment headers results in 402 Payment Required
- mode=budget without a query parameter may return unfiltered or degraded output
- Very large pages may exceed processing limits or produce high token counts before compression
- HTML parameter conflicts with URL fetch if both are provided simultaneously

## How this service works

Distill a web URL into compact agent-ready tokens (Live x402 v2, IETF MPP & MCP endpoint at https://serp-extract.agentdiet.dev/v1/paywall-clean-extract)

## Output

Returns a distilled version of the requested webpage in the chosen format (Markdown, structured JSON, skeleton outline, or BM25-ranked budget excerpt), along with an roi_proof object showing raw vs. distilled token counts, tokens saved, compression ratio percentage, estimated LLM cost saved in USD, and an ROI multiplier. Also includes cache status (HIT/MISS) and billing details.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "minLength": 1,
   "description": "Target webpage URL to distill (or builtin://stripe-docs)"
  },
  "mode": {
   "enum": [
    "markdown",
    "structured",
    "skeleton",
    "budget"
   ],
   "type": "string",
   "default": "markdown",
   "description": "Extraction mode: markdown, structured, skeleton, or budget"
  },
  "limit": {
   "type": "integer",
   "default": 20,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum number of items to return per page (1-100)"
  },
  "query": {
   "type": "string",
   "description": "BM25 focus query when mode=budget"
  },
  "cursor": {
   "type": "string",
   "description": "Opaque pagination cursor for fetching the next page"
  },
  "max_tokens": {
   "type": "integer",
   "minimum": 20,
   "description": "Strict token ceiling when mode=budget"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "roi_proof",
  "data"
 ],
 "properties": {
  "data": {
   "type": "object",
   "description": "Distilled Markdown, structured JSON tables/metadata, skeleton outline, or BM25 budget excerpt."
  },
  "cache": {
   "type": "object",
   "properties": {
    "status": {
     "enum": [
      "HIT",
      "MISS"
     ],
     "type": "string"
    },
    "cache_key": {
     "type": "string"
    },
    "latency_ms": {
     "type": "number"
    }
   }
  },
  "status": {
   "type": "string",
   "description": "Execution status ('ok')"
  },
  "billing": {
   "type": "object",
   "properties": {
    "agent_id": {
     "type": "string"
    },
    "payment_method": {
     "type": "string"
    },
    "fee_charged_usd": {
     "type": "number"
    }
   }
  },
  "roi_proof": {
   "type": "object",
   "properties": {
    "raw_tokens": {
     "type": "integer"
    },
    "tokens_saved": {
     "type": "integer"
    },
    "roi_multiplier": {
     "type": "number"
    },
    "distilled_tokens": {
     "type": "integer"
    },
    "llm_cost_saved_usd": {
     "type": "number"
    },
    "compression_ratio_pct": {
     "type": "number"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/serp-extract-agentdiet-dev-web-url-distillation-content-extraction-api-fa800507/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from serp-extract.agentdiet.dev](https://www.zero.xyz/host/serp-extract.agentdiet.dev/llms.txt)
