RxNorm Drug Normalizer (Name to RxCUI, Class, NDC) avatar

RxNorm Drug Normalizer (Name to RxCUI, Class, NDC)

Pricing

from $7.56 / 1,000 normalized drug concepts

Go to Apify Store
RxNorm Drug Normalizer (Name to RxCUI, Class, NDC)

RxNorm Drug Normalizer (Name to RxCUI, Class, NDC)

Map any drug or brand name to standardized RxNorm concepts: RxCUI, active ingredients, brand names, clinical and branded drug forms, dose forms, strengths, plus NDC codes and ATC drug classes. Export to JSON, CSV or Excel.

Pricing

from $7.56 / 1,000 normalized drug concepts

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

RxNorm Drug Normalizer (Name to RxCUI, Class, NDC)

RxNorm Drug Normalizer (Name to RxCUI, Class, NDC)

Here is one real result, with every field the actor returns:

{
"inputTerm": "Lipitor",
"rxcui": "153165",
"name": "Lipitor",
"tty": "BN",
"synonym": null,
"isBranded": true,
"ingredients": ["atorvastatin"],
"ingredientCount": 1,
"multiIngredients": [],
"preciseIngredients": ["atorvastatin calcium trihydrate", "atorvastatin calcium"],
"brandNames": ["Lipitor"],
"genericForms": [
"atorvastatin 80 MG Oral Tablet",
"atorvastatin 20 MG Oral Tablet",
"atorvastatin 40 MG Oral Tablet",
"atorvastatin 10 MG Oral Tablet"
],
"genericFormCount": 4,
"brandedForms": [
"atorvastatin 80 MG Oral Tablet [Lipitor]",
"atorvastatin 10 MG Oral Tablet [Lipitor]",
"atorvastatin 20 MG Oral Tablet [Lipitor]",
"atorvastatin 40 MG Oral Tablet [Lipitor]"
],
"brandedFormCount": 4,
"doseForms": ["Oral Tablet", "Oral Product", "Pill"],
"strengths": ["80 MG", "20 MG", "40 MG", "10 MG"],
"ndcs": ["00071015823", "58151015877", "58864083430", "63629336601", "00071015523"],
"ndcCount": 30,
"drugClasses": [
{ "className": "Atorvastatin", "classType": "CHEM", "classId": "D000069059" },
{ "className": "Hydroxymethylglutaryl-CoA Reductase Inhibitors", "classType": "MOA", "classId": "N0000000121" },
{ "className": "Decreased Cholesterol Synthesis", "classType": "PE", "classId": "N0000008555" },
{ "className": "HMG CoA reductase inhibitors", "classType": "ATC1-4", "classId": "C10AA" },
{ "className": "HMG-CoA Reductase Inhibitor", "classType": "EPC", "classId": "N0000175589" }
],
"atcClass": "HMG CoA reductase inhibitors",
"atcClassId": "C10AA",
"aiWhatItIs": null,
"aiDrugClassPlain": null,
"aiCommonUses": null,
"aiNotes": null,
"rxNavUrl": "https://mor.nlm.nih.gov/RxNav/search?searchBy=RXCUI&searchTerm=153165",
"source": "RxNorm / RxNav (U.S. National Library of Medicine)",
"observedAt": "2026-08-20T17:27:04.915Z",
"error": null
}

The most complete drug name normalizer available. It maps any drug, brand, or ingredient name to its standardized RxNorm concept and returns every related concept RxNorm exposes (active ingredients, brand names, clinical and branded drug forms, dose forms, and strengths), plus optional National Drug Codes and full drug classification (ATC, EPC, mechanism of action, physiologic effect, and therapeutic class).

Input · Output · Pricing · Examples

Platform Coverage Output Billing

Table of contents

What it does

Give it any messy drug name, brand name, or RxNorm concept ID and it returns a clean, standardized concept you can join on. For each input it resolves the RxNorm concept unique identifier (RxCUI) with exact then approximate matching, then groups every related concept by type:

  • Active ingredients and precise ingredients (salt and hydrate forms)
  • Brand names
  • Clinical drug forms (generic, such as "atorvastatin 10 MG Oral Tablet")
  • Branded drug forms (such as "atorvastatin 10 MG Oral Tablet [Lipitor]")
  • Dose forms (tablet, capsule, oral solution, injection, and more)
  • Strengths parsed from the drug forms
  • A branded flag so you can split generic from brand concepts

Two opt-in add-ons enrich each concept further: National Drug Codes (NDC) drawn from the packaged drug products, and full drug classification (ATC, established pharmacologic class, mechanism of action, physiologic effect, chemical structure, and therapeutic class). A plain-language AI summary is also available.

You can drive it by drug name, by RxCUI, or both in one run. One record is returned per input.

Quickstart

Paste this input to normalize three common drugs with NDC codes and drug classes:

{
"drugNames": ["metformin", "Lipitor", "ibuprofen"],
"includeNdcAndClass": true,
"maxResults": 10
}

Input reference

NameTypeRequiredDescriptionExample
drugNamesarray of stringsone of drugNames or rxcuisDrug, brand, or ingredient names to normalize. Each is resolved to its RxNorm concept.["metformin", "Lipitor"]
rxcuisarray of stringsone of drugNames or rxcuisExact RxNorm concept identifiers (RxCUI) to look up directly.["6809", "153165"]
includeNdcAndClassbooleannoAdd-on. Also fetch NDC codes and drug classes for each concept. Off by default, paid plans only.true
includeAiSummarybooleannoAdd-on. Add an AI plain-language read of each drug (educational, not medical advice). Off by default, paid plans only.true
maxResultsintegernoMaximum concepts to return in one run. Free plans are capped at 10.10

Output reference

NameTypeDescription
inputTermstringThe drug name or RxCUI you supplied
rxcuistringRxNorm concept unique identifier
namestringStandardized RxNorm concept name
ttystringRxNorm term type (IN, BN, SCD, SBD, and so on)
synonymstringConcept synonym, if any
isBrandedbooleanWhether the concept is a brand-level concept
ingredientsarrayActive ingredient names
ingredientCountintegerNumber of active ingredients
multiIngredientsarrayMulti-ingredient combinations the concept appears in
preciseIngredientsarrayPrecise ingredient names (salts and hydrates)
brandNamesarrayBrand names for this concept
genericFormsarrayClinical drug forms (SCD)
genericFormCountintegerNumber of clinical drug forms
brandedFormsarrayBranded drug forms (SBD)
brandedFormCountintegerNumber of branded drug forms
doseFormsarrayDose forms (tablet, capsule, and so on)
strengthsarrayStrengths parsed from the drug forms
ndcsarrayNational Drug Codes (NDC add-on)
ndcCountintegerNumber of NDC codes returned (NDC add-on)
drugClassesarrayDrug classes with className, classType, classId (class add-on)
atcClassstringPrimary ATC class name (class add-on)
atcClassIdstringPrimary ATC class code (class add-on)
aiWhatItIsstringAI plain-language description (AI add-on)
aiDrugClassPlainstringAI drug class in everyday words (AI add-on)
aiCommonUsesstringAI common uses (AI add-on)
aiNotesstringAI neutral note (AI add-on)
rxNavUrlstringRxNav concept page URL
sourcestringData source
observedAtstringWhen this record was captured
errorstringError message, if any

Example output record

{
"inputTerm": "metformin",
"rxcui": "6809",
"name": "metformin",
"tty": "IN",
"isBranded": false,
"ingredients": ["metformin"],
"brandNames": ["Glucophage", "Janumet", "Kombiglyze"],
"doseForms": ["Extended Release Oral Tablet", "Oral Solution", "Oral Tablet"],
"strengths": ["500 MG", "1000 MG", "2.5 MG"],
"ndcs": ["00310612560", "00310614530", "00310613530"],
"ndcCount": 25,
"atcClass": "Biguanides",
"atcClassId": "A10BA",
"drugClasses": [
{ "className": "Biguanides", "classType": "ATC1-4", "classId": "A10BA" }
],
"source": "RxNorm / RxNav (U.S. National Library of Medicine)",
"observedAt": "2026-08-20T17:27:04.915Z",
"error": null
}

Run via API and CLI

Start a run with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~rxnorm-drug-normalizer-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"drugNames":["metformin","Lipitor","ibuprofen"],"includeNdcAndClass":true,"maxResults":10}'

Or with the Apify CLI:

apify call scrapers_lat/rxnorm-drug-normalizer-scraper \
--input '{"drugNames":["metformin","Lipitor"],"includeNdcAndClass":true}'

Fetch results

Read the dataset items from a finished run:

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"

Swap format=json for csv or xlsx to export a spreadsheet.

Billing and limits

  • Pay per result. You are charged for each normalized drug concept the actor returns.
  • Add-ons are opt-in and paid plans only. NDC codes and drug classes are billed per concept only when real data is returned. The AI summary is billed per concept only when a usable summary is produced.
  • Never charged on failure. An unresolved or unknown drug name returns an error row and is not billed.
  • Free Apify plans are capped at 10 concepts per run, with add-ons disabled.
  • The actor respects your run spend limit and stops returning billable results once it is reached.

FAQ and troubleshooting

What is an RxCUI? It is the stable numeric identifier RxNorm assigns to a drug concept. It is the key you use to join drug data across systems.

Can I look up a brand and get the generic? Yes. Input a brand such as "Lipitor" and you get its ingredients (atorvastatin), clinical forms, branded forms, strengths, and classes.

Why is my drug not found? Free-text names are resolved with exact then approximate matching. Very unusual spellings or non-drug terms may not resolve and return an error row (no charge). Try the generic ingredient name or a known RxCUI.

Where do NDC codes come from? They are drawn from the packaged clinical and branded drug products related to your concept, so ingredient-level inputs still return real package codes.

Is the AI summary medical advice? No. It is a short educational, plain-language description only. It never includes dosing or clinical advice.

More scrapers at scrapers.lat

We build clean, complete data scrapers priced per result. Explore the full catalog at scrapers.lat.

This actor is not affiliated with or endorsed by the U.S. National Library of Medicine. It reads public RxNorm and RxNav data and returns it in a structured form.