# Web URL Distiller & Article Extractor

> Web URL Distiller & Article Extractor is a paid API for AI agents from shopify-spy.agentdiet.dev, paid per call via MPP, $0.001/call, status unknown.

Fetches and distills any web URL or raw HTML into compact, agent-ready tokens using markdown, structured, skeleton, or BM25 budget modes

## Facts

- Endpoint: GET https://shopify-spy.agentdiet.dev/v1/article-extractor?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Activations on Zero: 0
- Provider: shopify-spy.agentdiet.dev
- Website: https://shopify-spy.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/shopify-spy-agentdiet-dev-web-url-distiller-article-extractor-4f0edec4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_jtuIphTceH8qxjBZjIn-q

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 shopify-spy-agentdiet-dev-web-url-distiller-article-extractor-4f0edec4
```

Example prompt: Can you distill https://stripe.com/docs/payments/checkout into clean markdown and tell me how many tokens you saved compared to the raw page?

## When to prefer this

Choose this endpoint when your agent needs to read and process web pages efficiently without consuming large token budgets — especially useful in RAG pipelines, research agents, or documentation summarizers. Prefer it over raw fetch+parse when you want built-in BM25 relevance filtering, structured extraction, or skeleton outlining in a single API call. The ROI proof output makes it easy to justify token savings. Particularly suited for agentic workflows where LLM cost per call matters.

## Known failure modes

- Invalid or unreachable URL returns a fetch error
- Missing required 'url' parameter causes a 400 validation error
- BM25 budget mode requires both 'query' and 'max_tokens' to be meaningful; omitting them may return unfiltered content
- Very large pages may hit processing limits or return partial content
- Payment failure via x402 prevents call completion
- HTML-only payloads that lack article-like structure may produce low-quality extractions

## How this service works

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

## Output

Returns a 'data' object containing the distilled content (markdown text, structured JSON tables/metadata, skeleton outline, or BM25-focused excerpt depending on mode), alongside an 'roi_proof' object showing raw token count, distilled token count, tokens saved, compression ratio percentage, ROI multiplier, and estimated LLM cost saved in USD. Also includes optional billing details and cache status (HIT/MISS).

## 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/shopify-spy-agentdiet-dev-web-url-distiller-article-extractor-4f0edec4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from shopify-spy.agentdiet.dev](https://www.zero.xyz/host/shopify-spy.agentdiet.dev/llms.txt)
