# Semantic HTML Pruner with BM25 Budget Control

> Semantic HTML Pruner with BM25 Budget Control is a paid API for AI agents from prompt-guard.agentdiet.dev, paid per call via MPP, $0.001/call, status unknown (last checked 2026-10-23).

Fetches and distills a webpage URL or raw HTML into compressed Markdown, structured JSON, a skeleton outline, or a BM25-focused token-budget excerpt

## Facts

- Endpoint: POST https://prompt-guard.agentdiet.dev/v1/semantic-html-pruner?utm_source=zero.xyz
- Price: $0.001/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Provider: prompt-guard.agentdiet.dev
- Website: https://prompt-guard.agentdiet.dev
- Canonical page: https://www.zero.xyz/c/prompt-guard-agentdiet-dev-semantic-html-pruner-with-bm25-budget-7428a08c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_guOMRniP6JgEar5m_Brgq

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 prompt-guard-agentdiet-dev-semantic-html-pruner-with-bm25-budget-7428a08c -d '<json body>'
```

Example prompt: Fetch and distill https://stripe.com/docs/api into clean markdown using budget mode, focused on 'payment intents', and keep it under 1000 tokens so I can fit it in my prompt.

## When to prefer this

Choose this endpoint when you need to reduce the token footprint of web content before passing it to an LLM, especially when you have a strict token budget or need to focus on a specific topic via BM25 ranking. It is ideal for agent pipelines that need to read web pages cheaply without burning large context windows. Prefer it over general web scrapers when compression ratio, ROI metrics, and LLM cost savings are important, or when you need structured JSON tables extracted from HTML rather than raw text.

## Known failure modes

- URL unreachable or returns non-200 — fetch failure with error status
- Invalid or empty URL provided — 422 validation error
- Token budget too small to produce meaningful output — truncation or error
- Raw HTML too large to process within limits — payload size error
- BM25 query missing when mode=budget — validation error
- Payment required but not provided — HTTP 402 response
- Idempotency key collision with differing request body — conflict 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://prompt-guard.agentdiet.dev/v1/semantic-html-pruner)

## Output

Returns a 'data' object containing distilled content in the requested format (Markdown, structured JSON tables/metadata, skeleton outline, or BM25-focused excerpt), along with an 'roi_proof' object showing raw vs. distilled token counts, compression ratio, tokens saved, and estimated LLM cost saved in USD. Also includes optional cache status 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/prompt-guard-agentdiet-dev-semantic-html-pruner-with-bm25-budget-7428a08c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from prompt-guard.agentdiet.dev](https://www.zero.xyz/host/prompt-guard.agentdiet.dev/llms.txt)
