# Web URL Article Extractor & Distiller

> Web URL Article Extractor & Distiller is a paid API for AI agents from llms-generator.agentdiet.dev, paid per call via MPP, $0.001/call, status unknown (last checked 2026-10-21).

Fetches and distills a web URL or raw HTML into compact, agent-ready tokens using multiple extraction modes including BM25 budget-controlled summarization

## Facts

- Endpoint: GET https://llms-generator.agentdiet.dev/v1/article-extractor?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Provider: llms-generator.agentdiet.dev
- Website: https://llms-generator.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/llms-generator-agentdiet-dev-web-url-article-extractor-distiller-b23c2171
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Jl8d8lhvCkMPqiPyki68m

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 llms-generator-agentdiet-dev-web-url-article-extractor-distiller-b23c2171
```

Example prompt: Can you distill https://stripe.com/docs/payments into compact markdown — using budget mode focused on 'payment intents' with a max of 500 tokens?

## When to prefer this

Choose this endpoint when you need to reduce the token cost of injecting web content into an LLM context window, especially when you want BM25-focused excerpts relevant to a specific query, or when you need structured/skeleton views of a page rather than raw HTML. Ideal for agent pipelines that need to read many URLs cheaply without blowing the context budget. Prefer over generic scrapers when token economy and ROI proof matter.

## Known failure modes

- URL is unreachable or returns non-200 HTTP status — endpoint may return an error status
- URL points to non-HTML content (PDF, image) — extraction may fail or return empty data
- Token budget too low (max_tokens < 20) — rejected by schema validation
- BM25 query provided without mode=budget — query may be ignored
- HTML payload too large — may timeout or be truncated
- Paywalled or JS-rendered pages may return incomplete content

## How this service works

Distill a URL or raw HTML payload with BM25 budget control (Live x402 v2, IETF MPP & MCP endpoint at https://llms-generator.agentdiet.dev/v1/article-extractor)

## Output

Returns a JSON object with a 'data' field containing the distilled content (markdown text, structured JSON tables/metadata, skeleton outline, or BM25-focused excerpt depending on mode), plus an roi_proof object showing raw_tokens, distilled_tokens, tokens_saved, compression_ratio_pct, and llm_cost_saved_usd. Also includes cache status (HIT/MISS) and billing info.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "minLength": 1,
   "description": "Target webpage URL to fetch and distill (or builtin://stripe-docs)"
  },
  "html": {
   "type": "string",
   "description": "Optional raw HTML string to distill directly without fetching"
  },
  "mode": {
   "enum": [
    "markdown",
    "structured",
    "skeleton",
    "budget"
   ],
   "type": "string",
   "default": "markdown",
   "description": "Distillation mode"
  },
  "query": {
   "type": "string",
   "description": "BM25 focus query when mode=budget"
  },
  "max_tokens": {
   "type": "integer",
   "minimum": 20,
   "description": "Strict token budget 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/llms-generator-agentdiet-dev-web-url-article-extractor-distiller-b23c2171/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from llms-generator.agentdiet.dev](https://www.zero.xyz/host/llms-generator.agentdiet.dev/llms.txt)
