Skip to main content
  • Dataset id: cms_hcpcs_codes
  • Jurisdiction: US · CMS
  • Date field: none. A search that sets date_from or date_to skips this dataset and reports it as skipped.
  • Access: any API key.

Filters

Send these under filters.cms_hcpcs_codes in a search request. A filter not listed here, or a value of the wrong type, is a 400.
string
Exact HCPCS Level II code, uppercase (e.g. “J9299”, “C1874”, “E1399”), or a 2-character modifier (e.g. “A1”). Digit-leading CPT codes are not in this dataset.
string
“code” for the ~8,700 HCPCS Level II codes, “modifier” for the ~380 two-character HCPCS modifiers. Omit for both.Values: code, modifier.
string
BM25 keyword match on the long and short descriptors (e.g. “wheelchair cushion”, “injection pembrolizumab”).
string
Exact CMS coverage code, a single uppercase letter. These five are the complete set present in the current release: “C” (carrier judgement), “D” (special coverage instructions apply), “I” (not payable by Medicare), “M” (non-covered by Medicare), “S” (non-covered by Medicare statute).Values: C, D, I, M, S.
string
Exact CMS pricing indicator code (e.g. “13”, “00”), which encodes how the item is priced for Medicare.
string
Exact Berenson-Eggers Type of Service (BETOS) code (e.g. “D1E”), a clinical category grouping.
boolean
True to keep only codes with no termination date (or a future one) as of the current quarterly release; False for retired codes only.
integer
Exact year the code was added to HCPCS (e.g. 2024).
integer
Inclusive lower bound on the year the code was added.
integer
Inclusive upper bound on the year the code was added.

Fields

Each result from this dataset has these in fields: action_code, action_effective_date, betos_code, code_added_date, coverage_code, cross_reference_code, entry_type, hcpcs_code, id, is_active, lab_certification_code, long_description, pricing_indicator_code, short_description, source_quarter, termination_date, url, year