# AgentDiet BM25 Budget-Controlled Web Distiller

> AgentDiet BM25 Budget-Controlled Web Distiller is a paid API for AI agents from workflows.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 compact, token-efficient output using BM25 budget control to focus on a query within a strict token ceiling

## Facts

- Endpoint: POST https://workflows.agentdiet.dev/api/diet?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Provider: workflows.agentdiet.dev
- Website: https://workflows.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/workflows-agentdiet-dev-agentdiet-bm25-budget-controlled-web-distiller-70fae633
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HB-rsEmnHPVGQBPIgSgLr

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 workflows-agentdiet-dev-agentdiet-bm25-budget-controlled-web-distiller-70fae633 -d '<json body>'
```

Example prompt: Distill the page at https://stripe.com/docs/payments into a BM25 budget excerpt focused on 'webhook events', keeping it under 300 tokens so I can fit it in my context window.

## When to prefer this

Choose this endpoint when an AI agent needs to read web content but must stay within a strict token budget — especially useful when using BM25 mode to focus on a specific query topic within a large page. Prefer it over generic scrapers when token efficiency and LLM cost savings are primary concerns, or when you need structured extraction (tables, metadata) or skeleton outlines rather than full-page dumps.

## Known failure modes

- Invalid or unreachable URL returns a fetch error
- Raw HTML too malformed to parse returns a distillation error
- max_tokens set below minimum of 20 returns a validation error
- BM25 mode without a query field may return unranked or full excerpt
- Rate limiting or payment failure returns HTTP 402
- Idempotency key collision may return cached prior result

## How this service works

Distill a URL or raw HTML payload with BM25 budget control (Live x402 v2, IETF MPP & MCP endpoint at https://workflows.agentdiet.dev/api/diet)

## Output

Returns a JSON object containing distilled content (markdown, structured JSON tables/metadata, skeleton outline, or BM25 budget excerpt), plus an ROI proof block showing raw vs distilled token counts, compression ratio percentage, 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/workflows-agentdiet-dev-agentdiet-bm25-budget-controlled-web-distiller-70fae633/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from workflows.agentdiet.dev](https://www.zero.xyz/host/workflows.agentdiet.dev/llms.txt)
