# RxNorm API
> US drug terminology as an API, powered by the U.S. National Library of Medicine's RxNav / RxNorm service. Resolve any drug or medication name to its RxNorm concept identifier (RxCUI); read a concept's properties (preferred name, term type, synonym, UMLS id); find all the related drug products for a name grouped by term type (brand names, ingredients, clinical and branded drugs, dose forms); walk related concepts by term type; list the drug classes a medicine belongs to across ATC, VA, mechanism of action, physiologic effect and chemical structure; and run spelling-tolerant search that returns candidate RxCUIs with match scores for misspelled or partial names. The standardised vocabulary that underpins US electronic health records and e-prescribing. Ideal for EHR and pharmacy systems, medication reconciliation, clinical-decision-support and health apps, and drug-data normalisation pipelines. RxCUIs are numeric.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/rxnorm-api/..."
```

## Pricing
- **Free** (Free) — 560 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 20,500 calls/Mo, 8 req/s
- **Pro** ($21/Mo) — 91,000 calls/Mo, 20 req/s
- **Mega** ($58/Mo) — 352,000 calls/Mo, 50 req/s

## Endpoints

### Concepts

#### `GET /v1/approximate` — Spelling-tolerant drug search

**Parameters:**
- `term` (query, required, string) — Term (may be misspelled), e.g. ibuprfen Example: `ibuprfen`
- `limit` (query, optional, string) — Max candidates (1-50)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/approximate?term=ibuprfen"
```

**Response:**
```json
{
    "data": {
        "term": "ibuprfen",
        "count": 1,
        "candidates": [
            {
                "rank": "1",
                "rxcui": "5640",
                "score": 7.62
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:55.995Z",
        "request_id": "e2191531-d84e-421a-972a-4ec82e5db30b"
    },
    "status": "ok",
    "message": "Candidates retrieved",
    "success": true
}
```

#### `GET /v1/drug` — A concept's properties

**Parameters:**
- `rxcui` (query, required, string) — RxCUI, e.g. 1191 Example: `1191`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/drug?rxcui=1191"
```

**Response:**
```json
{
    "data": {
        "drug": {
            "tty": "IN",
            "name": "aspirin",
            "rxcui": "1191",
            "synonym": null,
            "umlscui": null,
            "language": "ENG",
            "suppress": "N"
        }
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:56.187Z",
        "request_id": "618bad74-f178-48dc-be10-90b02c165b0b"
    },
    "status": "ok",
    "message": "Drug retrieved",
    "success": true
}
```

#### `GET /v1/rxcui` — Resolve a drug name to RxCUI(s)

**Parameters:**
- `name` (query, required, string) — Drug name, e.g. aspirin Example: `aspirin`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/rxcui?name=aspirin"
```

**Response:**
```json
{
    "data": {
        "name": "aspirin",
        "count": 1,
        "rxcuis": [
            "1191"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:56.387Z",
        "request_id": "c02198ac-bd1a-4c63-9546-23972c5a3b80"
    },
    "status": "ok",
    "message": "RxCUI resolved",
    "success": true
}
```

### Products

#### `GET /v1/related` — Related concepts by term type

**Parameters:**
- `rxcui` (query, required, string) — RxCUI, e.g. 1191 Example: `1191`
- `tty` (query, optional, string) — Term types joined by + (e.g. IN+BN)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/related?rxcui=1191"
```

**Response:**
```json
{
    "data": {
        "tty": "IN+BN+SCD+SBD",
        "rxcui": "1191",
        "total": 191,
        "groups": [
            {
                "tty": "BN",
                "count": 32,
                "concepts": [
                    {
                        "tty": "BN",
                        "name": "Pamprin Max Formula",
                        "rxcui": "1052413",
                        "synonym": null,
                        "language": "ENG"
                    },
                    {
                        "tty": "BN",
                        "name": "Stanback Headache Powder Reformulated Jan 2011",
                        "rxcui": "1053324",
                        "synonym": null,
                        "language": "ENG"
                    },
                    {
                        "tty": "BN",
                        "name": "BC Arthritis",
                        "rxcui": "1247393",
                        "synonym": null,
                        "language": "ENG"
                    },
                    {
                        "tty": "BN",
                        "name": "BC Original Formula",
                        "rxcui": "1247398",
                        "synonym": null,
                        "language": "ENG"
                    },
                    {
                        "tty": "BN",
                        "name": "Arthriten Inflammatory Pain",
                        "rxcui": "1303154",
                        "synonym": null,

…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Related drug products for a name

**Parameters:**
- `name` (query, required, string) — Drug name, e.g. ibuprofen Example: `ibuprofen`
- `limit` (query, optional, string) — Max products (1-200)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/search?name=ibuprofen"
```

**Response:**
```json
{
    "data": {
        "name": "ibuprofen",
        "count": 50,
        "total": 79,
        "by_type": {
            "SBD": 32,
            "SCD": 47
        },
        "products": [
            {
                "tty": "SBD",
                "name": "famotidine 26.6 MG / ibuprofen 800 MG Oral Tablet [Duexis]",
                "rxcui": "1100070",
                "synonym": "Duexis (famotidine 26.6 MG / ibuprofen 800 MG) Oral Tablet",
                "language": "ENG"
            },
            {
                "tty": "SBD",
                "name": "ibuprofen 200 MG Oral Tablet [Proprinal]",
                "rxcui": "1300267",
                "synonym": "Proprinal 200 MG Oral Tablet",
                "language": "ENG"
            },
            {
                "tty": "SBD",
                "name": "ibuprofen 200 MG Oral Tablet [Advil]",
                "rxcui": "153008",
                "synonym": "Advil 200 MG Oral Tablet",
                "language": "ENG"
            },
            {
                "tty": "SBD",
                "name": "ibuprofen 200 MG Oral Tablet [Motrin]",
                "rxcui": "201126",
                "synonym": "Motrin 200 MG Oral Tablet",
                "language": "ENG"
            },
            {
                "tty": "SBD",
                "name": "ibuprofen 20 MG/ML Oral Suspension [Advil]",
                "rxcui": "206878",
                "synonym": "Advil 20 MG/ML Oral Suspension",
                "language": "ENG"
            },
…(truncated, see openapi.json for full schema)
```

### Classes

#### `GET /v1/classes` — Drug classes for a medicine

**Parameters:**
- `rxcui` (query, optional, string) — RxCUI, e.g. 1191 Example: `1191`
- `name` (query, optional, string) — Or a drug name

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/classes?rxcui=1191"
```

**Response:**
```json
{
    "data": {
        "count": 58,
        "query": "1191",
        "by_type": {
            "PE": 4,
            "PK": 2,
            "VA": 7,
            "EPC": 2,
            "MOA": 1,
            "CHEM": 1,
            "ATC1-4": 10,
            "DISPOS": 1,
            "STRUCT": 1,
            "DISEASE": 26,
            "SCHEDULE": 3
        },
        "classes": [
            {
                "source": "VA",
                "class_id": "CN103",
                "relation": "has_VAClass_extended",
                "class_name": "NON-OPIOID ANALGESICS",
                "class_type": "VA"
            },
            {
                "source": "ATCPROD",
                "class_id": "N02BA",
                "relation": null,
                "class_name": "Salicylic acid and derivatives",
                "class_type": "ATC1-4"
            },
            {
                "source": "ATCPROD",
                "class_id": "B01AC",
                "relation": null,
                "class_name": "Platelet aggregation inhibitors excl. heparin",
                "class_type": "ATC1-4"
            },
            {
                "source": "VA",
                "class_id": "GA110",
                "relation": "has_VAClass_extended",
                "class_name": "SODIUM BICARBONATE CONTAINING ANTACIDS",
                "class_type": "VA"
            },
            {
                "source": "ATCPROD",
                "class_id": "N02BE",
                "relation": null,
            
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Usage notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/rxnorm-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "US drug terminology (RxNorm). /v1/rxcui?name=aspirin = the RxCUI concept id(s) for a drug name; /v1/drug?rxcui=1191 = a concept's properties (name, term type, synonym, UMLS cui); /v1/search?name=ibuprofen = related drug products grouped by term type (BN=brand, IN=ingredient, SCD=clinical drug, SBD=branded drug, dose forms); /v1/related?rxcui=1191&tty=IN+BN = related concepts by term type; /v1/classes?rxcui=1191 (or name=aspirin) = the drug classes a medicine belongs to (ATC, VA, mechanism of action, physiologic effect, chemical structure); /v1/approximate?term=ibuprfen = spelling-tolerant search returning candidate RxCUIs with match scores. RxCUIs are numeric. Term types: IN ingredient, BN brand name, SCD/SBD clinical/branded drug, DF dose form, PIN precise ingredient. Data from the U.S. National Library of Medicine. For FDA drug labels see the Drug API; for diagnosis codes the ICD-10 API.",
        "source": "NLM RxNav / RxNorm API (rxnav.nlm.nih.gov)",
        "endpoints": [
            "/v1/rxcui",
            "/v1/drug",
            "/v1/search",
            "/v1/related",
            "/v1/classes",
            "/v1/approximate",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:13:57.044Z",
        "request_id": "1b3a243f-2c5e-4f7b-b110-9f51afe85021"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/rxnorm-api
OpenAPI spec: https://www.oanor.com/api/rxnorm-api/openapi.json
