Server definition
- Hash
- sha256:f3d88d4ac8b16cfb6a5c7712798d2c73cd44563613eed50fccb69c7c8bab007f
- What it is
- What a remote MCP server returned when asked what it offers: 19 tools
The blob, as servednamed by its sha256
{
"instructions": "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.\n\nPaid tools follow x402 over MCP. An unpaid call to a tool with a free tier gets a free, capped answer while the day's free calls last (_meta[\"distill/free-remaining\"] says how many are left); send _meta[\"distill/free-tier\"]: \"skip\" to pay for the full answer instead. Otherwise a call without payment returns isError with the x402 PaymentRequired object as structuredContent; retry with the PaymentPayload in _meta[\"x402/payment\"]. The settlement receipt comes back in _meta[\"x402/payment-response\"]. Nothing is settled unless the answer is delivered. Every answer is the envelope: data, sources, as_of, confidence, method_version, price_paid, notices.",
"tools": [
{
"description": "What do US pharmacies pay for this drug? CMS’s National Average Drug Acquisition Cost (NADAC) per unit for an NDC, the generic’s NADAC for a brand and the weekly price history since January 2025, from CMS’s NADAC files on data.medicaid.gov. From CMS’s weekly NADAC files on data.medicaid.gov (2025 on): the current per-unit NADAC of one NDC, its effective date and explanation codes, the corresponding generic’s NADAC for a brand, the range over NDCs with the same description, and every price period since January 2025. An NDC never listed answers 404 and is not charged; one no longer listed answers with listed: false and its last NADAC. Updated weekly. Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the values are CMS’s, read deterministically): 1 until 9 days after the latest weekly file’s as-of date, then halving every 14 days. National Average Drug Acquisition Cost as CMS publishes it weekly: a survey average of what retail pharmacies pay per unit, not a retail price, a reimbursement rate, a quote or medical advice. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"ndc": {
"description": "The NDC: 11 digits (00378410591) or dashed (0378-4105-91, 5-4-2, 5-3-2 or 4-4-2).",
"pattern": "^(\\d{11}|\\d{4,5}-\\d{3,4}-\\d{1,2})$",
"type": "string"
}
},
"required": [
"ndc"
],
"type": "object"
},
"name": "drug_nadac",
"outputSchema": null
},
{
"description": "Which drug acquisition costs changed this week? NADAC per-unit cost changes and NDCs added or dropped, with CMS’s stated reason, 2025 on, from CMS’s weekly NADAC files. Change records between consecutive weekly NADAC files (2025 on): an NDC whose per-unit NADAC changed (with CMS’s primary reason from the NADAC Comparison file when it gives one), an NDC added (old null) or dropped (new null). Each record cites the sha256 of the files of both weeks. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated weekly. Price: $0.05 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the values are CMS’s, read deterministically): 1 until 9 days after the latest weekly file’s as-of date, then halving every 14 days. National Average Drug Acquisition Cost as CMS publishes it weekly: a survey average of what retail pharmacies pay per unit, not a retail price, a reimbursement rate, a quote or medical advice. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cursor": {
"pattern": "^\\d{1,12}$",
"type": "string"
},
"field": {
"enum": [
"nadac_per_unit",
"listed"
],
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"ndc": {
"description": "The NDC: 11 digits (00378410591) or dashed (0378-4105-91, 5-4-2, 5-3-2 or 4-4-2).",
"pattern": "^(\\d{11}|\\d{4,5}-\\d{3,4}-\\d{1,2})$",
"type": "string"
},
"since": {
"description": "Only records detected after this time (ISO 8601); a record is detected on its week’s as-of day.",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
"week": {
"description": "Only the changes of the weekly file with this as-of date, e.g. 2026-10-21.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
},
"type": "object"
},
"name": "drug_nadac_changes",
"outputSchema": null
},
{
"description": "Which NDCs match this drug name, and what do pharmacies pay for them? NADAC search by name (e.g. “atorvastatin 40”) with NDC counts and current per-unit cost ranges, from CMS’s weekly NADAC file. Matches the words of a name (each as a prefix, e.g. \"atorvastatin 40\") against the NDC descriptions in the latest weekly NADAC file, best match first, and gives each description’s pricing unit, classification, number of NDCs, current per-unit NADAC range and up to five NDCs to look up with drug.nadac. Updated weekly. Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the values are CMS’s, read deterministically): 1 until 9 days after the latest weekly file’s as-of date, then halving every 14 days. National Average Drug Acquisition Cost as CMS publishes it weekly: a survey average of what retail pharmacies pay per unit, not a retail price, a reimbursement rate, a quote or medical advice. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"limit": {
"description": "At most this many descriptions (default 10).",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Drug name words, e.g. \"atorvastatin 40\" or \"insulin glargine\".",
"maxLength": 80,
"minLength": 2,
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "drug_nadac_search",
"outputSchema": null
},
{
"description": "What changed in hospital prices this week? Colorado hospital price, payer-rate, file and status change records, computed by Distill by diffing the hospitals’ price-transparency files. Change records from diffing consecutive weekly builds: a hospital republishing its file (source raw_sha256), items and payer rates that appear, disappear or change price, a hospital’s status or file date changing, and the canonical payer of a payer/plan name changing. Keys: source `<source_id>`; hospital `<hospital id>`; item `<source_id>|<type>|<code>|<setting>|<billing_class>|<modifiers>`; rate `<item key>|<payer name>|<plan name>|<methodology>` (names as the hospital writes them; one rate per methodology, empty when none is given); plan `<payer name>|<plan name>`. Money is integer micro-USD (unit usd_micro). Each record cites the sha256 of the file versions it came from. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated weekly. Price: $0.05 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Change records are diffs of consecutive serving DBs, computed deterministically; confidence is the feed’s freshness only: 1 within 14 days of the newest build, then halving every 30 days. Posted standard charges from hospital machine-readable files (45 CFR 180): posted rates, not a quote; not medical or financial advice. What you pay depends on your plan, your care and the hospital. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cursor": {
"description": "next_cursor from the previous page.",
"pattern": "^\\d{1,12}$",
"type": "string"
},
"limit": {
"description": "Records per page (default 100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"since": {
"description": "Only records detected at or after this time (ISO 8601).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
}
},
"type": "object"
},
"name": "hospital_changes",
"outputSchema": null
},
{
"description": "How do these hospitals compare on price for one procedure? Cash, gross and negotiated-rate statistics for a CPT, HCPCS or MS-DRG code at up to 10 Colorado hospitals, normalized by Distill from their price-transparency files. For each named hospital: whether it posts the code, and over its items for the code (only those without modifiers when it posts any, so a professional -26 or bilateral -50 line does not skew the row) nearest-rank statistics of its gross charges, discounted cash prices and negotiated dollar amounts across payers and plans, the range of negotiated percentages, the de-identified minimum and maximum, and the number of payers. The same filters as hospital.prices. Hospital ids come from hospital.prices (or pass a CMS certification number). Not charged when none of the hospitals is known. Updated weekly. Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Mean over the returned rows (each rate; an item with no rate counts once) of normalize × quality × freshness. Normalize: the stored per-rate normalize confidence (payer canonicalization: rule 1, model 0.9, fallback 0.6; rate basis for rates with no dollar amount: rule 1, model 0.9, fallback 0.75; 1 for an item with no rate). Quality of the MRF: 1 valid against the v3.0 schema, 0.85 parsed with conformance errors, 0.7 parsed only after header repair. Freshness: 1 while the MRF’s last_updated_on is at most 365 days old, then halving every 180 days (0.5 with no date), times 1 within 14 days of our fetch, then halving every 30 days. Rows are each hospital’s items for the code as compared. Posted standard charges from hospital machine-readable files (45 CFR 180): posted rates, not a quote; not medical or financial advice. What you pay depends on your plan, your care and the hospital. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"billing_class": {
"description": "Optional: facility or professional (items posted for both always match).",
"enum": [
"facility",
"professional"
],
"type": "string"
},
"code": {
"description": "The billing code: CPT (5 characters, e.g. 99213), HCPCS Level II (a letter and 4 digits, e.g. J1885) or MS-DRG (3 digits, e.g. 470).",
"pattern": "^[0-9A-Za-z]{3,5}$",
"type": "string"
},
"code_type": {
"description": "Optional: the code type. Inferred from the code’s shape when omitted.",
"enum": [
"CPT",
"HCPCS",
"MS-DRG"
],
"type": "string"
},
"hospitals": {
"description": "One to ten hospital ids (e.g. co-060001) or CMS certification numbers, comma-separated.",
"pattern": "^[A-Za-z0-9-]{6,20}(,[A-Za-z0-9-]{6,20}){0,9}$",
"type": "string"
},
"payer": {
"description": "Optional: a canonical payer_id (e.g. aetna, cigna, unitedhealthcare, anthem, medicare, medicaid). hospital.payers lists the payers with prices for a code.",
"pattern": "^[a-z0-9_]{2,40}$",
"type": "string"
},
"plan": {
"description": "Optional: text the plan name (or payer name) contains as the hospital writes it, case-insensitive, e.g. \"PPO\" or \"Medicare Advantage\".",
"maxLength": 80,
"minLength": 2,
"type": "string"
},
"plan_type": {
"description": "Optional: the canonical plan type.",
"enum": [
"commercial",
"medicare_advantage",
"medicaid",
"medicare",
"exchange",
"tricare",
"va",
"workers_comp",
"auto",
"supplemental",
"other",
"unspecified"
],
"type": "string"
},
"setting": {
"description": "Optional: inpatient or outpatient (items posted for both always match).",
"enum": [
"inpatient",
"outpatient"
],
"type": "string"
}
},
"required": [
"code",
"hospitals"
],
"type": "object"
},
"name": "hospital_compare",
"outputSchema": null
},
{
"description": "What has each insurer negotiated for a procedure in this area? Negotiated prices by canonical payer (Aetna, Cigna, UnitedHealthcare, Medicare Advantage, …) and plan type for one code near a Colorado ZIP, computed by Distill from hospital price-transparency files. Every payer’s negotiated dollar amounts for the code at the hospitals within the radius, grouped by canonical payer_id (the stable id behind the many ways hospitals write a payer’s name), plan type and methodology (a per diem and a case rate are never pooled): how many hospitals and rates, and nearest-rank statistics. Payers with the most hospitals first. Percentage-only rates are left out (they have no dollar amount; hospital.prices shows them). The payer_ids here are what the payer filter of hospital.prices and hospital.compare takes. Updated weekly. Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Mean over every rate in the payer rows returned of normalize × quality × freshness, with the same factors as hospital.prices (normalize: the stored per-rate payer canonicalization confidence, rule 1, model 0.9, fallback 0.6; quality: 1 valid v3.0, 0.85 with conformance errors, 0.7 after header repair; freshness: 1 while last_updated_on is at most 365 days old, then halving every 180 days, times 1 within 14 days of our fetch, then halving every 30 days). Posted standard charges from hospital machine-readable files (45 CFR 180): posted rates, not a quote; not medical or financial advice. What you pay depends on your plan, your care and the hospital. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"code": {
"description": "The billing code: CPT (5 characters, e.g. 99213), HCPCS Level II (a letter and 4 digits, e.g. J1885) or MS-DRG (3 digits, e.g. 470).",
"pattern": "^[0-9A-Za-z]{3,5}$",
"type": "string"
},
"code_type": {
"description": "Optional: the code type. Inferred from the code’s shape when omitted.",
"enum": [
"CPT",
"HCPCS",
"MS-DRG"
],
"type": "string"
},
"lat": {
"description": "Latitude of the point (with lon).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lon": {
"description": "Longitude of the point (with lat).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"plan_type": {
"description": "Optional: the canonical plan type.",
"enum": [
"commercial",
"medicare_advantage",
"medicaid",
"medicare",
"exchange",
"tricare",
"va",
"workers_comp",
"auto",
"supplemental",
"other",
"unspecified"
],
"type": "string"
},
"radius_miles": {
"description": "Search radius in miles (default 25, at most 100).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "number"
},
"setting": {
"description": "Optional: inpatient or outpatient (items posted for both always match).",
"enum": [
"inpatient",
"outpatient"
],
"type": "string"
},
"zip": {
"description": "A 5-digit ZIP code (its Census ZCTA point). Give a zip, or lat and lon.",
"pattern": "^\\d{5}$",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "hospital_payers",
"outputSchema": null
},
{
"description": "What does a procedure cost at hospitals near this ZIP? Cash price, gross charge and every insurer’s negotiated rate for a CPT, HCPCS or MS-DRG code at Colorado hospitals, normalized by Distill from the hospitals’ federally required price files. From the machine-readable standard-charge files hospitals must publish (45 CFR 180), parsed and normalized: for each hospital within the radius that posts the code, nearest first, the gross charge, the discounted cash price, the de-identified minimum and maximum, and every payer and plan’s negotiated dollar amount or percentage (with the v3.0 median, 10th and 90th percentile allowed amounts), payers canonicalized to a stable payer_id. Filters: payer, plan type, plan name text, setting, billing class. A summary gives nearest-rank statistics over the hospitals returned. Served states: Colorado. An area with no hospital posting the code answers 404 and is not charged. Updated weekly. Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Mean over the returned rows (each rate; an item with no rate counts once) of normalize × quality × freshness. Normalize: the stored per-rate normalize confidence (payer canonicalization: rule 1, model 0.9, fallback 0.6; rate basis for rates with no dollar amount: rule 1, model 0.9, fallback 0.75; 1 for an item with no rate). Quality of the MRF: 1 valid against the v3.0 schema, 0.85 parsed with conformance errors, 0.7 parsed only after header repair. Freshness: 1 while the MRF’s last_updated_on is at most 365 days old, then halving every 180 days (0.5 with no date), times 1 within 14 days of our fetch, then halving every 30 days. Posted standard charges from hospital machine-readable files (45 CFR 180): posted rates, not a quote; not medical or financial advice. What you pay depends on your plan, your care and the hospital. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"billing_class": {
"description": "Optional: facility or professional (items posted for both always match).",
"enum": [
"facility",
"professional"
],
"type": "string"
},
"code": {
"description": "The billing code: CPT (5 characters, e.g. 99213), HCPCS Level II (a letter and 4 digits, e.g. J1885) or MS-DRG (3 digits, e.g. 470).",
"pattern": "^[0-9A-Za-z]{3,5}$",
"type": "string"
},
"code_type": {
"description": "Optional: the code type. Inferred from the code’s shape when omitted.",
"enum": [
"CPT",
"HCPCS",
"MS-DRG"
],
"type": "string"
},
"lat": {
"description": "Latitude of the point (with lon).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"description": "How many hospitals to return, nearest first (default 10, at most 50).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"lon": {
"description": "Longitude of the point (with lat).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"payer": {
"description": "Optional: a canonical payer_id (e.g. aetna, cigna, unitedhealthcare, anthem, medicare, medicaid). hospital.payers lists the payers with prices for a code.",
"pattern": "^[a-z0-9_]{2,40}$",
"type": "string"
},
"plan": {
"description": "Optional: text the plan name (or payer name) contains as the hospital writes it, case-insensitive, e.g. \"PPO\" or \"Medicare Advantage\".",
"maxLength": 80,
"minLength": 2,
"type": "string"
},
"plan_type": {
"description": "Optional: the canonical plan type.",
"enum": [
"commercial",
"medicare_advantage",
"medicaid",
"medicare",
"exchange",
"tricare",
"va",
"workers_comp",
"auto",
"supplemental",
"other",
"unspecified"
],
"type": "string"
},
"radius_miles": {
"description": "Search radius in miles (default 25, at most 100).",
"exclusiveMinimum": 0,
"maximum": 100,
"type": "number"
},
"setting": {
"description": "Optional: inpatient or outpatient (items posted for both always match).",
"enum": [
"inpatient",
"outpatient"
],
"type": "string"
},
"zip": {
"description": "A 5-digit ZIP code (its Census ZCTA point). Give a zip, or lat and lon.",
"pattern": "^\\d{5}$",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "hospital_prices",
"outputSchema": null
},
{
"description": "Which Medicare Part D formularies changed this month? Drugs added or dropped, tier, prior-authorization, step-therapy and quantity-limit changes and plan premium changes, computed by Distill from CMS’s monthly formulary files. Change records between consecutive monthly CMS Part D formulary files of a plan year: a drug (RxCUI) added to or dropped from a formulary, its tier, prior authorization, step therapy or quantity limit changed; a plan added or dropped, its premium, deductible or formulary changed. Each record cites the sha256 of both files. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated monthly. Price: $0.05 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the plans and terms are read from the CMS file deterministically): 1 until 45 days after the served file’s date (CMS posts one a month), then halving every 30 days. Medicare Part D formulary and plan data as of the CMS public use file’s date (file_date), processed by Distill; the Medicare Plan Finder (medicare.gov/plan-compare) may have newer information. Not enrollment, coverage or medical advice; confirm with the plan. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cursor": {
"pattern": "^\\d{1,12}$",
"type": "string"
},
"entity": {
"enum": [
"formulary",
"plan"
],
"type": "string"
},
"key": {
"description": "A plan (H0028-063-000), an RxCUI (all formularies) or <formulary id>:<RxCUI>.",
"pattern": "^[A-Za-z0-9:-]{1,40}$",
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"plan_year": {
"description": "The plan (benefit) year, e.g. 2027 for open enrollment (default: the current year).",
"maximum": 2100,
"minimum": 2000,
"type": "integer"
},
"since": {
"description": "Only records detected after this time (ISO 8601).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
}
},
"type": "object"
},
"name": "medicare_partd_changes",
"outputSchema": null
},
{
"description": "Which Medicare Part D plans in this county cover this drug, at what tier and cost? Every PDP and Medicare Advantage drug plan with tier, prior authorization, step therapy, quantity limit, premium and copay, plan years 2026 and 2027, computed by Distill from CMS’s monthly formulary files. From CMS’s monthly Part D formulary public use file: every stand-alone (PDP) and Medicare Advantage drug plan sold in the county (by SSA county code, or state and county name), whether its formulary covers the drug (RxCUI, or the NDC the file lists), and on what terms: tier, prior authorization, step therapy, quantity limit, negotiated-drug flag, the plan’s premium and deductible, and the 30-day initial-coverage cost sharing for that tier at each pharmacy type. Covering plans come lowest tier first, then lowest premium. Pass plan_year=2027 for open enrollment. Employer and PACE plans are not in the file. Updated monthly. Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the plans and terms are read from the CMS file deterministically): 1 until 45 days after the served file’s date (CMS posts one a month), then halving every 30 days. Medicare Part D formulary and plan data as of the CMS public use file’s date (file_date), processed by Distill; the Medicare Plan Finder (medicare.gov/plan-compare) may have newer information. Not enrollment, coverage or medical advice; confirm with the plan. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"county": {
"description": "County name, with state, e.g. Denver.",
"maxLength": 60,
"minLength": 2,
"type": "string"
},
"county_code": {
"description": "The SSA state-county code, e.g. 06150 (Denver, CO).",
"pattern": "^\\d{5}$",
"type": "string"
},
"kind": {
"description": "pdp, ma or all (default).",
"enum": [
"pdp",
"ma",
"all"
],
"type": "string"
},
"limit": {
"description": "At most this many plans (default 20).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"ndc": {
"description": "An 11-digit NDC as the formulary file lists it (one per RxCUI); prefer rxcui.",
"pattern": "^\\d{11}$",
"type": "string"
},
"plan_year": {
"description": "The plan (benefit) year, e.g. 2027 for open enrollment (default: the current year).",
"maximum": 2100,
"minimum": 2000,
"type": "integer"
},
"rxcui": {
"description": "The drug’s RxNorm concept id (RxCUI), e.g. 617311 for atorvastatin 40 mg oral tablet.",
"pattern": "^\\d{1,10}$",
"type": "string"
},
"state": {
"description": "Two-letter state code, with county.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
}
},
"type": "object"
},
"name": "medicare_partd_coverage",
"outputSchema": null
},
{
"description": "What does this Medicare Part D plan cost and cover? Premium, deductible, service area, cost sharing by tier and one drug’s terms for a contract-plan-segment id, computed by Distill from CMS’s monthly formulary files. From CMS’s monthly Part D formulary public use file: a plan by contract-plan-segment (e.g. H0028-063-000) with its formulary id, monthly premium, deductible, service area, and the initial-coverage 30-day cost sharing of every tier at each pharmacy type; with rxcui or ndc, whether the plan covers that drug and on what terms. Updated monthly. Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the plans and terms are read from the CMS file deterministically): 1 until 45 days after the served file’s date (CMS posts one a month), then halving every 30 days. Medicare Part D formulary and plan data as of the CMS public use file’s date (file_date), processed by Distill; the Medicare Plan Finder (medicare.gov/plan-compare) may have newer information. Not enrollment, coverage or medical advice; confirm with the plan. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"ndc": {
"description": "An 11-digit NDC as the formulary file lists it (one per RxCUI); prefer rxcui.",
"pattern": "^\\d{11}$",
"type": "string"
},
"plan": {
"description": "Contract-plan-segment, e.g. H0028-063-000 or S4802-089-000.",
"pattern": "^[A-Za-z]\\d{4}-\\d{3}-\\d{3}$",
"type": "string"
},
"plan_year": {
"description": "The plan (benefit) year, e.g. 2027 for open enrollment (default: the current year).",
"maximum": 2100,
"minimum": 2000,
"type": "integer"
},
"rxcui": {
"description": "The drug’s RxNorm concept id (RxCUI), e.g. 617311 for atorvastatin 40 mg oral tablet.",
"pattern": "^\\d{1,10}$",
"type": "string"
}
},
"required": [
"plan"
],
"type": "object"
},
"name": "medicare_partd_plan",
"outputSchema": null
},
{
"description": "What changed in the Medicare Physician Fee Schedule this quarter? RVU, status, conversion-factor, GPCI and OPPS-cap change records between CMS releases, 2025 on, computed by Distill from CMS’s RVU files. Change records between consecutive CMS relative value file releases (2025A on): a code’s RVUs, status or global days; a code added or dropped; the conversion factors; a locality’s GPCIs; the OPPS cap prices. Each record cites the sha256 of both release files. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated quarterly. Price: $0.05 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the amounts and change records are computed from the CMS files deterministically): 1 until the first day of the calendar quarter after the files were last checked, then halving every 30 days. Medicare Physician Fee Schedule amounts computed from CMS’s published RVU, GPCI and conversion-factor files: what Original Medicare allows a participating clinician (before deductible and coinsurance), not what another payer pays; not a quote, not medical, billing or coding advice. See /terms. CPT® codes are served as codes only: their descriptors are AMA copyright and are never included (nor dental CDT descriptors). CPT is a registered trademark of the American Medical Association. HCPCS Level II descriptions are CMS’s.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"code": {
"description": "Only changes to this code (any modifier, any locality).",
"pattern": "^[0-9A-Za-z]{5}$",
"type": "string"
},
"cursor": {
"pattern": "^\\d{1,12}$",
"type": "string"
},
"entity": {
"enum": [
"rvu",
"conversion_factor",
"gpci",
"locality",
"opps_cap"
],
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"release": {
"description": "Only changes that took effect with this release, e.g. 2026A.",
"pattern": "^\\d{4}[A-Da-d]$",
"type": "string"
},
"since": {
"description": "Only records Distill detected after this time (ISO 8601).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
}
},
"type": "object"
},
"name": "medicare_pfs_changes",
"outputSchema": null
},
{
"description": "How does Medicare’s allowed amount for one code vary across the US? Physician Fee Schedule amounts in all 109 Medicare localities (or one state’s) with the national amount and range, computed by Distill from CMS’s RVU and GPCI files. The facility and non-facility allowed amounts (non-QP) for one code in each of the 109 Medicare payment localities, or those of one state, with the national amount (all GPCIs 1.0) and the range: how much the same service is allowed for across the country. From CMS’s relative value files for the release in force on the date. Updated quarterly. Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the amounts and change records are computed from the CMS files deterministically): 1 until the first day of the calendar quarter after the files were last checked, then halving every 30 days. Medicare Physician Fee Schedule amounts computed from CMS’s published RVU, GPCI and conversion-factor files: what Original Medicare allows a participating clinician (before deductible and coinsurance), not what another payer pays; not a quote, not medical, billing or coding advice. See /terms. CPT® codes are served as codes only: their descriptors are AMA copyright and are never included (nor dental CDT descriptors). CPT is a registered trademark of the American Medical Association. HCPCS Level II descriptions are CMS’s.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"code": {
"description": "The HCPCS Level II or CPT code, e.g. 99213, 70551 or G0439.",
"pattern": "^[0-9A-Za-z]{5}$",
"type": "string"
},
"date": {
"description": "The date of service, YYYY-MM-DD (default: today, UTC): picks the release in force.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"modifier": {
"description": "Optional modifier with its own RVUs: 26 (professional component), TC (technical component) or 53. Omit for the global service.",
"pattern": "^[0-9A-Za-z]{2}$",
"type": "string"
},
"release": {
"description": "A quarterly release instead of a date, e.g. 2026D (A from 1 Jan, B Apr, C Jul, D Oct).",
"pattern": "^\\d{4}[A-Da-d]$",
"type": "string"
},
"state": {
"description": "Two-letter state code, e.g. CO.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "medicare_pfs_localities",
"outputSchema": null
},
{
"description": "What does Medicare pay for this CPT or HCPCS code at this ZIP? Physician Fee Schedule facility and non-facility allowed amounts with the RVUs and GPCIs behind them, any US ZIP or Medicare locality, 2025 on, computed by Distill from CMS’s quarterly RVU files. From CMS’s quarterly relative value files (RVU25A on): the facility and non-facility allowed amounts for one code (and modifier) in the locality of a ZIP, ZIP+4 or MAC-locality id, with the RVUs, GPCIs and conversion factor (non-QP and QP) behind them, the OPPS cap, the limiting charge, the payment indicators and the same amounts in every release since 2025A. Pass exactly one of zip or locality. Codes CMS does not price (status other than A, R, T) answer with null amounts; unknown codes and ZIPs answer 404 and are not charged. Updated quarterly. Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: agreement × freshness. Agreement: for a 5-digit ZIP that CMS splits across localities by ZIP+4, the share of its ZIP+4 codes in the answered locality; 1 for a ZIP+4, a locality or a ZIP in one locality. Freshness: 1 until the first day of the calendar quarter after the CMS files were last checked, then halving every 30 days. The amounts themselves are exact (they agree with CMS’s carrier payment files to the cent). Medicare Physician Fee Schedule amounts computed from CMS’s published RVU, GPCI and conversion-factor files: what Original Medicare allows a participating clinician (before deductible and coinsurance), not what another payer pays; not a quote, not medical, billing or coding advice. See /terms. CPT® codes are served as codes only: their descriptors are AMA copyright and are never included (nor dental CDT descriptors). CPT is a registered trademark of the American Medical Association. HCPCS Level II descriptions are CMS’s.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"code": {
"description": "The HCPCS Level II or CPT code, e.g. 99213, 70551 or G0439.",
"pattern": "^[0-9A-Za-z]{5}$",
"type": "string"
},
"date": {
"description": "The date of service, YYYY-MM-DD (default: today, UTC): picks the release in force.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"locality": {
"description": "A Medicare locality as MAC-locality, e.g. 04112-01 (Colorado).",
"pattern": "^\\d{5}-\\d{2}$",
"type": "string"
},
"modifier": {
"description": "Optional modifier with its own RVUs: 26 (professional component), TC (technical component) or 53. Omit for the global service.",
"pattern": "^[0-9A-Za-z]{2}$",
"type": "string"
},
"release": {
"description": "A quarterly release instead of a date, e.g. 2026D (A from 1 Jan, B Apr, C Jul, D Oct).",
"pattern": "^\\d{4}[A-Da-d]$",
"type": "string"
},
"setting": {
"description": "Only this setting’s amount (default: both).",
"enum": [
"facility",
"nonfacility"
],
"type": "string"
},
"zip": {
"description": "A 5-digit ZIP or ZIP+4 (80218 or 80218-1234).",
"pattern": "^\\d{5}(-?\\d{4})?$",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "medicare_pfs_rate",
"outputSchema": null
},
{
"description": "Is this crypto address on OFAC’s SDN sanctions list? SDN entry, program, asset and list date for Bitcoin, Ethereum and EVM, Tron, Solana and other addresses, checked by Distill against OFAC’s own SDN file. Matches one digital currency address (Bitcoin, Ethereum and every EVM chain, Tron, Solana, Monero, …) against the “Digital Currency Address” identifiers of OFAC’s Specially Designated Nationals list, read from OFAC’s Sanctions List Service SDN.XML and refreshed daily. Returns whether it is listed in the latest publication, each listing’s SDN entry (UID, name, type, programs), asset and chain, the publication date, and any earlier listing a later publication removed. Not listed is an answer too. Exact match only; not a compliance determination. The address is not stored. Updated daily. Price: $0.005 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the list is OFAC’s, matched exactly): 1 until 3 days after the last check of OFAC’s Sanctions List Service, then halving every 3 days. Facts from the OFAC SDN list as published on the date stated: an exact match of the address as given (EVM and Bech32 addresses case-insensitively). Not legal advice and not a compliance determination: no ownership (50% rule) analysis, no indirect exposure, no other sanctions list. Computed by Distill from OFAC’s SDN.XML. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"address": {
"description": "A digital currency address as used on its chain: EVM 0x… (any case), Bitcoin (1…, 3…, bc1…), Tron T…, Solana, Monero, ….",
"maxLength": 128,
"minLength": 1,
"pattern": "^\\S+$",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "sanctions_address",
"outputSchema": null
},
{
"description": "Are any of these crypto addresses on OFAC’s SDN sanctions list? Up to 100 addresses screened in one call, checked by Distill against OFAC’s own SDN file. The same answer as sanctions.address for each address, in order, from one SDN publication. An address that is not one (spaces, too long) carries its own error; the call is still one price. No address is stored. Updated daily. Price: $0.05 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the list is OFAC’s, matched exactly): 1 until 3 days after the last check of OFAC’s Sanctions List Service, then halving every 3 days. Facts from the OFAC SDN list as published on the date stated: an exact match of the address as given (EVM and Bech32 addresses case-insensitively). Not legal advice and not a compliance determination: no ownership (50% rule) analysis, no indirect exposure, no other sanctions list. Computed by Distill from OFAC’s SDN.XML. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"addresses": {
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"addresses"
],
"type": "object"
},
"name": "sanctions_address_batch",
"outputSchema": null
},
{
"description": "Which crypto addresses did OFAC add to or remove from the SDN list? Per-publication change records (added, removed, entry updated), computed by Distill from OFAC’s own SDN files. Change records between consecutive SDN publications, diffed by Distill from OFAC’s SDN.XML: a digital currency address added to or removed from an entry, and an entry with an address whose name or programs changed. Each record cites the sha256 of both publications’ files. Pages of up to 100, oldest first; pass next_cursor back as cursor. The history starts at history_from. Updated daily. Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (the list is OFAC’s, matched exactly): 1 until 3 days after the last check of OFAC’s Sanctions List Service, then halving every 3 days. Facts from the OFAC SDN list as published on the date stated: an exact match of the address as given (EVM and Bech32 addresses case-insensitively). Not legal advice and not a compliance determination: no ownership (50% rule) analysis, no indirect exposure, no other sanctions list. Computed by Distill from OFAC’s SDN.XML. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cursor": {
"pattern": "^\\d{1,12}$",
"type": "string"
},
"kind": {
"enum": [
"added",
"removed",
"entry_updated"
],
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"publication": {
"description": "Only the changes of the SDN publication of this date, e.g. 2026-10-15.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"since": {
"description": "Only records detected after this time (ISO 8601).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
}
},
"type": "object"
},
"name": "sanctions_changes",
"outputSchema": null
},
{
"description": "Which US sales tax rates or boundaries changed this quarter? Rate, ZIP+4 and boundary change records for the 24 Streamlined Sales Tax states, computed by Distill from each state’s SST files. Change records read from the states’ rate and boundary files: rates that change, begin or end; ZIP+4 and 5-digit ZIP ranges whose jurisdictions change; new files posted. Each record cites the sha256 of the files it came from. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated quarterly. Price: $0.05 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: Freshness only (change records are read from the state files deterministically): 1 until the next SST posting deadline (the 1st of Mar, Jun, Sep or Dec) after the files were last checked, then halving every 30 days. Not tax advice. Rates as published by the state in its Streamlined Sales Tax rate and boundary files for the stated effective period; verify with the state. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cursor": {
"pattern": "^\\d{1,12}$",
"type": "string"
},
"effective_from": {
"description": "Only changes effective on or after this day.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"entity": {
"enum": [
"rate",
"zip4",
"zip5",
"address_records",
"file"
],
"type": "string"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"since": {
"description": "Only records detected after this time (ISO 8601).",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"type": "string"
},
"state": {
"description": "Two-letter state code, e.g. WA.",
"pattern": "^[A-Za-z]{2}$",
"type": "string"
}
},
"type": "object"
},
"name": "tax_changes",
"outputSchema": null
},
{
"description": "What is the sales tax rate at this US address, ZIP+4 or ZIP? The combined rate and each state, county, city and district rate in the 24 Streamlined Sales Tax states (WA, OH, MI, NJ, TN, …), computed by Distill from each state’s SST rate and boundary files. From the state’s own Streamlined Sales Tax rate and boundary files (24 states: AR, GA, IA, IN, KS, KY, MI, MN, NC, ND, NE, NJ, NV, OH, OK, RI, SD, TN, UT, VT, WA, WI, WV, WY). Matches an address when the state publishes address records, else the ZIP+4 record, else the 5-digit record (the lowest rate in the ZIP, per SSUTA 305). Returns each jurisdiction’s rate, the combined rate, and the period it holds, for any sale date from the first day of the previous quarter on (default today). Locations outside these states answer 404 and are not charged. Updated quarterly. Price: $0.005 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: agreement × freshness. Agreement: for a 5-digit ZIP answer, the share of that ZIP’s ZIP+4 records with the same combined rate; for a ZIP+4 answer, the share of address records inside it with the same rate; 1 for an address match or when the state publishes nothing finer. Freshness: 1 until the next SST posting deadline (the 1st of Mar, Jun, Sep or Dec) after the files were last checked, then halving every 30 days. Not tax advice. Rates as published by the state in its Streamlined Sales Tax rate and boundary files for the stated effective period; verify with the state. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"address": {
"description": "Optional street address line with house number, e.g. \"1010 E Alder St\" or \"PO Box 12\"; matched against the state address records when it publishes them.",
"maxLength": 120,
"minLength": 3,
"type": "string"
},
"date": {
"description": "The sale date, YYYY-MM-DD (default: today, UTC). From the first day of the previous quarter onward.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"zip": {
"description": "A 5-digit ZIP code or a ZIP+4 (98101-3143 or 981013143).",
"pattern": "^\\d{5}(-?\\d{4})?$",
"type": "string"
}
},
"required": [
"zip"
],
"type": "object"
},
"name": "tax_sales_rate",
"outputSchema": null
},
{
"description": "What sales tax applies to each of these orders? Combined and per-jurisdiction rates for up to 100 US addresses, ZIP+4s or ZIPs in one call, 24 Streamlined Sales Tax states, computed by Distill from each state’s SST rate and boundary files. The same answer as tax.sales_rate for each location, in order. A location that fails (outside the SST states, a bad date) carries its own error; the call is still one price. Updated quarterly. Price: $0.1 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta[\"distill/free-tier\"] is \"skip\". Confidence: The lowest per-location confidence in the batch; each is agreement × freshness. Agreement: for a 5-digit ZIP answer, the share of that ZIP’s ZIP+4 records with the same combined rate; for a ZIP+4 answer, the share of address records inside it with the same rate; 1 for an address match or when the state publishes nothing finer. Freshness: 1 until the next SST posting deadline (the 1st of Mar, Jun, Sep or Dec) after the files were last checked, then halving every 30 days. Not tax advice. Rates as published by the state in its Streamlined Sales Tax rate and boundary files for the stated effective period; verify with the state. See /terms.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"locations": {
"items": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Optional street address line with house number, e.g. \"1010 E Alder St\" or \"PO Box 12\"; matched against the state address records when it publishes them.",
"maxLength": 120,
"minLength": 3,
"type": "string"
},
"date": {
"description": "The sale date, YYYY-MM-DD (default: today, UTC). From the first day of the previous quarter onward.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"zip": {
"description": "A 5-digit ZIP code or a ZIP+4 (98101-3143 or 981013143).",
"pattern": "^\\d{5}(-?\\d{4})?$",
"type": "string"
}
},
"required": [
"zip"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
}
},
"required": [
"locations"
],
"type": "object"
},
"name": "tax_sales_rate_batch",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f3d88d4ac8b16cfb6a5c7712798d2c73cd44563613eed50fccb69c7c8bab007f | sha256sum