This page is our posted library (
GET /v1/policies). Uploading your manuals is a different API — Your policy documents. Upload facts never land here.What is in the mart today
If the array is empty, we do not have that payer’s document for that code. We do not fill with Medicare.
Try these first (sandbox rows that are in the mart):
99213 on UHC commercial is often empty — that E/M coding policy lives in the reimbursement bulletin index (titles only until those PDFs are parsed). Use 99202 or an anesthesia code (00100) if you want a non-empty commercial example.
Playground and curl return the live mart row. Field list: API Reference. policies: [] and count: 0 means that code is not in the mart yet.
Look up cited policy
Coding engines need cited payer policy, not a single Medicare blob. UseGET /v1/policies with an X-API-Key.
Medicare FFS is national for NCDs and MAC-scoped for LCDs. Massachusetts and New York are both MAC JK (NGS). Omit state (or send scope=general) to get national rows only.
Commercial and Medicaid queries return that payer’s documents only. NCDs, LCDs, MACs, and payer_slug: cms are Medicare constructs — they are not mixed into a United or Anthem response, even when the same CPT is covered by a CMS rule.
Empty is the contract
If we do not have that payer’s policy for the code,policies is [] and count is 0. We do not substitute Medicare, another payer, or an unlabeled row. The same rule applies to GET /v1/payers/{slug}/claim-intelligence (policy_rules) and to plan_type: a row with no plan type is not treated as commercial.
codes_covered / codes_not_covered / icd10 stay empty until mart_policy_document has extracted them. We do not invent a coverage list from the query code.
MassHealth manuals need payer=masshealth and state=MA.
UnitedHealthcare coverage documents (medical and drug policies) come from the posted A–Z index: title, effective date, applicable procedure codes, and the policy PDF URI. That is a different class from the monthly reimbursement bulletin. E/M coding policies (99213 / 99223 and similar) live in the reimbursement library, whose index HTML has titles only — those stay empty until the PDFs are parsed. Anthem and Aetna sandbox samples are posted Clinical UM / CPB rows for a handful of codes — not the full library. Cigna is not ingested beyond a bootstrap row.
Query parameters
Each row includes
geo_scope, geo_codes, mac_jurisdiction, document_version, policy_type (medical / payment / prior_auth / provider_manual), codes_covered, codes_not_covered, icd10, delegated_entity, and effective_until. Code arrays and ICD are empty until mart_policy_document has extracted them — we do not invent coverage lists.
Change feed
GET /v1/policies/changes is pull-only (same idea as GET /v1/340b/changes). Filter with payer and since. There is no policy webhook.
REST
MCP
Tool name:lookup_policy
Plan types
Medicare Advantage is not a secondmedicare_ffs payer. Use the commercial parent slug (uhc, humana, bcbs) with plan_type=medicare_advantage.
340B manufacturer contract-pharmacy rules are a different API: 340B. Prior auth determinations: Prior authorization.