healthcare.dev docs

Medicare coverage support

Whether Medicare's local coverage documents list a diagnosis as supporting a procedure code, per state, with how each answer was reached and the CMS page to check.

Version —Updated —Not published yet
SourceCMS Medicare Coverage Database: LCDs, billing and coding articles and NCDs
Source idcms-mcd
Release cadenceCMS rebuilds the exports weekly; we check daily and publish a new version when a coverage fact changes
LicensePublic domain (CMS); CPT descriptors excluded
PlansPro and Team (403 plan-upgrade-required on Free and Builder)
Endpoints/v1/coverage/medicare?code=&dx=&state=, /v1/coverage/changes

Medicare Administrative Contractors publish Local Coverage Determinations (LCDs) and billing and coding articles. Many articles list the ICD-10-CM codes that support medical necessity for the procedure codes they cover, and some list codes that don't. This endpoint reads those lists for one procedure code, one diagnosis and, optionally, one state:

curl "https://api.healthcare.dev/v1/coverage/medicare?code=11720&dx=B35.1&state=TX" \
  -H "Authorization: Bearer $HDEV_API_KEY"
{
  "data": {
    "code": "11720",
    "dx": "B35.1",
    "state": "TX",
    "disclaimer": "Reference data, not a coverage determination.",
    "coverage": {
      "answer": "supported",
      "confidence": 1,
      "derivation": "source_stated",
      "evidence": [
        {
          "url": "https://www.cms.gov/medicare-coverage-database/view/article.aspx?articleid=56640&ver=16",
          "anchor": "h3Icd10SupportHeader"
        }
      ],
      "as_of": "2026-10-19T06:55:00.000Z"
    },
    "basis": "documents_agree",
    "results": [
      {
        "document": {
          "id": "A56640",
          "type": "article",
          "version": 16,
          "title": "Billing and Coding: Debridement of Mycotic Nails",
          "...": "..."
        },
        "states": ["TX"],
        "state_regions": [],
        "coverage": {
          "answer": "supported",
          "confidence": 1,
          "derivation": "source_stated",
          "...": "..."
        },
        "basis": "dx_listed_as_supporting",
        "context": false
      }
    ]
  }
}

results has one entry per LCD or article that lists the code (in state, when you send one); coverage at the top combines them: their answer when they agree, otherwise unclear. An LCD whose criteria are narrative, when its own billing article answers for the code, is listed with context: true: it is evidence to read, not a separate answer, so it doesn't make the overall answer unclear. Documents that answer come first, then context ones; within each group the order carries no meaning. ?view=compact returns only the overall answer; view=full (the default) adds results. No document listing the code means there is no local policy for it: unclear, with empty results. National Coverage Determinations (NCDs) don't list codes; articles that implement one name it in related_ncds.

The three answers

answerMeans
supportedThe document lists the diagnosis among the codes that support medical necessity for this procedure code.
not_supportedThe document lists the diagnosis among the codes that don't, or says that diagnoses it doesn't list don't support the code and this one isn't listed.
unclearThe document doesn't settle it for this pair: its criteria are narrative only, the diagnosis comes with extra conditions, or its lists aren't tied to this code.

basis names which of these it was, in terms of the document: dx_listed_as_supporting, dx_listed_as_not_supporting, dx_not_listed, conditional (listed, but marked as needing something more, such as a second diagnosis), conflicting_lists, pairing_not_stated (the article has several code groups and doesn't say which list goes with this code) or no_dx_list.

How each answer was reached: derivation

Every answer carries the same five fields (the same as every derived answer; see Derived answers):

  • derivation says how the answer was reached. source_stated: the document states it in its published code lists, and we only read the list. derived: we concluded it from what the document says, without the document stating it outright. reviewed: a person checked it. Here, supported and not_supported are always source_stated; unclear is derived, because "the document doesn't settle this" is our reading, not something CMS writes.
  • confidence is from 0 to 1: 1 for answers the document states, 0 for unclear. Don't act on an answer below your own threshold without checking the evidence.
  • evidence links the document's page in the Medicare Coverage Database, with the section (anchor) to read: the supporting or non-supporting ICD-10 list, the code list, or the coverage indications.
  • as_of is when CMS published the export the answer was read from.
  • answer is one of the three above.

We serve facts and links, never the policy text: read the linked page for the criteria themselves.

What it is not

  • Not a coverage determination. Every response says so. A listed diagnosis doesn't guarantee payment: the service must still be reasonable and necessary and meet the LCD's criteria, and the medical record must support it.
  • Not prior authorization, Medicare Advantage plan criteria or a payment amount (see Medicare Part B ASP for drug payment limits).
  • CPT codes appear as code numbers only, never with their descriptors (copyrighted by the AMA). Dental (CDT) codes are left out.
  • Send the full billable ICD-10-CM code (E11.9, with or without the dot): a category such as E11 matches only if a document lists it.
  • Not a bulk download. Each account can look up a limited number of different code and diagnosis pairs a day (5,000 on Pro, 20,000 on Team), all its keys together; repeats don't count. See daily lookup limits.

When a coverage document changes in a way that can change an answer, it appears in the coverage change feed.

On this page