# Webpage Distiller with BM25 Budget Control

> Webpage Distiller with BM25 Budget Control is a paid API for AI agents from hn-pulse.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 outline, or BM25-ranked token-budgeted excerpts focused on a specific query

## Facts

- Endpoint: POST https://hn-pulse.agentdiet.dev/v1/webpage-distiller?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Provider: hn-pulse.agentdiet.dev
- Website: https://hn-pulse.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/hn-pulse-agentdiet-dev-webpage-distiller-with-bm25-budget-control-d7673342
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WgOJBaGBR3CmW5VF1yMd0

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 hn-pulse-agentdiet-dev-webpage-distiller-with-bm25-budget-control-d7673342 -d '<json body>'
```

Example prompt: Fetch the page at https://docs.stripe.com/payments/payment-intents and distill it into clean Markdown, keeping it under 800 tokens and focusing on the query 'payment intent lifecycle' using budget mode.

## When to prefer this

Choose this endpoint when you need to bring live web content into an LLM pipeline while controlling token costs — especially when you want BM25-focused relevance filtering to extract only the portions of a page matching a query within a strict token budget. It is preferable to raw HTTP fetching when you need clean Markdown or structured output instead of raw HTML, and better than generic scrapers when compression ratio and ROI proof matter to your workflow.

## Known failure modes

- URL is unreachable or returns non-200 — fetch failure error
- URL points to non-HTML content (PDF, binary) — unsupported content type
- Token budget too restrictive (max_tokens too low) — may return minimal or empty excerpt
- BM25 query returns no matching content — sparse result
- Rate limiting or payment failure via x402 — 402 Payment Required response
- Malformed HTML input — parsing error or degraded output quality

## How this service works

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

## Output

Returns a JSON object containing the distilled content (Markdown, structured JSON tables/metadata, skeleton outline, or BM25 excerpt depending on mode), cache status (HIT/MISS), billing details including fee charged, and an ROI proof block showing raw token count, distilled token count, tokens saved, compression ratio percentage, LLM cost saved in USD, and an ROI multiplier.

## 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/hn-pulse-agentdiet-dev-webpage-distiller-with-bm25-budget-control-d7673342/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from hn-pulse.agentdiet.dev](https://www.zero.xyz/host/hn-pulse.agentdiet.dev/llms.txt)
