The functionalities of the SmartGraph API can be categorized into four main categories (see: Fig 1 .). Based on bioactivity data collected from ChEMBL, endpoints falling under the "bioactivities" category, can find the "active" compounds of a protein target or find targets that a compound is "active" on. The names of those endpoints are "/bioactivity_target" and "/bioactivity_compound", respectively. The definition of "active" reflects a relationship between a target and a compound, and it can be considered as an aggregated bioactivity value more potent, than a predefined cutoff. The choice of the cutoff is left to the investigator, and it is controlled via an endpoint argument. Most endpoints were designed to support batch queries. That is, it is possible to submit a list of targets or compounds for which the "active" bioactivity relationships are sought after. The above endpoints are examples of "open-ended" queries, where only one of the interacting entity types is known (either target or compound). However, the SmartGraph API supports "Google Maps"-like queries , where the source and destination are known. In fact, in the case of most of these types of endpoints, multiple sources and destinations can be defined. An example of this is the "/bioactivity_c2t" endpoint which serves to find bioactivity between a set of compounds and protein targets. This feature is particularly useful if one assumes that a bioactivity value is reported in ChEMBL between a pair of a compound and a protein target.