Care categories
Plain-English categories over ICD-10, HCPCS and NDC records, and how to tell which answers are inferred. On every plan.
Code sets are organized for billing and statistics, not for people. Care categories group them the way a patient or a care navigator would: Knee replacement, Diabetes supplies, Blood thinners, Physical therapy and rehabilitation. Every ICD-10-CM diagnosis, ICD-10-PCS procedure, HCPCS Level II code and FDA NDC drug product can carry one or more of them.
Care categories are on every plan, Free included.
The categories
About 270 categories in a hierarchy of up to four levels: top-level groups such as
bones-joints-and-muscles, then narrower ones such as joint-replacement and
knee-replacement. Each has a stable slug you can store, a name to show, its parent, its
path from the top and its children.
curl "https://api.healthcare.dev/v1/care-categories?q=diabetes" \
-H "Authorization: Bearer $HDEV_API_KEY"GET /v1/care-categories lists them all (or those whose name has every word of q). It is free:
it doesn't count toward your calls.
GET /v1/care-categories/{slug} returns one category with how many active records each system
has in it or in any category below it:
{
"data": {
"slug": "knee-replacement",
"name": "Knee replacement",
"parent": "joint-replacement",
"path": ["bones-joints-and-muscles", "joint-replacement", "knee-replacement"],
"children": [],
"counts": { "icd10cm": 5, "icd10pcs": 154, "hcpcs": 0, "ndc": 0 }
}
}A count is null while that system has no published version, or its categories aren't built
for the version just published.
GET /v1/care-categories/{slug}/codes?system=icd10pcs lists the records, in code order, 25 per
page (up to 100 with limit; follow links.next, whose cursor only works for the same category
and system). It answers 503 in the short window before a new version's categories are built:
for await (const c of hdev.careCategories.iterateCodes("knee-replacement", { system: "icd10pcs" }))
console.log(c.code, c.display, c.derivation, c.confidence);On code and drug records
Code records (lookups, searches, the batch, children, parents and hierarchies under
/v1/codes/{system}) and NDC lookups (/v1/drugs/ndc/{ndc}) carry the record's categories:
care_categories: the slugs, in every view.care_category_details: each category with how it was assigned, in the full view (the default).
"care_categories": ["type-2-diabetes"],
"care_category_details": [
{
"slug": "type-2-diabetes",
"name": "Type 2 diabetes",
"confidence": 0.95,
"derivation": "source_stated",
"evidence": [
{
"url": "https://www.cms.gov/medicare/coding-billing/icd-10-codes",
"anchor": "ICD-10-CM category E11"
}
],
"as_of": "2026-10-01T00:00:00.000Z"
}
]An empty care_categories means no category could be assigned with confidence. We leave a record
uncategorized rather than guess. A lookup with as_of (the record as it was on a past date)
carries no categories: they are worked out for the published version only.
Which answers are inferred: derivation
A care category is our label, not the source's, so every one says how we got there:
derivation | What it means |
|---|---|
source_stated | The source classifies the record this way and the category restates it: the ICD-10-CM block "Diabetes mellitus", the ICD-10-PCS root operation "Replacement" of a knee joint, a HCPCS code range, the FDA pharmacologic class "Insulin Analog". |
derived | We inferred it: from words in the description, from a classification that usually but not always means this category, or from a record's other fields. Check it before relying on it. |
reviewed | A person checked it against the source. |
evidence names the source and the part of its structure the answer rests on (anchor), so you
can check it. confidence runs from 0 to 1; we don't assign a category below 0.8.
Freshness
Categories are worked out again with every release of the source: a new ICD-10 code set, a
quarterly HCPCS update, each day's NDC directory. as_of is when the source version the answer
rests on took effect.
Care categories are reference data for navigation and search. They are not clinical advice and not a coverage or billing determination.