Prescribable RxNorm API


Information returned
Concept and atom IDs approximately matching a query
Service domain
HTTP request
GET  /REST/Prescribe/approximateTerm.xml?term=value&maxEntries=value&option=value


Searches for strings in the data set that most closely match the term pararmeter.

This function is useful for strings where an exact or normalized string match (findRxcuiByString) does not find the desired results. For example, consider the following queries:

Search TermNote
ACCUPRIL 20 MG TAB TABLET(contains extra word)
HYDROCHLOROT 50 MG TABLET(unknown abbreviation)
Rantidine 15 ML Syrup Oral(misspelled word)

Results can optionally be limited to Active concepts with the option parameter.

Results include the RxAUI, RxCUI, and, where permissible, the name of the closest atoms.

Each atom's name is returned if its source vocabulary has no restrictions (RXNSAB SRL=0) or the request demonstrates a current UMLS license. Otherwise, the name element is omitted.

To demonstrate a current UMLS license, include a UMLS UTS API key in the HTTP "Authorization" header: "Authorization: Bearer put-your-key-here" (substituting the API key). Consult your tool documentation for instructions for providing an HTTP request header, such as Authorization. For information about how to obtain a UMLS UTS API key, please visit the National Library of Medicine’s UMLS Terminology Services.

Results are returned in order by the quality of the lexical match, best results first (rank=1). The maxEntries parameter gives some control over the number of results, but more or fewer may be returned to avoid splitting a rank.

For more information about the approximate-matching algorithm, see Approximate Matching in the RxNorm API.


Selectable (see parameters):

  • Active: concepts in the current RxNorm data set that have an atom with SAB=RXNORM and SUPPRESS=N

  • Current: concepts in the current RxNorm data set that have an atom with SUPPRESS=N



Notation for results

One of:
Get results in XML
Get results in JSON
termQueryRequiredString, of which to find approximate matches
maxEntriesQueryOptionalCoarse control of number of results

(Range: 1 to 100.)

optionQueryOptionalScope of search
One of:
Find atoms in Current concepts
Find atoms in Active concepts

All query parameters are case-insensitive.

Note that HTTP requires that query parameters be "URL encoded". For full information on URL encoding, please refer to IETF RFC 3986, "Uniform Resource Identifier".

Follow instructions specific to your tools for specifying a request header.

Output structure

Results are available as either XML or JSON.

  • The XML result has the root element rxnormdata. It is described in the XML Schema for the Prescribable RxNorm API; the relevant element structure is summarized below. Elements that would be empty might be left out.

  • The JSON result is an object {...}, analogous to the content of the XML rxnormdata. Fields that might occur multiple times in the XML are expressed as an array. Fields that would be empty might be null or left out. Numbers are expressed as strings.

Both XML and JSON results follow the same outline:

Root element in XML, or anonymous object in JSON
(Always empty)
candidate (array)
RxNorm identifier
RxNorm RXAUI (string identifier) that matches
Match score (higher is better, among a given set of results)
1 for all best matches, 2 for all second-best matches, etc.
RxNorm concept name
Source vocabulary

Example: Terms like "zocor 10 mg"

XML: https://rxnav.nlm.nih.gov/REST/Prescribe/approximateTerm?term=zocor%2010%20mg&maxEntries=4

JSON: https://rxnav.nlm.nih.gov/REST/Prescribe/approximateTerm.json?term=zocor%2010%20mg&maxEntries=4

An XML result is shown below.

            <name>simvastatin 10 MG [Zocor]</name>
            <name>Zocor 10 MG Oral Tablet</name>
            <name>Zocor 10 MG Oral Tablet</name>