ATC Code API

ATC Code API — WHO classification via REST

The complete WHO Anatomical Therapeutic Chemical classification — all 10,162 codes — as a clean REST tree. GET /v1/atc/:code returns the node with its level, multilingual labels (EN/DE/FR/IT), and Defined Daily Dose, plus the full chain of parents from the code up to its level-1 anatomical group.

Traverse the hierarchy with /children for the direct descendants of a node, or /drugs to list every product in the subtree — ATC is a prefix tree, so a query on M01 covers everything under it.

GET /v1/atc/:code
curl 'https://drug-database.com/v1/atc/M01AE01' \
  -H 'Authorization: Bearer ms_live_…'
response — trimmed
{
  "node": {
    "code": "M01AE01",
    "level": 5,
    "parent_code": "M01AE",
    "label_en": "ibuprofen",
    "label_de": "Ibuprofen",
    "label_fr": "ibuprofène",
    "label_it": "ibuprofene",
    "ddd_value": 1.2,
    "ddd_unit": "g",
    "ddd_route": "O"
  },
  "parents": [
    { "code": "M01AE", "level": 4, "label_en": "Propionic acid derivatives" },
    { "code": "M01A",  "level": 3, "label_en": "Antiinflammatory and antirheumatic products, non-steroids" },
    { "code": "M01",   "level": 2, "label_en": "Antiinflammatory and antirheumatic products" },
    { "code": "M",     "level": 1, "label_en": "Musculo-skeletal system" }
  ],
  "_meta": { "sources": [ "atc" ] }
}

What you get

Full parent chain

Every lookup returns the node plus its ancestors to the level-1 root — no repeated calls to reconstruct the path.

Tree traversal

/children for direct descendants, /drugs for the whole subtree by ATC prefix.

Multilingual + DDD

EN/DE/FR/IT labels and Defined Daily Dose (value, unit, route) on each node.

Frequently asked

What does GET /v1/atc/:code return?

The ATC node — code, level (1–5), parent_code, English/German/French/Italian labels, and DDD (value, unit, route) — plus the full chain of parents from the node up to its anatomical-group root.

How do I walk the tree?

GET /v1/atc/:code/children returns the direct children of a node. Because ATC is a prefix tree, you can also use GET /v1/atc/:code/drugs to list every product whose ATC code falls anywhere under the node.

How many codes are covered?

The full WHO ATC classification — 10,162 codes across all five levels, with multilingual labels and Defined Daily Doses where the WHO publishes them.

Start free — 100 requests/day

Free tier: 100 requests/day, no card. ATC reads need the atc:read scope and are ETag-cached (the tree updates yearly). See the docs for /children and /drugs.