An Application Programming Interface (API) is a set of routines that an application uses to request and carry out lower-level services performed by a computer's operating system. For computers running a graphical user interface, an API manages an application's windows, icons, menus, and dialog boxes.
We invite you to develop computer and mobile applications using National Library of Medicine (NLM) resources. We request that any application that makes use of NLM data include the following statement:
- "This product uses publicly available data from the U.S. National Library of Medicine (NLM), National Institutes of Health, Department of Health and Human Services; NLM is not responsible for the product and does not endorse or recommend this or any other product."
Developers may not use the NLM name and/or logo in conjunction with their applications.
Supported NLM APIs are listed below, along with information about any additional terms and conditions of use.
We encourage comments and recommendations for further API development to NLM customer service.
More data resources are available at the Databases, Resources & APIs page.
|API Documentation||Web Interface||API Description|
|AIDSinfo||AIDSinfo offers access to the latest, federally approved HIV/AIDS medical practice guidelines, information on HIV/AIDS treatment, clinical trials, and other HIV/AIDS-related research information for health care providers, researchers, people affected by HIV/AIDS, and the general public. The AIDSinfo API provides access to the AIDSinfo drug database fact sheets in XML format. The API returns information from both the professional and patient versions of the AIDSinfo drug database fact sheets based on input query strings.|
|Basic Local Alignment Search Tool (BLAST)||API for Basic Local Alignment Search Tool (BLAST) services which find regions of local similarity between sequences. The program compares nucleotide or protein sequences to sequence databases and calculates the statistical significance of matches.|
|ChemSpell||The ChemSpell Web Service API provides chemical name spell checking and chemical name synonym look-up. ChemSpell contains more than 1.3 million chemical names related to organic, inorganic, pharmaceutical, toxicological, and environmental health topics. ChemIDplus is the source for ChemSpell. When a chemical name is entered, ChemSpell returns a list of chemical synonyms if the spelling is correct. If the spelling is incorrect, it returns a list of suggestions for alternate spellings. Software developers can write applications that connect remotely to the ChemSpell Web service. Communication is performed via Simple Object Access Protocol (SOAP), an XML-based mechanism for exchanging typed information.|
|ClinicalTrials.gov||Method for creating links to ClinicalTrials.gov or downloading ClinicalTrials.gov data in XML format. Obtain information including a trial's purpose, who may participate, locations, and phone numbers for more details about clinical trials being conducted throughout the United States and in many countries throughout the world.|
|DailyMed||The DailyMed RESTful API is a web service for accessing current SPL information. It is implemented using HTTP and can be thought of as a collection of resources, specified as URIs.|
|Digital Collections Web Service||Provides access to metadata and full-text OCR of all resources in the Digital Collections repository in XML format. Developers can use the Web service to incorporate NLM historical monographs, films and other resources into their own applications.|
|DIRLINE||DIRLINE (Directory of Information Resources Online) is the National Library of Medicine's online database containing location and descriptive information about a wide variety of information resources including organizations, research resources, projects, and databases concerned with health and biomedicine. DIRLINE API offers a RESTful Web Service API that allows users to search the DIRLINE database with keywords. This service returns search results with brief records and full records in DIRLINE API Response Format. Using this API, software developers can integrate DIRLINE data into their own applications.|
|Entrez Programming Utilities (E-Utilities)||E-Utilities are a set of server-side APIs that provide access to searching, linking and downloading Entrez System data outside of the regular Web query interfaces. These data span a broad spectrum including biomedical literature databases (e.g. PubMed and PMC), sequence analysis, chemicals and bioassays, and others. The eight E-Utilities provide the following mechanisms: database statistics (EInfo), global queries (EGQuery), text searches (ESearch), document summary downloads (ESummary), UID uploads (EPost), data record downloads (EFetch), Entrez links (ELink), and spelling suggestions (Espell).|
|Genetics Home Reference||Method for creating links or downloading Genetics Home Reference data in XML format. This service contains consumer information about genetic conditions, genes, and chromosome related to those conditions.|
|MedlinePlus Connect||MedlinePlus Connect lets electronic health record (EHR) systems use standard clinical vocabularies to bring users health information from MedlinePlus.gov.|
|MedlinePlus Health Topics||The MedlinePlus API provides access to MedlinePlus health topic data in XML format. The service accepts keyword searches as requests and returns links to relevant English-language health topics in ranked order. The output also includes supplemental data such as health topic summaries, related vocabulary, and keyword-in-context snippets.|
|MetaMap||MetaMap is a highly configurable program used to map biomedical text to the UMLS Metathesaurus or, equivalently, to discover Metathesaurus concepts referred to in text. Users can download MetaMap and process their data locally. For the downloaded version of MetaMap, there are two API methods designed to allow users to directly access the locally running MetaMap from within their own applications: MetaMap Java API and the MetaMap UIMA Annotator.|
|NDF-RT||The National Drug File-Reference Terminology (NDF-RT™), developed by the Veterans Health Administration, provides clinical information about medications, including therapeutic intent, mechanism of action, physiologic effect and drug-drug interactions. There are two NDF-RT APIs (SOAP/WSDL and RESTful) available to provide developers with functions for retrieving NDF-RT data from the most current NDF-RT data set.|
|Pillbox beta||Pillbox beta is a solid dosage pharmaceutical "pill" identification and reference system utilizing data from the Food and Drug Administration Structured Product Labels (SPL) and the National Library of Medicine RxNorm with high-resolution images of medications. The API (RESTful Web service) provides access to the identification system, data, and medication images. Medications can be identified by physical characteristics (imprint, size, shape, etc.), as well as drug name (brand or generic), inactive ingredients, drug label author, and DEA schedule and returns XML-formatted data.|
|PubChem Power User Gateway (PUG)||The PubChem Power User Gateway (PUG) provides access to PubChem services via a programmatic interface for retrieving information on the biological activities of small molecules. PUG provides access to these PubChem services: Data Download (substance and compound), Compound Structure Search, BioAssay Data Download and Structure Standardization.|
|RxMix (beta version)||RxMix (beta version) is an interface for building applications that allows users to combine functions of the RxNorm, RxTerms, and NDF-RT APIs.|
|RxNorm||RxNorm provides normalized names for clinical drugs and links its names to many of the drug vocabularies commonly used in pharmacy management and drug interaction software. There are two RxNorm APIs (SOAP/WSDL and RESTful) available to provide developers with functions for retrieving RxNorm data from the most current RxNorm data set.|
|RxTerms||RxTerms is a drug interface terminology derived from RxNorm for prescription writing or medication history recording (e.g. in e-prescribing systems, PHRs). There are two RxTerms APIs (SOAP/WSDL and RESTful) available to provide developers with functions for retrieving RxTerms data from the most current RxTerms data set.|
|Semantic Knowledge Representation (SKR)||The Semantic Knowledge Representation (SKR) project uses UMLS resources in developing effective natural language processing systems that provide semantic interpretation to support innovative information management applications in the biomedical domain. The SKR Web API provides access to the entire suite of SKR tools including MetaMap, Medical Text Indexer (MTI), and SemRep, and allows users to submit jobs to our Scheduler Batch and Interactive facilities from within their own applications. The SKR Web API submits the user’s data file to our Scheduler facilities, the data is processed using the requested SKR tool, and then the results are sent back to the user’s application.|
|TOXNET||TOXNET (TOXicology Data NETwork) is a cluster of databases covering toxicology, hazardous chemicals, environmental health and related areas. TOXNET API offers a RESTful Web Service API that allows users to search TOXNET databases with keywords. Using this API, software developers can integrate TOXNET data into their own applications. The TOXNET databases include chemical databases (HSDB, CCRIS, GENETOX, IRIS, ITER, and LactMed) and bibliographic databases (TOXLINE and DART). For chemical databases, this service accepts keyword searches in a specified database and returns search results in TOXNET API Response Format and full chemical records in HTML format. For bibliographic databases, this service provides keyword searches in a specified bibliographic database and returns search results with bibliographic brief records and bibliographic full records in TOXNET API Response Format. For convenience, a bibliographic full record can be returned in HTML format if requested.|
|Unified Medical Language System (UMLS) Terminology Services API||The UTS API is intended for application developers to perform Web service calls and retrieve UMLS data within their own applications. The UTS API provides the ability to search, retrieve, and filter terms, concepts, attributes, relations, metadata and more from over 160 vocabularies of the UMLS Metathesaurus, as well as the Semantic Network. Paging, sorting and filtering (PSF) capabilities allows users to customize results of Web service calls in many ways: choose to include or exclude specific criteria, sort results by fields, or specify results displayed per page. The documentation provides a suite of Web Services Description Language (WSDL) files, API installation instructions, and sample code.|
|Value Set Authority Center (VSAC) API||The VSAC API offers a REST service to perform Web service calls and retrieve VSAC data within a developer’s local applications. The VSAC API provides the ability to retrieve value set data in XML format according to the Integrating the Healthcare Enterprise (IHE) Sharing Value Sets (SVS) Technical Framework.|
|Voyager||Client/server protocol for fielded search and retrieval of MARC bibliographic records from the NLM integrated library system (ILS). Records may be retrieved in either MARC-8 or UTF-8 character encodings.|