Files

94 lines
2.6 KiB
Markdown

---
title: "ChEMBL REST API"
task: ""
lineage_type: import
upstream_source: https://github.com/K-Dense-AI/scientific-agent-skills/blob/9c9bd2e9/skills/database-lookup/references/chembl.md
upstream_sha: 9c9bd2e9
imported_at: 2026-06-26
prompt_class: prompt
upstream_changes: accepted
author: upstream
validated: false
---
# ChEMBL REST API
## Base URL
```
https://www.ebi.ac.uk/chembl/api/data
```
## Auth
No API key required. Fully open and free.
## Key Endpoints
| Endpoint | Description |
|----------|-------------|
| `/molecule/{chembl_id}` | Get molecule by ChEMBL ID |
| `/molecule/search?q={query}` | Free-text molecule search |
| `/target/{chembl_id}` | Get target by ChEMBL ID |
| `/target/search?q={query}` | Free-text target search |
| `/activity?molecule_chembl_id={id}` | Activities for a molecule |
| `/activity?target_chembl_id={id}` | Activities for a target |
| `/mechanism?molecule_chembl_id={id}` | Mechanism of action |
| `/drug_indication?molecule_chembl_id={id}` | Drug indications |
| `/similarity/{smiles}/{threshold}` | Similarity search (threshold 40-100) |
| `/substructure/{smiles}` | Substructure search |
## Common Parameters
- `format=json` — response format (default json)
- `limit` — results per page (default 20, max 1000)
- `offset` — pagination offset
- `order_by` — sort field (prefix `-` for descending)
- `only` — return only specified fields (comma-separated)
### Filtering operators (append to field names)
`__exact`, `__icontains`, `__gt`, `__gte`, `__lt`, `__lte`, `__in`, `__isnull`, `__startswith`, `__range`, `__regex`
## Example Calls
```
# Get molecule by ID
/molecule/CHEMBL25.json
# Search molecules by name
/molecule/search?q=aspirin&format=json
# Activities for a target with potency filter
/activity?target_chembl_id=CHEMBL240&pchembl_value__gte=6&format=json&limit=100
# Similarity search (80% threshold)
/similarity/CC(%3DO)Oc1ccccc1C(%3DO)O/80.json
# Approved drugs only
/molecule?max_phase=4&format=json
# Mechanism of action
/mechanism?molecule_chembl_id=CHEMBL25&format=json
```
## Response Format (molecule)
```json
{
"page_meta": {"limit": 20, "offset": 0, "total_count": 150},
"molecules": [{
"molecule_chembl_id": "CHEMBL25",
"pref_name": "ASPIRIN",
"max_phase": 4,
"molecule_properties": {
"full_mwt": 180.16, "full_molformula": "C9H8O4",
"alogp": 1.31, "hba": 3, "hbd": 1, "psa": 63.60
},
"molecule_structures": {
"canonical_smiles": "CC(=O)Oc1ccccc1C(=O)O",
"standard_inchi_key": "BSYNRYMUTXBXSQ-UHFFFAOYSA-N"
}
}]
}
```
## Rate Limits
No strict limit. Keep under ~10 req/sec. No auth required.