Solution · FHIR R4 Medication API
FHIR R4 Medication API — drug data as resources.
Add ?format=fhir to a drug fetch and receive a standards-valid FHIR R4 Medication — no mapping layer on your side.
647,075
products
19
countries
50
live sources
GET /v1/drugs/{id}?format=fhir
In code
One request. The record back.
Add ?format=fhir to a drug fetch and the API returns a FHIR R4 Medication resource instead of the native shape — ready to drop into an EHR, a CDS-Hooks service, or any HL7-aware pipeline. No mapping layer on your side.
- Standard R4 Medication. Validates against the base HL7 Medication profile — no proprietary resourceType.
- Correct code/identifier split. Public codesystems in coding[], jurisdiction-internal codes in identifier[], each with its system URI.
- Swiss fields as extensions. Dispensing category and BAG-SL reimbursement carried as typed extensions, not stuffed into core fields.
Append ?format=fhir to any drug fetch and receive a Medication resource with codes and identifiers in their correct FHIR homes.
curl 'https://drug-database.com/v1/drugs/\
3f8a1c2d-1b4e-4c7a-9d2f-0a1b2c3d4e5f?format=fhir' \
-H 'Authorization: Bearer dd_live_…'{
"resourceType": "Medication",
"id": "3f8a1c2d-1b4e-4c7a-9d2f-0a1b2c3d4e5f",
"meta": {
"profile": ["http://hl7.org/fhir/StructureDefinition/Medication"]
},
"status": "active",
"code": {
"text": "Aspirin Cardio 100 mg",
"coding": [
{ "system": "http://www.whocc.no/atc", "code": "B01AC06" },
{ "system": "https://www.gs1.org/gtin", "code": "7680651870019" }
]
},
"identifier": [
{ "system": "https://swissmedic.ch/swissmedic-no", "value": "65187" },
{ "system": "https://www.refdata.ch/pharmacode", "value": "1234567" }
],
"manufacturer": { "display": "Bayer (Schweiz) AG" },
"extension": [
{ "url": "…/swissmedic-dispensing-category", "valueCode": "B" },
{ "url": "…/bag-sl-reimbursed", "valueBoolean": true }
]
}Live data
A real product, as FHIR R4 Medication.
Every market identifier we hold is mapped to its correct FHIR home. Codes with a recognised codesystem (ATC, GTIN, NDC, PZN, CIP13, dm+d AMPP-ID) become code.coding[] entries; Pharmacode and Swissmedic-No become identifier[] entries. Swiss dispensing category and BAG-SL reimbursement ride along as typed extensions.
- 647,075 products from 19 countries’ registers
- Every row carries its source and last-checked date
{ "resourceType": "Medication", "id": "000ad304-7b50-4dbf-97a8-d55b151a7cb5", "meta": { "source": "drug-database:drug/000ad304-7b50-4dbf-97a8-d55b151a7cb5", "profile": [ "http://hl7.org/fhir/StructureDefinition/Medication" ] }, "code": { "coding": [ { "system": "http://www.whocc.no/atc", "code": "C10AA05", "display": "ATORVASTATIN CALCIUM" }, { "system": "http://hl7.org/fhir/sid/ndc", "code": "50228-451-10", "display": "ATORVASTATIN CALCIUM" }, { "system": "http://hl7.org/fhir/sid/ndc", "code": "5022845110", "display": "ATORVASTATIN CALCIUM" }, { "system": "http://hl7.org/fhir/sid/ndc", "code": "5022845190", "display": "ATORVASTATIN CALCIUM" }, { "system": "http://hl7.org/fhir/sid/ndc", "code": "50228-451-90", "display": "ATORVASTATIN CALCIUM" } ], "text": "ATORVASTATIN CALCIUM" }, "status": "active", "identifier": [ { "system": "urn:drug-database:register:us", "value": "US:50228-451_19c6b2b4-fbba-44dd-8668-bec63b285506", "use": "official" } ], "manufacturer": { "display": "ScieGen Pharmaceuticals, Inc." }}Where it comes from
Standards & freshness
- FHIR R4, base HL7 Medication profile — validates with standard tooling.
- code.coding[] covers ATC, GTIN, NDC, PZN, CIP13 and dm+d AMPP-ID, each with its system URI.
- Swiss data (dispensing category, BAG-SL reimbursement) carried as typed extensions.
- The FHIR view is ETag-cached and revalidatable via the changes feed.
- FHIR fetches need the drugs:read scope.
- See the docs for the full coding-system URI table.
Registers behind the resources
- FDA drug shortagesRegister
- DMP FEST (Legemiddelverket)Register
- Swissmedic AIPSRegister
- Health Canada DPDRegister
- FDA Orange BookRegister
- BDPM (ANSM)Register
- LäkemedelsverketRegister
FAQ
Common questions, answered plainly.
Which FHIR version?
How are codes split between coding[] and identifier[]?
What about Swiss-specific fields?
Ready when you are
Start building with the FHIR Medication API. Free key, no card.
The free plan includes 10 lookups a month — enough to judge the data. Pro is $29/month when you build on it.