Query ChEMBL (2M+ compounds, 19M+ bioactivity measurements, 13K+ targets) via the public REST/JSON API with plain `requests` — no SDK install required. Search compounds, retrieve IC50/Ki/EC50 bioactivities, find target inhibitors, run SAR, access drug mechanism/indication data.
SkillScore100Maintained
Automatic
◆Research pack
Last verified 8/23/2026
What it changes
Passed 23 of 23 test cases with the skill, and 16 of 23 without it.
Without skill70%
With skill100%
Checks it passed that the model alone missed
The code reads mw_freebase from the molecule_properties dictionary
The script paginates results using the next URL provided in page_meta
The query filters out null pChEMBL values using pchembl_value__isnull set to False
and 5 more in the full report
7 fixed16 passed either way0 still failing0 broke
Pass-rate lift
+30 pp
Tokens
+332%
Agent turns
0%
Response time
-27%
Model gemini-3.6-flashMeasured 8/23/2026v123 of 23 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 7
Prompt
Write a Python snippet to query target information for EGFR from ChEMBL using the requests package and return its ChEMBL target ID.
What was checked, without and with the skill
Checked
Without skill
With skill
The search query uses epidermal growth factor receptor for the target preferred name parameter
Missed
Passed
case-03 · gemini-3.6-flash · 8/23/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md587 linessingle file
ChEMBL Database — Bioactivity Queries
Why no SDK? The chembl_webresource_client package is convenient sugar over a public, no-auth REST/JSON API at https://www.ebi.ac.uk/chembl/api/data/. When the SDK is unavailable, every operation can be reproduced with plain requests and URL parameters. This SKILL.md uses the REST path throughout so the code runs in any environment with requests installed. Django-style filter syntax (field__icontains=…, field__lte=…, field__range=a,b) works as URL query parameters.
Overview
ChEMBL is EMBL-EBI's bioactive molecule database: 2M+ compounds, 19M+ bioactivity measurements (IC50, Ki, EC50, Kd, …), 13K+ targets. The REST API at https://www.ebi.ac.uk/chembl/api/data/ returns JSON (append .json) or XML/YAML, requires no authentication, and supports Django-style query filters via URL parameters plus cursor-style pagination via page_meta.next.
When to Use
Finding compounds by name, ChEMBL ID, or physicochemical properties
Querying bioactivity data (IC50, Ki, EC50) for specific targets
Performing similarity or substructure searches using SMILES
Retrieving drug mechanisms of action and clinical indications
Identifying inhibitors, agonists, or bioactive molecules for a target
Analyzing structure-activity relationships (SAR) across compound series
Filtering molecules by Lipinski rule-of-5 or other drug-likeness criteria
For general cheminformatics (SMILES manipulation, fingerprints, descriptors) use rdkit-cheminformatics instead
For an alternative compound database (NIH, broader coverage) use pubchem-compound-search
Prerequisites
Python packages: requests (only requirement). Optional: pandas for tabular analysis.
No API key required: ChEMBL is freely accessible.
Rate limits: No published hard limit. The infrastructure is shared — add time.sleep(0.2-0.5) between requests in batch loops; back off on HTTP 429.