{"uid":"cap_rPyDBXcW59xQGjmFnXXVf","slug":"preflight-agentdiet-dev-web-url-to-compact-markdown-distiller-bm25-366bff95","name":"Web URL to Compact Markdown Distiller (BM25 Budget Control)","description":"Distill a URL or raw HTML payload with BM25 budget control (Live x402 v2, IETF MPP & MCP endpoint at https://preflight.agentdiet.dev/v1/docs-to-markdown)","url":"https://preflight.agentdiet.dev/v1/docs-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_dkieUOQuL75h6X6qZ0FOa","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":"preflight.agentdiet.dev","brandSlug":"preflight-agentdiet-dev-mpp","brandBaseUrl":"https://preflight.agentdiet.dev","brandDocsUrl":null,"whatItDoes":"Fetches a webpage or raw HTML and distills it into compact, agent-ready Markdown, structured JSON, skeleton outline, or BM25-budget-controlled excerpt with token savings metrics","exampleAgentPrompt":"Fetch https://docs.stripe.com/payments/payment-intents and distill it into compact markdown using budget mode, focused on 'payment intent lifecycle', capped at 800 tokens — I want to see how many tokens you saved.","exampleUseCases":[{"title":"Compress API docs into agent context","prompt":"Grab https://docs.openai.com/api-reference/chat and distill it into clean markdown with a 1000-token budget, focused on the query 'streaming response format' — I need to fit it into my prompt without blowing the context window."},{"title":"Extract structured data from landing page","prompt":"Fetch https://www.anthropic.com/pricing and distill it in structured mode so I get the pricing tiers as clean JSON tables instead of raw HTML."},{"title":"Skeleton outline of long documentation","prompt":"Pull https://docs.aws.amazon.com/lambda/latest/dg/welcome.html and give me a skeleton outline of the page — just the headings and key structure so I can decide which section to read in full."}],"resultDescription":"Returns a 'data' object containing the distilled content (Markdown text, structured JSON tables/metadata, skeleton outline, or BM25-ranked budget excerpt depending on mode), plus an 'roi_proof' object showing raw_tokens, distilled_tokens, tokens_saved, compression_ratio_pct, roi_multiplier, and llm_cost_saved_usd. Also includes optional cache hit/miss status and billing details.","failureModes":["Invalid or unreachable URL returns an error status","URL behind login/paywalls cannot be fetched and returns an access error","max_tokens below 20 triggers validation error","BM25 budget mode without a 'query' parameter may return unfiltered or error response","Very large pages may time out or exceed processing limits","Malformed HTML input may result in degraded distillation quality"],"whenToPreferThis":"Choose this endpoint when you need to reduce the token footprint of web content before injecting it into an LLM prompt — especially when working with large documentation pages, API references, or any URL where raw content would exceed context limits. The BM25 budget mode is uniquely useful when you have a specific question and a hard token ceiling. Prefer this over generic scrapers when you need compression metrics (ROI proof) or structured/skeleton output modes rather than raw HTML or plain text.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T07:23:07.508Z","isFirstParty":false,"canonicalSlug":"preflight-agentdiet-dev-web-url-to-compact-markdown-distiller-bm25-366bff95"}