# Distill > Distill sells pre-computed answers to narrow factual questions to AI agents, per call, over x402 (HTTP 402 and a USDC payment on Base). Every answer carries its sources, an as_of time, a computed confidence and the method version that produced it. No account, API key or signup. ## Sales tax Sales-tax rates in the 24 Streamlined Sales Tax states, read from each state’s own rate and boundary files: by ZIP+4, ZIP or street address, with every jurisdiction’s rate, the period it holds, and a quarterly change feed. Every answer cites the state files by URL and sha256. - [GET /v1/tax/sales-rate](https://data.spencermcw.com/v1/tax/sales-rate?zip=98101-3143&date=2026-10-19): The sales-tax rate at a US ZIP+4, ZIP or street address in a Streamlined Sales Tax state. $0.005 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `tax_sales_rate`. - [POST /v1/tax/sales-rate/batch](https://data.spencermcw.com/v1/tax/sales-rate/batch): Sales-tax rates for up to 100 US locations in one call (Streamlined Sales Tax states). $0.1 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `tax_sales_rate_batch`. - [GET /v1/tax/changes](https://data.spencermcw.com/v1/tax/changes?state=WA&entity=rate&limit=1): Quarterly sales-tax rate and boundary changes in the Streamlined Sales Tax states. $0.05 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `tax_changes`. ## Hospital prices Posted standard charges from the machine-readable files US hospitals must publish under 45 CFR 180 (Colorado first): for a CPT, HCPCS or MS-DRG code near a ZIP code, each hospital’s gross charge, discounted cash price and every payer and plan’s negotiated rate, with payers canonicalized; a payer comparison, a hospital comparison and a weekly change feed. Every answer cites the hospital’s file by URL and sha256. Posted rates, not a quote; not medical or financial advice. CPT codes come without their AMA descriptors. - [GET /v1/hospital/prices](https://data.spencermcw.com/v1/hospital/prices?code=A4550&zip=81052&radius_miles=10&payer=medicare&limit=1): Posted hospital prices for one billing code near a US ZIP code or point. $0.02 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `hospital_prices`. - [GET /v1/hospital/compare](https://data.spencermcw.com/v1/hospital/compare?code=470&hospitals=co-060001%2Cco-061323&payer=aetna): One billing code across up to 10 named hospitals, one normalized row each. $0.02 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `hospital_compare`. - [GET /v1/hospital/payers](https://data.spencermcw.com/v1/hospital/payers?code=470&zip=80631&radius_miles=15&plan_type=commercial): Negotiated prices for one billing code in one area, per canonical payer and plan type. $0.02 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `hospital_payers`. - [GET /v1/hospital/changes](https://data.spencermcw.com/v1/hospital/changes?limit=1): Hospital price and file changes, as a paged feed. $0.05 per call (x402, exact). Free tier: 3 free calls a day per IP, at most 3 rows per answer, with the header Distill-Free-Tier: use (without it an unpaid call answers 402). MCP tool `hospital_changes`. ## How to pay Paid routes use x402 v2. Call the route; it answers 402 with the payment requirements in the `PAYMENT-REQUIRED` header (base64 JSON, also the body): USDC on Base, the exact amount (or, for `upto` routes, a ceiling). Retry with the signed payment payload in `PAYMENT-SIGNATURE`. The answer comes with the settlement receipt in `PAYMENT-RESPONSE`. Settlement happens only after the answer is computed, so a failed answer is never charged. Any x402 client works, for example `@x402/fetch`. Over MCP (https://data.spencermcw.com/mcp, streamable HTTP, stateless) the same objects travel in `_meta`: an unpaid call to a paid tool (with no free tier, or once it is used or skipped) returns `isError` with the x402 PaymentRequired object as `structuredContent`; retry with the PaymentPayload in `_meta["x402/payment"]`; the receipt is in `_meta["x402/payment-response"]`. This is the `@x402/mcp` convention. Some paid routes have a small free tier per IP (3 calls a day per vertical, with fewer rows; each route says); free answers use the same envelope with `price_paid: null`. Over HTTP the free tier is opt-in: send the header `Distill-Free-Tier: use` on an unpaid call. Without it, an unpaid call to a paid route answers 402, before its input is checked; once the day's free calls are used up, the header gets the 402 too. Over MCP an unpaid call takes the free tier while it lasts; send `_meta["distill/free-tier"]: "skip"` to get the payment-required result instead. ## Every answer Every answer, free or paid, is one JSON envelope: `data` (the route-specific answer), `sources` (url, fetched_at, sha256, publisher, license for every source used), `as_of` (the freshness of the underlying data), `confidence` (0 to 1, computed by the formula each route documents), `method_version` (bumped on any change to how the answer is made), `price_paid` (null when free), `notices` (disclaimers) and `request_id`. Distill sells posted facts and computed aggregates, never medical, financial or tax advice. ## Machine-readable - [OpenAPI 3.1](https://data.spencermcw.com/openapi.json): every route's input and output schemas, examples, `x-price` and `x-payment` - [MCP server](https://data.spencermcw.com/mcp): one tool per route, streamable HTTP - [llms-full.txt](https://data.spencermcw.com/llms-full.txt): this file with every schema and example ## Optional - [Terms](https://data.spencermcw.com/terms): no warranty; liability limited to the amount paid for the call - [Changelog](https://data.spencermcw.com/changelog): route, price and method changes - [Distill-Bot](https://data.spencermcw.com/bot): how Distill fetches its sources