# URL & HTML to Markdown Distiller with BM25 Budget Control

> URL & HTML to Markdown Distiller with BM25 Budget Control is a paid API for AI agents from arxiv-digest.agentdiet.dev, paid per call via MPP, $0.001/call, status unknown (last checked 2026-10-23).

Fetches a URL or accepts raw HTML and distills it into clean Markdown, structured JSON, skeleton outline, or a BM25-ranked token-budgeted excerpt.

## Facts

- Endpoint: POST https://arxiv-digest.agentdiet.dev/v1/docs-to-markdown?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Provider: arxiv-digest.agentdiet.dev
- Website: https://arxiv-digest.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/arxiv-digest-agentdiet-dev-url-html-to-markdown-distiller-with-bm25-a3bbf66b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_hRoLzPToWjHPvxsNqtQIH

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 arxiv-digest-agentdiet-dev-url-html-to-markdown-distiller-with-bm25-a3bbf66b -d '<json body>'
```

Example prompt: Fetch the content at https://docs.stripe.com/payments/payment-intents and distill it into clean markdown using budget mode, focused on the query 'authentication and confirmation flow', with a max of 800 tokens.

## When to prefer this

Choose this endpoint when you need to fetch and clean web content for LLM consumption while minimizing token usage and cost. It is especially useful when working with documentation pages, research papers, or HTML-heavy sites where raw content would bloat your context window. The BM25 budget mode makes it uniquely suited for RAG pipelines where you want only the most query-relevant content under a strict token cap. Prefer it over generic scrapers when you need built-in compression metrics and ROI proof for token savings.

## Known failure modes

- Invalid or unreachable URL returns an error status with fetch failure details
- Missing required 'url' field when no 'html' is provided returns a 400-level validation error
- mode=budget without a 'query' field may return unfiltered content or an error
- max_tokens set below minimum of 20 returns a validation error
- Paywalled or bot-protected pages may return empty or partial content
- Payment failure (x402) blocks execution and returns a 402 response

## How this service works

Distill a URL or raw HTML payload with BM25 budget control (Live x402 v2, IETF MPP & MCP endpoint at https://arxiv-digest.agentdiet.dev/v1/docs-to-markdown)

## Output

Returns a JSON object with a 'data' field containing the distilled content (Markdown string, structured tables/metadata JSON, skeleton outline, or BM25-ranked excerpt depending on mode), a 'roi_proof' object showing raw vs distilled token counts, compression ratio, tokens saved, and estimated LLM cost saved in USD, an optional 'cache' object indicating HIT/MISS status and latency, and a 'billing' object with fee charged and payment method.

## 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/arxiv-digest-agentdiet-dev-url-html-to-markdown-distiller-with-bm25-a3bbf66b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from arxiv-digest.agentdiet.dev](https://www.zero.xyz/host/arxiv-digest.agentdiet.dev/llms.txt)
