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
| Method | Path | Description |
|---|---|---|
| GET | /v1/hcpcs/:code |
Single HCPCS code lookup |
| POST | /v1/hcpcs/_batch |
Batch lookup (up to 100) |
| GET | /v1/hcpcs/modifier/:code |
Modifier code lookup |
| GET | /v1/hcpcs/shapes |
List available response shapes |
Single Lookup
Look up ambulance mileage code
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);{
"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
| Code | Description | Category |
|---|---|---|
| A0425 | Ground mileage, per statute mile | A - Ambulance/Transport |
| E0100 | Cane, includes canes of all materials | E - DME |
| J9035 | Injection, bevacizumab, 10 mg | J - Drugs Administered |
| L0120 | Cervical, flexible, non-adjustable | L - Orthotics/Prosthetics |
| Q0162 | Ondansetron, 1 mg, oral | Q - Temporary Codes |
Batch Lookup
Look up multiple HCPCS codes in a single request (up to 100):
Look up multiple HCPCS codes
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);{
"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)
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);{
"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:
| Shape | Description |
|---|---|
compact |
Code, 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 lookupshcpcs.search- Search HCPCS codes
See Also
- HCPCS Search — Search HCPCS Level II codes
- Claims Intelligence APIs — Overview of all lookup APIs
- J-Code/NDC Crosswalk — Map J-codes to NDC codes