Dashboard

HCPCS Level II API

Look up CMS HCPCS Level II procedure and supply codes used for non-physician services.

Overview

HCPCS (Healthcare Common Procedure Coding System) Level II codes are maintained by CMS and used on CMS-1500 claims for durable medical equipment (DME), ambulance services, supplies, and procedures not covered by CPT. FHIRfly provides fast lookups against the current HCPCS Level II code set, including modifier codes.

Endpoints

MethodPathDescription
GET/v1/hcpcs/:codeSingle HCPCS code lookup
POST/v1/hcpcs/_batchBatch lookup (up to 100)
GET/v1/hcpcs/modifier/:codeModifier code lookup
GET/v1/hcpcs/shapesList available response shapes

Single Lookup

Look up ambulance mileage code

Request
Node.js
const response = await fetch(
  "https://api.fhirfly.io/v1/hcpcs/A0425",
  {
    method: "GET",
    headers: {
    "x-api-key": "YOUR_API_KEY",
  }
  }
);

const data = await response.json();
console.log(data);
Response
JSON
{
  "data": {
    "code": "A0425",
    "display": "GROUND MILEAGE, PER STATUTE MILE",
    "category": "A",
    "status_code": "A",
    "long_description": "Ground mileage, per statute mile",
    "level": "II",
    "fhir_coding": {
      "system": "https://www.cms.gov/Medicare/Coding/HCPCSReleaseCodeSets",
      "code": "A0425",
      "display": "GROUND MILEAGE, PER STATUTE MILE"
    }
  },
  "meta": {
    "legal": {
      "license": "public_domain",
      "attribution_required": false,
      "source_name": "CMS HCPCS Level II"
    }
  }
}

Common HCPCS Codes

CodeDescriptionCategory
A0425Ground mileage, per statute mileA - Ambulance/Transport
E0100Cane, includes canes of all materialsE - DME
J9035Injection, bevacizumab, 10 mgJ - Drugs Administered
L0120Cervical, flexible, non-adjustableL - Orthotics/Prosthetics
Q0162Ondansetron, 1 mg, oralQ - Temporary Codes

Batch Lookup

Look up multiple HCPCS codes in a single request (up to 100):

Look up multiple HCPCS codes

Request
Node.js
const response = await fetch(
  "https://api.fhirfly.io/v1/hcpcs/_batch",
  {
    method: "POST",
    headers: {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
    body: JSON.stringify({
    "codes": [
      "A0425",
      "E0100",
      "J9035"
    ]
  })
  }
);

const data = await response.json();
console.log(data);
Response
JSON
{
  "count": 3,
  "results": [
    {
      "input": "A0425",
      "code": "A0425",
      "status": "ok",
      "data": {
        "display": "GROUND MILEAGE, PER STATUTE MILE",
        "category": "A",
        "status_code": "A"
      }
    },
    {
      "input": "E0100",
      "code": "E0100",
      "status": "ok",
      "data": {
        "display": "CANE, INCLUDES CANES OF ALL MATERIALS, ADJUSTABLE OR FIXED, WITH TIP",
        "category": "E",
        "status_code": "A"
      }
    },
    {
      "input": "J9035",
      "code": "J9035",
      "status": "ok",
      "data": {
        "display": "INJECTION, BEVACIZUMAB, 10 MG",
        "category": "J",
        "status_code": "A"
      }
    }
  ],
  "meta": {
    "legal": {
      "license": "public_domain"
    }
  }
}

Batch with shape=full

When using shape=full on batch requests, the response includes meta.source with provenance information:

POST /v1/hcpcs/_batch?shape=full
{
  "count": 3,
  "results": [
    {
      "input": "A0425",
      "code": "A0425",
      "status": "ok",
      "data": {
        "display": "GROUND MILEAGE, PER STATUTE MILE",
        "category": "A",
        "status_code": "A",
        "long_description": "Ground mileage, per statute mile",
        "level": "II"
      }
    }
  ],
  "meta": {
    "source": {
      "name": "CMS HCPCS Level II",
      "url": "https://www.cms.gov/medicare/coding-billing/healthcare-common-procedure-system",
      "version": "2026",
      "fhirfly_updated_at": "2026-03-01T03:00:00Z"
    },
    "legal": {
      "license": "public_domain",
      "attribution_required": false
    }
  }
}

Modifier Lookup

HCPCS modifiers provide additional information about the service performed. Use the modifier endpoint to look up modifier codes:

Look up modifier 25 (Significant, Separately Identifiable E/M)

Request
Node.js
const response = await fetch(
  "https://api.fhirfly.io/v1/hcpcs/modifier/25",
  {
    method: "GET",
    headers: {
    "x-api-key": "YOUR_API_KEY",
  }
  }
);

const data = await response.json();
console.log(data);
Response
JSON
{
  "data": {
    "code": "25",
    "display": "SIGNIFICANT, SEPARATELY IDENTIFIABLE EVALUATION AND MANAGEMENT SERVICE BY THE SAME PHYSICIAN OR OTHER QUALIFIED HEALTH CARE PROFESSIONAL ON THE SAME DAY OF THE PROCEDURE OR OTHER SERVICE",
    "type": "modifier"
  },
  "meta": {
    "legal": {
      "license": "public_domain",
      "attribution_required": false,
      "source_name": "CMS HCPCS Level II"
    }
  }
}

Response Shapes

Control the level of detail in responses with the shape query parameter:

ShapeDescription
compactCode, display, category
standard+ status, long description, level, FHIR coding (default)
full+ ingest metadata, provenance
# Minimal data
GET /v1/hcpcs/A0425?shape=compact

# Standard data (default)
GET /v1/hcpcs/A0425?shape=standard

# Full data with provenance
GET /v1/hcpcs/A0425?shape=full

See Response Shapes for field details.

Required Scopes

  • hcpcs.read - Single, batch, and modifier lookups
  • hcpcs.search - Search HCPCS codes

See Also