Dashboard

dm+d API

Look up UK dm+d (Dictionary of Medicines and Devices) concepts — the standard terminology for medicines and medical devices in the NHS.

Overview

dm+d is maintained by NHS England and the NHSBSA. It provides unique SNOMED-style codes for medicines and medical devices used in UK healthcare. FHIRfly indexes all five concept types: VTM, VMP, AMP, VMPP, and AMPP, published under the Open Government Licence v3.0 (Crown copyright).

Concept Types

TypeFull NameDescription
VTMVirtual Therapeutic MoietyActive ingredient (e.g., "Paracetamol")
VMPVirtual Medicinal ProductGeneric product (e.g., "Paracetamol 500mg tablets")
AMPActual Medicinal ProductBranded product (e.g., "Panadol 500mg tablets")
VMPPVirtual Medicinal Product PackGeneric pack (e.g., "Paracetamol 500mg tablets x 32")
AMPPActual Medicinal Product PackBranded pack (e.g., "Panadol 500mg tablets x 32")

Endpoints

MethodPathDescription
GET/v1/dmd/:codeSingle dm+d concept lookup
POST/v1/dmd/_batchBatch lookup (up to 100)
GET/v1/dmd/shapesList available response shapes

Single Lookup

Look up Paracetamol 500mg tablets (VMP)

Request
Node.js
const response = await fetch(
  "https://api.fhirfly.io/v1/dmd/39732311000001104",
  {
    method: "GET",
    headers: {
    "x-api-key": "YOUR_API_KEY",
  }
  }
);

const data = await response.json();
console.log(data);
Response
JSON
{
  "data": {
    "code": "39732311000001104",
    "code_system": "dm+d",
    "concept_type": "VMP",
    "name": "Paracetamol 500mg tablets",
    "display": "Paracetamol 500mg tablets",
    "status": "valid",
    "fhir_coding": {
      "system": "https://dmd.nhs.uk",
      "code": "39732311000001104",
      "display": "Paracetamol 500mg tablets"
    },
    "vtm_code": "90332006",
    "form": "Tablet",
    "route": "Oral",
    "prescribing_status": "valid"
  },
  "meta": {
    "legal": {
      "license": "OGL-UK-3.0",
      "attribution_required": true,
      "source_name": "NHS dm+d",
      "citation": "dm+d, NHS England / NHSBSA. Crown copyright. Open Government Licence v3.0."
    }
  }
}

Common dm+d Concepts

CodeTypeDescription
90332006VTMParacetamol
39732311000001104VMPParacetamol 500mg tablets
3113111000001107AMPPanadol Original 500mg tablets
1055011000001104VMPPParacetamol 500mg tablets x 32
1254811000001100AMPPPanadol Original 500mg tablets x 16

Batch Lookup

Look up multiple dm+d codes in a single request (up to 100):

Look up multiple dm+d concepts

Request
Node.js
const response = await fetch(
  "https://api.fhirfly.io/v1/dmd/_batch",
  {
    method: "POST",
    headers: {
    "x-api-key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
    body: JSON.stringify({
    "codes": [
      "90332006",
      "39732311000001104",
      "3113111000001107"
    ]
  })
  }
);

const data = await response.json();
console.log(data);
Response
JSON
{
  "count": 3,
  "results": [
    {
      "input": "90332006",
      "code": "90332006",
      "status": "ok",
      "data": {
        "concept_type": "VTM",
        "display": "Paracetamol"
      }
    },
    {
      "input": "39732311000001104",
      "code": "39732311000001104",
      "status": "ok",
      "data": {
        "concept_type": "VMP",
        "display": "Paracetamol 500mg tablets"
      }
    },
    {
      "input": "3113111000001107",
      "code": "3113111000001107",
      "status": "ok",
      "data": {
        "concept_type": "AMP",
        "display": "Panadol Original 500mg tablets"
      }
    }
  ],
  "meta": {
    "legal": {
      "license": "OGL-UK-3.0",
      "attribution_required": true,
      "source_name": "NHS dm+d"
    }
  }
}

Code Format

dm+d codes are long numeric strings following the SNOMED CT identifier format (6-18 digits).

InputValidDescription
39732311000001104YesParacetamol 500mg tablets
90332006YesParacetamol VTM
ABC123NoContains letters

Response Shapes

Control the level of detail in responses with the shape query parameter:

ShapeDescription
compactCode, code_system, concept_type, name, display
standard+ status, fhir_coding, parent links, form, route, ingredients, prescribing_status
full+ legal, ingest metadata, all remaining fields
# Minimal data
GET /v1/dmd/39732311000001104?shape=compact

# Standard data (default)
GET /v1/dmd/39732311000001104?shape=standard

# Full data with provenance
GET /v1/dmd/39732311000001104?shape=full

See Response Shapes for field details.

License Notice

dm+d data is Crown copyright and provided under the Open Government Licence v3.0 (NHS TRUD). The meta.legal field in every response provides the required attribution text.

Required Scopes

  • dmd.read - Single and batch lookups

See Also