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)
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);{
"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
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);{
"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
- dm+d Search — Search dm+d medicines and devices
- OPCS-4 API — UK NHS procedure classification codes
- RxNorm API — U.S. drug terminology
- Clinical Data APIs Overview — Overview of all lookup APIs