search_chembl_molecule
Retrieve molecule details from ChEMBL using drug names, synonyms, or structure notations like SMILES and InChI.
Instructions
Search for a DRUG / COMPOUND / MOLECULE by name or structure in ChEMBL.
✅ Use this tool for drug, compound, or molecule names
(e.g., "sorafenib", "imatinib", "aspirin", "Gleevec").
⚠️ For biological targets (proteins, receptors, enzymes, genes such as
EGFR, BRCA1, TP53), use search_chembl_target instead.
Molecules in ChEMBL are small-molecule drugs, drug candidates, and bioactive compounds — including approved drugs, clinical candidates, and research compounds.
Only the search string and limit are supported. The search string can be
passed as any of: query (canonical), search, term, keyword,
keywords, search_term, or name.
Args: query (str): Search query string referring to a drug or compound. Examples: - Generic or brand drug name (e.g., "Aspirin", "Gleevec", "Paracetamol") - Research compound name - Synonyms or alternative names - SMILES notation (chemical structure string) - InChI or InChI Key limit (int, optional): Maximum number of results to return. Defaults to 20.
Returns: dict: Dictionary containing: - 'total_count' (int): Total number of matching molecules found - 'results' (list): List of molecule dictionaries, each containing: - 'chembl_id' (str): ChEMBL molecule identifier (e.g., "CHEMBL25") - 'name' (str): Preferred molecule name (may be None for some compounds) - 'score' (float): Relevance score for the search query
Example: >>> results = await search_chembl_molecule("aspirin", limit=5) >>> print(f"Found {results['total_count']} molecules") >>> for molecule in results['results']: ... print(f"{molecule['chembl_id']}: {molecule['name']} (score: {molecule['score']})")
Output:
Found 3 molecules
CHEMBL25: Aspirin (score: 23.5)
CHEMBL1456: Acetylsalicylic acid derivative (score: 12.3)Use Cases: - Finding ChEMBL IDs for known drugs or compounds - Discovering molecules with similar names - Searching for bioactive compounds by structure (using SMILES/InChI) - Identifying research compounds and clinical candidates
Note: - Some molecules may not have a preferred name and 'name' field will be None - Higher scores indicate better matches to the query - For structure-based searches, use SMILES or InChI notation
Raises: httpx.HTTPError: If the API request fails
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| limit | No | ||
| search | No | ||
| term | No | ||
| keyword | No | ||
| keywords | No | ||
| search_term | No | ||
| name | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||