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

Type Full Name Description
VTM Virtual Therapeutic Moiety Active ingredient (e.g., "Paracetamol")
VMP Virtual Medicinal Product Generic product (e.g., "Paracetamol 500mg tablets")
AMP Actual Medicinal Product Branded product (e.g., "Panadol 500mg tablets")
VMPP Virtual Medicinal Product Pack Generic pack (e.g., "Paracetamol 500mg tablets x 32")
AMPP Actual Medicinal Product Pack Branded pack (e.g., "Panadol 500mg tablets x 32")

Endpoints

Method Path Description
GET /v1/dmd/:code Single dm+d concept lookup
POST /v1/dmd/_batch Batch lookup (up to 100)
GET /v1/dmd/shapes List 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

Code Type Description
90332006 VTM Paracetamol
39732311000001104 VMP Paracetamol 500mg tablets
3113111000001107 AMP Panadol Original 500mg tablets
1055011000001104 VMPP Paracetamol 500mg tablets x 32
1254811000001100 AMPP Panadol 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).

Input Valid Description
39732311000001104 Yes Paracetamol 500mg tablets
90332006 Yes Paracetamol VTM
ABC123 No Contains letters

Response Shapes

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

Shape Description
compact Code, 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