{"uid":"cap_-f8_Zmdv1u9cAc-y5xwb2","slug":"hn-pulse-agentdiet-dev-html-to-markdown-web-distiller-with-bm25-9f3de88b","name":"HTML to Markdown Web Distiller with BM25 Budget Control","description":"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/html-to-markdown)","url":"https://hn-pulse.agentdiet.dev/v1/html-to-markdown?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"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"}}},"responseSchema":{"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"}}}}},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"0.001","displayCostAsset":"USD","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_dn-UfcIKMuSlN5fI0V37m","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":"hn-pulse.agentdiet.dev","brandSlug":"hn-pulse-agentdiet-dev-mpp","brandBaseUrl":"https://hn-pulse.agentdiet.dev","brandDocsUrl":null,"whatItDoes":"Fetches a URL or accepts raw HTML and converts it to compact, agent-ready Markdown, structured JSON, skeleton outline, or BM25-focused budget excerpt with token savings reporting","exampleAgentPrompt":"Fetch https://stripe.com/docs/api and distill it into compact markdown using budget mode, focused on 'authentication', keeping it under 500 tokens so I can use it without blowing my context window.","exampleUseCases":[{"title":"Summarize documentation for LLM context","prompt":"Grab https://docs.openai.com/api-reference and distill it into structured markdown so I can include it in my prompt without using too many tokens."},{"title":"BM25 focused research extraction","prompt":"Fetch https://en.wikipedia.org/wiki/Transformer_(machine_learning_model) in budget mode with the query 'attention mechanism' and cap it at 300 tokens — I only want the most relevant parts."},{"title":"Convert raw HTML to clean agent text","prompt":"I have a blob of raw HTML from a scraped product page — can you distill it into clean markdown so my agent can read the price, title, and description without parsing the whole mess?"}],"resultDescription":"Returns a JSON object with a 'data' field containing the distilled content (Markdown, structured JSON, skeleton, or BM25 excerpt), an 'roi_proof' object showing raw vs distilled token counts, compression ratio, tokens saved, and estimated LLM cost saved in USD, plus optional cache hit/miss status and billing details.","failureModes":["Invalid or unreachable URL returns an error status","Missing required 'url' parameter when no raw HTML is provided","mode=budget without a query or max_tokens may return unfiltered content","Very large pages may hit processing limits or incur higher latency","Payment failure via x402 results in 402 response blocking execution","HTML with heavy JavaScript rendering may not capture dynamic content"],"whenToPreferThis":"Choose this endpoint when an AI agent needs to read or process a webpage but wants to minimize token consumption and LLM cost — especially useful before passing web content into a large language model. Prefer it over raw fetch when you need BM25-focused excerpts around a specific query, a skeleton outline rather than full content, or structured JSON extraction from HTML tables and metadata. It is particularly valuable in agentic pipelines where context window space is scarce.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T07:21:34.708Z","isFirstParty":false,"canonicalSlug":"hn-pulse-agentdiet-dev-html-to-markdown-web-distiller-with-bm25-9f3de88b"}