NLM logo

We welcome your feedback on our customer service form. Please use "UMLS REST API feedback" in your subject line.

Check out the Postman sample collection to help you get started using the UMLS REST API.

API Terms of Service

Crosswalking Vocabularies Using CUIs

URIs | Query Parameters | Sample Output | Example Python Script

URIs with /crosswalk support the following use cases:

A common use case of the CUIs in the UMLS is as a sort of ‘bridge of synonymy’ between code sets. For a given source-asserted code, the crosswalk endpoint will return codes from other sources that have UMLS-asserted synonymy. It is important to note that the synonymy asserted by the UMLS in the MRCONSO.RRF files (and the APIs derived from them) has not been rigorously tested and maintained in actual clinical care. With that disclaimer, users often have questions such as ‘I have a code from vocabulary x, what is the equivalent code from vocabulary y according to UMLS synonymy?’. Although UMLS CUIs can be used as a starting point, results should be carefully reviewed for relevancy in your use case.

The following GET call will crosswalk the Human Phenotype Ontology (HPO) code HP:0001947, ‘Renal tubular acidosis’, to see if there are any SNOMEDCT codes for which the UMLS has asserted synonymy.<your api key>

This call will return all SNOMED codes that share a UMLS CUI with the HPO code HP:0001947, ‘Renal tubular acidosis’.


The base URI is

Sample URI Description Returned JSON Object classType
/crosswalk/current/source/HPO/HP:0001947 Retrieves all codes that share a UMLS CUI with HP:0001947 SourceAtomCluster
/crosswalk/current/source/HPO/HP:0001947?targetSource=SNOMEDCT_US Retrieves all SNOMEDCT_US codes that share a UMLS CUI with HP:0001947 SourceAtomCluster

Note that ‘current’ in the URI can always be used to search against the latest UMLS publication.
You may use any valid UMLS release back to 2008AA in your URI if you would like to search against a particular version of the UMLS.

Query Parameters

Parameter name Required? Y/N Description Valid Values Default value Usage Note
apiKey Y An API key is required for each call to the API. Visit your UTS profile to obtain your API key. n/a n/a n/a
targetSource N Returns codes from the specified UMLS vocabulary Any root source abbreviation in the UMLS. See the “Abbreviation” column for a list of UMLS source vocabulary abbreviations. All UMLS source vocabularies Use a comma between each source abbreviation to specify more than one.
includeObsolete N Determines whether to return obsolete codes. true,false false n/a
pageNumber N Whole number that specifies which page of results to fetch. 1,2,3, etc 1 n/a
pageSize N Whole number that specifies the number of results to include per page. 1,2,3, etc 25 n/a

Sample Output

Sample output for…

	"pageSize": 25,
	"pageNumber": 1,
	"pageCount": 1,
	"result": [
		"classType": "SourceAtomCluster",
		"ui": "1776003",
		"suppressible": false,
		"obsolete": false,
		"rootSource": "SNOMEDCT_US",
		"atomCount": 8,
		"cVMemberCount": 0,
		"attributes": "",
		"atoms": "",
		"descendants": "",
		"ancestors": "",
		"parents": "",
		"children": "",
		"relations": "",
		"definitions": "NONE",
		"concepts": "",
		"defaultPreferredAtom": "",
		"name": "Renal tubular acidosis"