HCPCS Search
Search CMS HCPCS Level II procedure and supply codes.
Endpoint
GET /v1/hcpcs/search
Quick Start
Node.js
import { Fhirfly } from "@fhirfly-io/terminology";
const client = new Fhirfly({ apiKey: "YOUR_API_KEY" });
// Search for ambulance-related HCPCS codes
const results = await client.hcpcs.search({
q: "ambulance"
});
console.log(`Found ${results.total} codes`);
for (const item of results.items) {
console.log(`${item.code}: ${item.display}`);
}
Parameters
Text Search
| Parameter | Description | Example |
|---|---|---|
q |
General text search across code, display, and long description | q=ambulance |
Filters
| Parameter | Type | Description | Example |
|---|---|---|---|
category |
string | HCPCS category letter (A-V) | A, E, J, L |
status_code |
string | Code status | A (active), T (terminated) |
Pagination & Response
| Parameter | Default | Max | Description |
|---|---|---|---|
limit |
20 | 100 | Results per page |
page |
1 | 100 | Page number |
shape |
compact | --- | compact, standard, full |
sort |
relevance | --- | relevance, code, display |
Example Response
{
"facets": {
"category": {
"A": 128,
"E": 45,
"J": 312,
"L": 87,
"Q": 64
},
"status_code": {
"A": 598,
"T": 38
}
},
"has_more": true,
"items": [
{
"code": "A0425",
"display": "GROUND MILEAGE, PER STATUTE MILE",
"category": "A",
"status_code": "A"
},
{
"code": "A0426",
"display": "AMBULANCE SERVICE, ADVANCED LIFE SUPPORT, NON-EMERGENCY TRANSPORT, LEVEL 1 (ALS 1)",
"category": "A",
"status_code": "A"
}
],
"limit": 2,
"meta": {
"legal": {
"attribution_required": false,
"citation": "CMS HCPCS Level II. CMS.gov. Accessed 2026-03-15 via FHIRfly.",
"license": "public_domain",
"source_name": "CMS HCPCS Level II"
}
},
"page": 1,
"total": 636,
"total_capped": false
}
Use Cases
Filter by Category
Node.js
// Find all J-codes (drugs administered other than oral method)
const results = await client.hcpcs.search({
category: "J"
});
Search within a Category
Node.js
// Search for DME wheelchair codes
const results = await client.hcpcs.search({
q: "wheelchair",
category: "E"
});
Find Active Codes Only
Node.js
const results = await client.hcpcs.search({
q: "injection",
status_code: "A"
});
Facets
HCPCS search returns these facets:
| Facet | Description |
|---|---|
category |
Distribution by HCPCS category (A-V) |
status_code |
Distribution by active/terminated status |
HCPCS Categories
| Category | Description |
|---|---|
A |
Transport Services Including Ambulance, Medical and Surgical Supplies |
B |
Enteral and Parenteral Therapy |
C |
Outpatient PPS (Temporary Hospital Outpatient) |
E |
Durable Medical Equipment |
G |
Procedures/Professional Services (Temporary) |
H |
Alcohol and Drug Abuse Treatment Services |
J |
Drugs Administered Other Than Oral Method |
K |
Temporary DME Codes |
L |
Orthotic and Prosthetic Procedures and Devices |
M |
Medical Services |
P |
Pathology and Laboratory Services |
Q |
Temporary Codes (Miscellaneous) |
R |
Diagnostic Radiology Services |
S |
Temporary National Codes (Non-Medicare) |
T |
National Codes for State Medicaid Agencies |
V |
Vision, Hearing, and Speech-Language Pathology Services |
Required Scope
hcpcs.search
See Also
- HCPCS Level II API — Look up a specific HCPCS code
- Clinical Data APIs Overview — Overview of all lookup APIs