Compound Search

UniChem efficiently produces cross-references between chemical structure identifiers from different databases. The services to access this information programatically can be found on /unichem/api/v1/compounds using a POST method and query information in the payload.
Query payload example

Accepted parameters

  • type: The kind of compound representation for the molecule to search.
  • compound: Compound representation to search. Must be the kind specified in the type parameter. Ignored when type is sourceID.
  • sourceID: Unique identifier from the source database. It will only be consider when the type of search is sourceID.


Kind of compound representation for the molecule to search. A compound can be searched by a given InChI, InChI Key, source compound ID or a Unique Compound ID (UCI). Can be configure using the following strings:
  • uci
  • inchi
  • inchikey
  • sourceID


The machine readable representation for the compound to search, ignored when using type sourceID.


Unique ID on the source database when using type sourceID.

Simple usage example

curl --request POST \
--url \
--header 'Content-Type: application/json' \
--data '{
import requests
url = ""
payload = {
"type": "inchikey",
headers = {"Content-Type": "application/json"}
response = requests.request("POST", url, json=payload, headers=headers)


We have greatly simplify the response payload making easier to parse and read, as well as eliminating redundant information making it lighter.
A list of compounds will be included with the response, a compound will have information about its unique identifier inside UniChEM's database, its InChI representation, standard InChI key and a list of sources where that compound can be found.


Each source record contains the Unique ID in the source database, the short and long name of the source database, the URL to the source database website where the compound information can be found, and the unique ID of the source in UniChEM's database.