---
title: "Search Medicare Coverage Database"
method: GET
path: "/v1/sources/cms-coverage/search"
tags: ["Medicare Coverage Database"]
---

# Search Medicare Coverage Database

`GET /v1/sources/cms-coverage/search`

## Request

- Base URL: `https://api.assyro.com`
- URL: `https://api.assyro.com/v1/sources/cms-coverage/search`
- Auth: none declared

Search US Medicare coverage policy in Assyro's copy of CMS's Medicare Coverage Database (MCD): National Coverage Determinations (ncd: the full text of every NCD, its indications and limitations of coverage, effective dates and benefit category; binding on every Medicare contractor) and CMS's listings of Local Coverage Determinations (lcd, proposed-lcd) and their billing and coding articles (article): number, title, contractor (MAC), the states they apply in, status, effective and retirement dates and the CMS link. LCD and article TEXT and all codes (CPT, HCPCS, ICD-10) are not held (CMS licenses them for personal use only): give the CMS link for those, never infer criteria from an LCD title. Words match the title, the NCD text, contractor and state names. Retired LCD and article versions are searched only with includeRetired. For what Medicare spends on a drug use search_cms_drug_spending.

## Query parameters

- `query` string, required: The item, service or topic, optionally with a contractor or state, e.g. "transcatheter aortic valve" or "facet joint Florida".
- `type` 'ncd' | 'lcd' | 'proposed-lcd' | 'article': ncd, lcd (final), proposed-lcd or article. Omit to search all four.
- `includeRetired` boolean: Also search retired LCD and article versions. Default false.
- `limit` integer: Documents to return, default 8.
- `offset` integer: Skip this many results (for paging), default 0.

## Response `200`

Matching records.

- SearchResponse
  - `version` unknown, required
  - `source` SourceRef, required
    - `id` string, required
    - `label` string, required
    - `authority` string, required
  - `total` integer, nullable, required: Total matches the source reports, when it says.
  - `records` Record[], required
    - `id` string, required: The source's own identifier for the record.
    - `title` string, required
    - `url` string, required: The record's page at the source, to verify it.
    - `authority` string, required: Who published the record.
    - `snippet` string, nullable, required: The part of the record that matched; null where the licence allows only a link.
    - `publishedDate` string, nullable, required
    - `version` string, nullable, required: The edition or revision read.
    - `fields` object, nullable, required: The source's own fields; null where the licence allows only a link.
    - `asOf` string, nullable, required: The day Assyro's copy of the source was read (YYYY-MM-DD).
    - `attribution` string: The attribution the source's licence requires, on sources that require one.
  - `note` string
  - `summary` string[]

## Other responses

- `400`: The request is not valid: an unknown parameter or an argument the source refuses.
- `404`: No such source or record.
- `429`: Rate limited; retry after the Retry-After header.
- `503`: The source cannot answer from Assyro's copy right now.

---

[API](https://skmtc.dev/assyro/apis/assyro-public-data-api.md) - [All operations](https://skmtc.dev/assyro/apis/assyro-public-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/assyro/apis/assyro-public-data-api/revisions/c861290c9f47?raw)
