Legacy public endpoints
Existing-customer reference for the legacy CHEESE API; use API v2 for new integrations.
All examples assume the setup from the overview
(MY_URL, API_KEY, headers). Every request must include the
X-API-Key: your_api_key_here header.
GET /test — Health Check
Verify the API is running and accessible.
response = requests.get(MY_URL + "/test", headers=headers)
# {"message": "Health check successful !!"}GET /available_dbs — List Available Databases
Returns the list of searchable molecular databases.
response = requests.get(MY_URL + "/available_dbs", headers=headers)Available databases: ZINC15, ENAMINE-REAL, MCULE-FULL, MCULE-IN-STOCK,
SYNPLE, ENAMINE-CARBOXYLIC, EXPLORE-ENUMERATED, EXPLORE-DIVERSE,
CHEMRIYA.
GET /random_molecule — Random Molecules
Returns random molecules in SMILES format from available databases.
params = {"n_mols": 5}
response = requests.get(MY_URL + "/random_molecule",
headers=headers, params=params)GET /molsearch_simple — Simple Search
Basic molecular similarity search. Returns a list of SMILES strings and database IDs of similar molecules.
params = {
"search_input": "CC(=O)Oc1ccccc1C(=O)O",
"search_type": "espsim_shape",
"n_neighbors": 5,
"search_quality": "fast",
"db_names": ["ENAMINE-REAL"],
}
response = requests.get(MY_URL + "/molsearch_simple",
params=params, headers=headers)GET /molsearch_array — Search Multiple Molecules
Search for multiple query molecules at once. Returns results keyed by input SMILES.
params = {
"search_input": ["CC1=CN(C)N=C1", "CNC1=CC=CC=C1"],
"search_type": "espsim_shape",
"n_neighbors": 5,
"search_quality": "fast",
"db_names": "ZINC15",
}
response = requests.get(MY_URL + "/molsearch_array",
params=params, headers=headers)GET /batch_search — Batch Search
Search multiple molecules in batch or centroid mode for consensus results.
params = {
"search_input": ["SMILES1", "SMILES2", "SMILES3"],
"search_type": "espsim_shape",
"n_neighbors": 10,
"search_mode": "batch", # or "centroid"
}
response = requests.get(MY_URL + "/batch_search",
params=params, headers=headers)GET /molsearch — Advanced Search (Main Endpoint)
Full-featured molecular search with descriptors, predicted properties, and Morgan Tanimoto similarities.
Parameters
| Parameter | Type | Description |
|---|---|---|
search_input | str | SMILES string of the query molecule |
db_names | List[str] | Databases to search (e.g. ["ZINC15", "ENAMINE-REAL"]) |
search_type | str | morgan, espsim_electrostatic, espsim_shape, active_pairs |
search_quality | str | fast, accurate, very_accurate |
n_neighbors | int | Number of neighbors to retrieve |
descriptors | bool | Whether to include molecular descriptors |
properties | bool | Whether to include predicted ADMET properties |
filter_molecules | bool | Apply molecular filters (e.g. 'No solvents') |
order_molecules | bool | Whether to order results |
filtering | List[str] | Filters: 'PAINS', 'Murcko scaffold hop' (optional) |
ordering | List[str] | Ordering: 'Morgan Tanimoto' (optional) |
params = {
"search_input": "CC(=O)Oc1ccccc1C(=O)O",
"search_type": "espsim_shape",
"n_neighbors": 5,
"search_quality": "fast",
"db_names": ["ZINC15"],
"descriptors": True,
"properties": True,
"filter_molecules": False,
"order_molecules": False,
}
response = requests.get(MY_URL + "/molsearch",
params=params, headers=headers)Response structure
The response JSON contains:
neighbors— List of similar molecules with SMILES, database IDs, embedding distances, propertiesquery_properties— Descriptors and predicted properties of the query moleculesearch_info— Timing details (embedding, search, filter, sorting, total time)
Predicted properties
| Category | Properties |
|---|---|
| Absorption | caco2_wang, lipophilicity, solubility, bioavailability, HIA, Pgp, cLogP |
| Distribution | PPBR, VDss, BBB penetration |
| Metabolism | CYP2C9, CYP2D6, CYP3A4 inhibition |
| Excretion | Hepatocyte clearance, microsome clearance, half-life |
| Toxicity | LD50, AMES mutagenicity, DILI, hERG liability |
| Basics | MW, formal charge, heavy atoms, HBA, HBD, rotatable bonds, rings, TPSA |
GET /molsearch — With Filtering & Ordering
Filter out PAINS, enforce scaffold hops, and sort results by Morgan Tanimoto similarity.
params = {
"search_input": "CC(=O)Oc1ccccc1C(=O)O",
"search_type": "espsim_shape",
"n_neighbors": 10,
"search_quality": "fast",
"db_names": ["ZINC15"],
"descriptors": True, "properties": True,
"filter_molecules": True,
"order_molecules": True,
"filtering": ["PAINS", "Murcko scaffold hop"],
"ordering": ["Morgan Tanimoto"],
}
response = requests.get(MY_URL + "/molsearch",
params=params, headers=headers)Filtering may reduce the number of results. Increase n_neighbors to
compensate.