RxNorm API
Look up RxNorm (RxCUI) information for normalized drug names and relationships.
Overview
RxNorm provides normalized names for clinical drugs and links to many drug vocabularies. FHIRfly provides fast lookups against the NLM RxNorm database.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /v1/rxnorm/:rxcui | Single RxCUI lookup |
| POST | /v1/rxnorm/_batch | Batch RxCUI lookup (up to 100) |
| GET | /v1/rxnorm/shapes | List available response shapes |
Single Lookup
Look up acetohexamide by RxCUI
import { Fhirfly } from "@fhirfly-io/terminology";
const client = new Fhirfly({ apiKey: "YOUR_API_KEY" });
const result = await client.rxnorm.lookup("173");
console.log(result.data);{
"data": {
"brand_names": [],
"ingredients": [],
"is_prescribable": false,
"name": "acetohexamide",
"ndcs": [],
"rxcui": "173",
"semantic_types": [
"Organic Chemical",
"Pharmacologic Substance"
],
"status": "ACTIVE",
"tty": "IN"
},
"meta": {
"legal": {
"attribution_required": false,
"citation": "RxNorm from NLM. Accessed 2026-01-14 via FHIRfly.",
"license": "public_domain",
"source_name": "RxNorm"
}
}
}Term Types (TTY)
Common RxNorm term types:
| TTY | Description |
|---|---|
IN | Ingredient |
SCD | Semantic Clinical Drug |
SBD | Semantic Branded Drug |
GPCK | Generic Pack |
BPCK | Branded Pack |
BN | Brand Name |
Batch Lookup
Look up multiple RxCUIs in a single request (up to 100):
Look up multiple drugs
import { Fhirfly } from "@fhirfly-io/terminology";
const client = new Fhirfly({ apiKey: "YOUR_API_KEY" });
const result = await client.rxnorm.lookupMany(["173","38","44"]);
console.log(result.data.results);{
"count": 3,
"results": [
{
"input": "173",
"rxcui": "173",
"status": "ok",
"data": {
"name": "acetohexamide",
"tty": "IN",
"status": "ACTIVE"
}
},
{
"input": "38",
"rxcui": "38",
"status": "ok",
"data": {
"name": "Parlodel",
"tty": "BN",
"status": "ACTIVE"
}
},
{
"input": "44",
"rxcui": "44",
"status": "ok",
"data": {
"name": "mesna",
"tty": "IN",
"status": "ACTIVE"
}
}
],
"meta": {
"legal": {
"license": "UMLS"
}
}
}Batch with shape=full
When using shape=full on batch requests, the response includes meta.source with provenance information:
POST /v1/rxnorm/_batch?shape=full
{
"count": 3,
"results": [
{
"input": "173",
"rxcui": "173",
"status": "ok",
"data": { "name": "acetohexamide", "tty": "IN", "status": "ACTIVE" }
}
],
"meta": {
"source": {
"name": "RxNorm",
"url": "https://www.nlm.nih.gov/research/umls/rxnorm/",
"version": "monthly",
"fhirfly_updated_at": "2026-03-01T03:00:00Z"
},
"legal": {
"license": "UMLS",
"attribution_required": false
}
}
}
Response Shapes
Control the level of detail in responses with the shape query parameter:
| Shape | Description |
|---|---|
compact | Minimal data for lists and autocomplete |
standard | Core structured data (default) |
full | Complete data with provenance for AI agents |
# Minimal data
GET /v1/rxnorm/173?shape=compact
# Standard data (default)
GET /v1/rxnorm/173?shape=standard
# Full data with provenance
GET /v1/rxnorm/173?shape=full
See Response Shapes for field details.
Drug Class Enrichment
RxNorm concepts include a drug_classes array in standard and full shapes, linking each drug to its RxClass classifications. This provides mechanism of action, physiologic effect, and pharmacologic class information directly on the drug record.
{
"data": {
"rxcui": "161",
"name": "acetaminophen",
"drug_classes": [
{
"class_id": "N0000175722",
"class_name": "Analgesic",
"class_type": "EPC",
"source": "FDASPL"
},
{
"class_id": "N0000000174",
"class_name": "Decreased Pain Perception",
"class_type": "PE",
"source": "MED-RT"
}
]
}
}
See RxClass API for more details on drug classifications.
Contraindications
RxNorm concepts with known contraindication data include a contraindications array in standard and full shapes. This surfaces drug interaction and safety information directly on the drug record.
{
"data": {
"rxcui": "83367",
"name": "warfarin",
"contraindications": [
{
"concept_name": "Hemorrhagic Disorder",
"concept_id": "N0000010554",
"source": "MED-RT",
"relationship": "CI_with"
}
]
}
}
Contraindications are derived from MED-RT relationships and are available for drugs that have documented CI_with or CI_PE mappings.
SNOMED CT Enrichment
RxNorm concepts with SNOMED mappings include a snomed array in standard and full shapes, linking drug concepts to SNOMED CT clinical terminology.
{
"data": {
"rxcui": "161",
"name": "acetaminophen",
"snomed": [
{
"concept_id": "387517004",
"display": "Paracetamol",
"map_type": "equivalent",
"map_source": "umls"
}
]
}
}
See SNOMED CT API for more details.
Required Scopes
rxnorm.read- Single and batch lookups