Solution · ATC code API

ATC Code API — WHO classification via REST.

The complete WHO ATC classification as a clean REST tree — node, parent chain, multilingual labels, DDD, plus /children and /drugs traversal.

GET /api/v1/atc/{code}

What you get

The job, end to end

The complete WHO Anatomical Therapeutic Chemical classification as a clean REST tree. GET /api/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.

Lookup

Full parent chain

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

Tree traversal

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

Multilingual + DDD

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

In code

A representative call

A single GET returns the node, its multilingual labels, the DDD and the full parent chain to the anatomical root.

GET /api/v1/atc/M01AE01
curl 'https://drug-database.com/api/v1/atc/M01AE01' \
  -H 'Authorization: Bearer dd_live_…'
response
{
  "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"] }
}

Coverage & sourcing

  • The full WHO ATC classification across all five levels, with EN/DE/FR/IT labels.
  • Defined Daily Doses (value, unit, route) wherever the WHO publishes them.
  • GET /api/v1/atc/{code}/drugs joins the tree to the 610k-drug catalog by prefix.
  • Data sourced from the WHO Collaborating Centre; we are not affiliated with the WHO.
Good to know
  • · ATC reads need the atc:read scope and are ETag-cached (the tree updates yearly).
  • · See the docs for /children and /drugs.

FAQ

Common questions

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.
GET /api/v1/atc/{code}/children returns the direct children of a node. Because ATC is a prefix tree, you can also use GET /api/v1/atc/{code}/drugs to list every product whose ATC code falls anywhere under the node.
The full WHO ATC classification across all five levels, with multilingual labels and Defined Daily Doses where the WHO publishes them.

Ready when you are

Ship atc code api on data that stays fresh.

Free to test — 100 requests/day, no card. Upgrade only when you need the throughput.

Free tier · 100 requests/day · No card required