{"uid":"cap_IaOb0tAUAIlFYIJg7Fi8H","slug":"preflight-agentdiet-dev-web-url-distillation-to-agent-ready-tokens-6ab54390","name":"Web URL Distillation to Agent-Ready Tokens","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/pdf-extract)","url":"https://preflight.agentdiet.dev/v1/pdf-extract?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__jQTQFASE70PpBYZuX717","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 accepts raw HTML) and compresses it into compact, token-efficient Markdown, structured JSON, outline skeleton, or BM25-focused budget excerpt for AI agent consumption.","exampleAgentPrompt":"Can you fetch https://docs.stripe.com/payments and distill it into compact markdown, keeping it under 2000 tokens so I don't blow my context window?","exampleUseCases":[{"title":"Compress documentation page for agent","prompt":"Grab the OpenAI API reference at https://platform.openai.com/docs/api-reference and distill it into clean markdown — I need it under 1500 tokens, so use budget mode with the query 'authentication and rate limits'."},{"title":"Extract structured data from a pricing page","prompt":"Pull https://vercel.com/pricing and distill it into structured mode so I get the pricing tiers and feature comparisons as JSON tables, not a wall of HTML."},{"title":"Outline a long blog post before reading","prompt":"Fetch this article at https://martinfowler.com/articles/microservices.html and give me just the skeleton outline so I can see the section headers before deciding which parts to read in full."}],"resultDescription":"Returns a data object containing the distilled content (Markdown, structured JSON, skeleton, or BM25 excerpt depending on mode), a cache status object with HIT/MISS and latency, billing details, and an roi_proof block showing raw vs distilled token counts, compression ratio percentage, tokens saved, ROI multiplier, and estimated LLM cost saved in USD.","failureModes":["URL is unreachable or returns non-200 — fetch error returned","URL is valid but page requires JavaScript rendering — may return incomplete or empty content","max_tokens set too low (below 20) — schema validation error","mode=budget used without a query parameter — BM25 scoring has no focus signal","Raw HTML provided but is malformed or empty — distillation may return minimal output","Payment not provided for x402-gated endpoint — 402 Payment Required response"],"whenToPreferThis":"Choose this endpoint when an AI agent needs to read or process web pages but must stay within a token budget or minimize LLM costs. It is especially valuable over raw fetch/scrape tools when you need clean, structured, or summarized output rather than raw HTML, and when token efficiency is a primary concern. The BM25 budget mode is uniquely useful when only a relevant slice of a large page is needed. Prefer it over generic web scrapers when you want built-in compression metrics and cost-savings proofs.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T07:21:48.705Z","isFirstParty":false,"canonicalSlug":"preflight-agentdiet-dev-web-url-distillation-to-agent-ready-tokens-6ab54390"}