Clinical Coding

ICD-10 Code Search.

Instantly search 70,000+ ICD-10-CM codes by description or code number. Powered by the NIH clinical tables API — no account needed.

Results appear as you type. Searches are cached — no DB queries.

Search by description

"diabetes"

Returns all codes matching the condition

Search by code prefix

"E11"

Returns all subcodes under that category

Partial match

"hypertens"

Matches partial words and abbreviations

ICD-10-CM data sourced from NIH National Library of Medicine. Updated annually.

What is ICD-10?

ICD-10 (International Classification of Diseases, 10th Revision) is the global standard for classifying diseases, injuries, and health conditions. In the United States, two separate code sets are used: ICD-10-CM for diagnosis coding and ICD-10-PCS for inpatient procedure coding.

ICD-10-CM — Diagnosis Codes

~70,000 codes. Used by all providers on outpatient and inpatient claims. 3–7 characters (letter + numbers). Maintained by CMS and CDC. Updated every October 1st.

ICD-10-PCS — Inpatient Procedure Codes

~80,000 codes. Used only on hospital facility (UB-04) inpatient claims. Always 7 alphanumeric characters. Completely different structure from CM. Not included in this search tool.

ICD-10-CM codes follow a hierarchical structure: the first three characters form the category (e.g., E11 = Type 2 diabetes mellitus), and characters 4–7 add clinical specificity for etiology, anatomic site, and severity. Codes updated annually — CMS publishes the new code file each May for an October 1st effective date.

ICD-10-CM replaced ICD-9-CM in the United States on October 1, 2015. The transition nearly quadrupled the number of available codes (from ~14,000 to ~70,000), enabling far more precise clinical documentation and analytics. Data engineers working with claims from before October 2015 must maintain crosswalk tables between ICD-9 and ICD-10 diagnosis codes for longitudinal analysis.

How to Use This ICD-10 Search

This tool queries the NIH clinical tables API in real time against the official CMS ICD-10-CM file. No login required and results reflect the current code year.

Search by Description

  1. 1Type a plain-English term: "knee pain", "type 2 diabetes", "sepsis".
  2. 2Matching codes and full descriptions appear instantly.
  3. 3Results are ranked by relevance — most specific matches first.
  4. 4Click any code to copy it to clipboard.

Search by Code or Prefix

  1. 1Enter a code prefix: "E11" returns all Type 2 diabetes codes.
  2. 2Enter a full code: "E11.65" for exact lookup.
  3. 3Use 3-character category codes to browse all child codes.
  4. 4Billable codes are marked — non-billable header codes are shown but cannot be submitted on claims.

Tip: When searching for related codes, start with the 3-character category (e.g., J18 for pneumonia) to see the full hierarchy before choosing the most specific billable code.

ICD-10 in Healthcare Data Systems

Claims Adjudication

Payers validate every ICD-10-CM code on inbound 837 claims against the active code file for the date of service. Invalid codes trigger a rejection (277CA). Expired codes — valid in a prior year but removed in the current code set — are a common source of claim denials in January when the new code year begins.

HEDIS Measure Identification

NCQA's HEDIS measures use ICD-10-CM code value sets to identify eligible members and events. For example, the Diabetes Care measure uses a value set of ~50 ICD-10 codes to find members with diabetes in the measurement year. NCQA publishes annual value set updates that must be loaded into your analytics layer each January.

HCC Risk Adjustment

CMS-HCC (Hierarchical Condition Categories) maps ICD-10-CM diagnosis codes to HCC categories that drive Medicare Advantage risk scores and capitation payments. Each HCC maps to a coefficient that adds to a member's RAF score. Accurate ICD-10 coding in claims directly impacts plan revenue — missing a qualifying diagnosis code can mean losing thousands per member per year.

Population Health Analytics

ICD-10-CM codes are the primary signal for chronic condition identification, disease burden analysis, and cohort building in population health platforms. Data engineers build materialized views that flag members with diabetes (E10–E13), hypertension (I10–I16), or COPD (J40–J44) based on ICD-10 codes appearing in claims data within a rolling 12-month or 24-month lookback window.

ICD-10 Database Schema

Store the ICD-10-CM code file as a reference table in your data warehouse. Load a new annual snapshot each October and keep prior years for historical claim lookups — always validate a diagnosis code against the version active on the date of service, not the current year.

CREATE TABLE icd10_codes (
  icd10_cd      VARCHAR(10) PRIMARY KEY,
  icd10_desc    VARCHAR(500),
  short_desc    VARCHAR(100),
  category_cd   VARCHAR(3),         -- 3-char parent category (e.g. E11)
  is_billable   BOOLEAN,            -- FALSE for header/category codes
  eff_dt        DATE,               -- Effective date (usually Oct 1)
  exp_dt        DATE,               -- NULL if currently active
  hcc_model_cd  VARCHAR(10),        -- CMS-HCC mapping if applicable
  chronic_flg   BOOLEAN             -- Chronic condition indicator
);

CREATE INDEX idx_icd10_category ON icd10_codes(category_cd);
CREATE INDEX idx_icd10_hcc      ON icd10_codes(hcc_model_cd) WHERE hcc_model_cd IS NOT NULL;
CREATE INDEX idx_icd10_desc     ON icd10_codes USING gin(to_tsvector('english', icd10_desc));

-- Example: find all billable ICD-10 codes that map to an HCC
SELECT
  i.icd10_cd,
  i.icd10_desc,
  i.hcc_model_cd,
  i.chronic_flg
FROM icd10_codes i
WHERE i.is_billable = TRUE
  AND i.hcc_model_cd IS NOT NULL
  AND i.exp_dt IS NULL
ORDER BY i.hcc_model_cd, i.icd10_cd;

Need to convert this DDL for Snowflake, BigQuery, or SQL Server? Use the free DDL Converter →

Frequently Asked Questions

What is the difference between ICD-10-CM and ICD-10-PCS?

ICD-10-CM (Clinical Modification) contains diagnosis codes used by all healthcare providers — physicians, hospitals, and payers — to classify diseases, conditions, and symptoms. ICD-10-PCS (Procedure Coding System) contains inpatient procedure codes used only for hospital facility billing on UB-04 claims. This tool searches ICD-10-CM diagnosis codes. ICD-10-PCS codes are 7 characters, alphanumeric, and structured completely differently.

How many ICD-10 codes are there?

ICD-10-CM contains approximately 70,000 diagnosis codes as of the FY2026 annual update. The code set is updated each October 1st by CMS and the CDC. Not all codes are billable — many are header/category codes that require a more specific child code for claims submission.

How do I search ICD-10 codes by description?

Enter a plain-English term in the search box above — for example "type 2 diabetes" or "knee pain" — and matching codes with full descriptions will appear instantly. You can also search by code prefix: entering "E11" returns all Type 2 diabetes codes. Results are powered by the NIH clinical tables API, which uses the official CMS ICD-10-CM code file.

How are ICD-10 codes used in claims data?

ICD-10-CM diagnosis codes appear in several places in claims data: the principal diagnosis (DX01) and up to 24 secondary diagnoses on the HI segment of 837 EDI claims, the DIAGNOSIS_CODE columns in your claims warehouse tables, and as inputs to HCC risk adjustment models that calculate Medicare Advantage RAF scores. Every ICD-10 code on a claim drives clinical grouping, quality measure attribution, and payer reimbursement logic.

What is the ICD-10 code structure?

ICD-10-CM codes are 3 to 7 characters. The first character is always a letter (A–Z). Characters 2–3 are numeric. A decimal point separates the category (first 3 characters) from the etiology/anatomic site/severity extension (characters 4–7). Example: E11.65 = E (endocrine) + 11 (type 2 diabetes) + .65 (with hyperglycemia). The 7th character is often a placeholder "X" or an encounter type (A=initial, D=subsequent, S=sequela).