# Web Distillation with BM25 Budget Control

> Web Distillation with BM25 Budget Control is a paid API for AI agents from defi-yield.agentdiet.dev, paid per call via MPP, $0.001/call, status unknown (last checked 2026-10-23).

Fetches and distills a URL or raw HTML into compressed Markdown, structured JSON, skeleton outlines, or BM25-ranked token-budget excerpts focused on a query.

## Facts

- Endpoint: POST https://defi-yield.agentdiet.dev/v1/distill?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Provider: defi-yield.agentdiet.dev
- Website: https://defi-yield.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/defi-yield-agentdiet-dev-web-distillation-with-bm25-budget-control-9d15a7c2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Qham0EsmwaGvnaLkPGb0n

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 defi-yield-agentdiet-dev-web-distillation-with-bm25-budget-control-9d15a7c2 -d '<json body>'
```

Example prompt: Distill the content at https://stripe.com/docs/payments into clean markdown using budget mode, focused on the query 'payment intents', and keep it under 500 tokens.

## When to prefer this

Choose this endpoint when you need to feed web content to an LLM but want to minimize token usage and cost — especially when using BM25 budget mode to extract only query-relevant passages within a strict token ceiling. Prefer it over raw fetch/scrape endpoints when compression ratio, ROI tracking, and structured output modes (markdown, skeleton, structured JSON) are important. Also ideal when working with large documentation pages or HTML blobs that would otherwise overflow context windows.

## Known failure modes

- URL unreachable or returns non-200 — distillation cannot proceed
- HTML payload empty or malformed — skeleton/budget mode may return minimal output
- max_tokens too low to produce meaningful excerpt — truncated or error response
- query missing when mode=budget — BM25 scoring not applied, may fall back to default
- Payment failure via x402 — HTTP 402 returned if USDC balance insufficient
- Rate limiting or timeout on slow external URLs — latency spike or timeout error

## How this service works

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

## Output

Returns a JSON object containing distilled content (Markdown text, structured tables/metadata, skeleton outline, or BM25-ranked excerpt depending on mode), plus an roi_proof block showing raw vs distilled token counts, compression ratio, tokens saved, 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 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/defi-yield-agentdiet-dev-web-distillation-with-bm25-budget-control-9d15a7c2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from defi-yield.agentdiet.dev](https://www.zero.xyz/host/defi-yield.agentdiet.dev/llms.txt)
