Coverage Determination Check
Check Local Coverage Determination (LCD) policies for HCPCS/CPT codes.
Overview
Local Coverage Determinations (LCDs) are decisions made by Medicare Administrative Contractors (MACs) about whether a particular service is covered under Medicare. An LCD specifies the conditions under which a procedure is considered reasonable and necessary.
Before submitting a claim, checking for active LCD policies can help identify procedures that may require additional documentation or may face coverage restrictions in certain jurisdictions.
Note: National Coverage Determinations (NCDs) are not included in this endpoint because CMS does not publish structured HCPCS crosswalks for NCD policies.
Endpoint
| Method | Path | Description |
|---|---|---|
| GET | /v1/coverage/check |
Check coverage determinations for a HCPCS code |
Check Coverage
Check LCD policies for a drug injection code
const response = await fetch(
"https://api.fhirfly.io/v1/coverage/check?hcpcs=J0585",
{
method: "GET",
headers: {
"x-api-key": "YOUR_API_KEY",
}
}
);
const data = await response.json();
console.log(data);{
"data": {
"hcpcs_code": "J0585",
"policies_found": 2,
"policies": [
{
"policy_type": "lcd",
"policy_id": "L34523",
"display_id": "L34523",
"policy_title": "Botulinum Toxins",
"hcpcs_description": "Injection, onabotulinumtoxinA",
"status": "active",
"is_active": true,
"effective_date": "2020-10-01"
},
{
"policy_type": "lcd",
"policy_id": "L35078",
"display_id": "L35078",
"policy_title": "Botulinum Toxins",
"hcpcs_description": "Injection, onabotulinumtoxinA",
"status": "active",
"is_active": true,
"effective_date": "2021-04-01"
}
],
"summary": "2 active LCD policies found for J0585."
},
"meta": {
"source": {
"name": "CMS Medicare Coverage Database"
},
"legal": {
"license": "public_domain",
"attribution_required": false,
"source_name": "CMS Medicare Coverage Database",
"citation": "CMS Medicare Coverage Database. Accessed via FHIRfly."
}
}
}When no policies exist for a code, policies_found is 0 and the policies array is empty:
Check a code with no LCD policies
const response = await fetch(
"https://api.fhirfly.io/v1/coverage/check?hcpcs=99213",
{
method: "GET",
headers: {
"x-api-key": "YOUR_API_KEY",
}
}
);
const data = await response.json();
console.log(data);{
"data": {
"hcpcs_code": "99213",
"policies_found": 0,
"policies": [],
"summary": "No active LCD policies found for 99213."
},
"meta": {
"source": {
"name": "CMS Medicare Coverage Database"
},
"legal": {
"license": "public_domain",
"attribution_required": false,
"source_name": "CMS Medicare Coverage Database",
"citation": "CMS Medicare Coverage Database. Accessed via FHIRfly."
}
}
}Parameters
| Parameter | Required | Description |
|---|---|---|
hcpcs |
Yes | HCPCS/CPT code (query parameter, 4-5 alphanumeric characters) |
active |
No | "true" (default) returns only active policies. "false" includes retired/inactive policies. |
Understanding the Response
policies[]
Each item represents an LCD policy linked to the HCPCS code.
| Field | Type | Description |
|---|---|---|
policy_type |
string | "lcd" (Local Coverage Determination) |
policy_id |
string | CMS policy identifier (e.g., "L34523") |
display_id |
string | Display-friendly policy ID |
policy_title |
string | Title of the coverage policy |
hcpcs_description |
string | Description of the HCPCS code in the context of this policy |
status |
string | Policy status (e.g., "active", "retired") |
is_active |
boolean | Whether the policy is currently active |
effective_date |
string | null | When the policy took effect (ISO date) |
What This Means for Claims
- 0 policies — No LCD restrictions. The procedure is generally covered under standard Medicare rules.
- 1+ policies — Active LCD policies exist. The claim may require specific diagnosis codes, documentation, or medical necessity justification depending on the MAC's requirements.
LCD policies vary by jurisdiction — different MACs may have different LCDs for the same code.
SDK Usage
import { Fhirfly } from "@fhirfly-io/terminology";
const client = new Fhirfly({ apiKey: "your-api-key" });
// Check coverage
const coverage = await client.claims.checkCoverage("J0585");
console.log(`${coverage.data.policies_found} policies found`);
for (const policy of coverage.data.policies) {
console.log(`${policy.display_id}: ${policy.policy_title} (${policy.status})`);
}
// Include inactive policies
const all = await client.claims.checkCoverage("J0585", { active: false });
Required Scopes
claims.read— Coverage determination checks
See Also
- NCCI Edit Validation — Check code pair billing conflicts
- MUE Limits — Maximum units per service
- Claims Intelligence Overview — All claims APIs