
Chembl Database
Builders doing cheminformatics or drug-discovery research who need agent-guided calls to the public ChEMBL REST API for compounds, targets, and bioactivity.
Overview
ChEMBL Database is an agent skill for the Idea phase that documents how to query the ChEMBL REST API for molecules, targets, assays, and related bioactivity data.
Install
npx skills add https://github.com/google-deepmind/science-skills --skill chembl-databaseWhat is this skill?
- Documents base URL and list, single, batch, and search endpoint patterns
- Seven endpoints support free-text search including molecule, target, and activity
- Similarity and substructure search via SMILES with configurable similarity threshold
- Django-style filter operators table for precise API queries
- Structure image endpoint with engine and dimension parameters
- 7 searchable ChEMBL endpoints support free-text `q=` search
- Similarity search accepts threshold values from 0–100
Adoption & trust: 540 installs on skills.sh; 1.7k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need structured compound and bioactivity data from ChEMBL but do not have the endpoint patterns, search rules, or filter syntax memorized for agent-generated API code.
Who is it for?
Indie builders and researchers wiring cheminformatics features, literature-linked compound lookup, or science agents that must cite ChEMBL IDs.
Skip if: General web app builders with no chemistry domain needs, or teams that require proprietary compound databases instead of public ChEMBL data.
When should I use this skill?
When implementing features that list, search, batch-fetch, or visualize ChEMBL molecules, targets, assays, or activities via `https://www.ebi.ac.uk/chembl/api/data`.
What do I get? / Deliverables
Your agent can construct correct ChEMBL URLs for list, search, similarity, substructure, batch, and image requests against the documented API surface.
- API call patterns and query URLs for ChEMBL data access in agent-generated code
Recommended Skills
Journey fit
ChEMBL queries support early discovery and evidence gathering before you commit to a product or dataset pipeline. The skill is a reference for molecular and assay lookups—canonical Idea/research shelf for scientific exploration.
How it compares
An API integration reference for open bioactivity data—not a local SQLite cheat sheet or a workflow for deploying models.
Common Questions / FAQ
Who is chembl-database for?
Solo builders and small teams building research tools, health-tech prototypes, or agent workflows that need programmatic access to ChEMBL molecules, targets, and assays.
When should I use chembl-database?
Use it during Idea research when exploring chemical space, validating a scientific concept, or prototyping data pipelines that pull compound and bioactivity records from ChEMBL.
Is chembl-database safe to install?
Check the Security Audits panel on this Prism page; the skill describes public read-only API usage, but your agent code should avoid logging secrets and should respect EBI rate and usage policies.
SKILL.md
READMESKILL.md - Chembl Database
# ChEMBL API Endpoints Reference Base URL: `https://www.ebi.ac.uk/chembl/api/data` ## Standard Endpoint Patterns Most endpoints support: - **List**: `GET /<endpoint>.json?limit=N&offset=M` - **Single**: `GET /<endpoint>/<ID>.json` - **Batch**: `GET /<endpoint>/set/<ID1>;<ID2>.json` - **Search**: `GET /<endpoint>/search.json?q=<query>` (only selected endpoints) ## Searchable Endpoints Only these endpoints support free-text search (`?q=`): - `activity` - `assay` - `chembl_id_lookup` - `document` - `molecule` - `protein_classification` - `target` ## Special Endpoints ### Similarity Search `GET /similarity/<SMILES>/<threshold>.json` Returns molecules similar to the given SMILES above the threshold (0-100). ### Substructure Search `GET /substructure/<SMILES>.json` Returns molecules containing the given substructure. ### Image `GET /image/<ChEMBL_ID_or_InChI_Key>` Returns a 2D structure image (SVG). Parameters: - `engine` — rendering toolkit (default: rdkit) - `dimensions` — image size in pixels (max 500, default: 500) - `ignoreCoords` — recompute 2D coordinates ### Status `GET /status.json` Returns API status information. ## Filter Operators ChEMBL supports Django-style filter operators as query parameters: | Operator | Description | Example | |---|---|---| | (none) | Exact match | `molecule_chembl_id=CHEMBL25` | | `__exact` | Exact match | `pref_name__exact=Aspirin` | | `__iexact` | Case-insensitive exact | `pref_name__iexact=aspirin` | | `__contains` | Substring match | `pref_name__contains=aspirin` | | `__icontains` | Case-insensitive substring | `pref_name__icontains=aspirin` | | `__startswith` | Prefix match | `pref_name__startswith=Asp` | | `__endswith` | Suffix match | `pref_name__endswith=rin` | | `__gt` | Greater than | `standard_value__gt=100` | | `__gte` | Greater than or equal | `standard_value__gte=100` | | `__lt` | Less than | `standard_value__lt=100` | | `__lte` | Less than or equal | `standard_value__lte=100` | | `__in` | Value in list | `molecule_type__in=Small molecule,Antibody` | | `__isnull` | Null check | `pchembl_value__isnull=false` | | `__range` | Value in range | `mw_freebase__range=200,500` | | `__flexmatch` | SMILES structure match | `canonical_smiles__flexmatch=<SMILES>` | ## Common ID Formats | Resource | ID Format | Example | |---|---|---| | Molecule | CHEMBLNNN | CHEMBL25 | | Target | CHEMBLNNN | CHEMBL203 | | Assay | CHEMBLNNN | CHEMBL615819 | | Document | CHEMBLNNN | CHEMBL1127557 | | Activity | Numeric | 31863 | | ATC Class | ATC code | N02BA01 | ## Pagination All list endpoints return paginated results. Use `limit` and `offset`: - `?limit=20&offset=0` — first 20 results - `?limit=20&offset=20` — next 20 results The response includes `page_meta` with `total_count`, `limit`, `offset`, `next`, and `previous` links. # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """ChEMBL REST API client CLI. CLI tool covering all ChEMBL web services API endpoints. Writes JSON output to a file specified by --output. Enforces rate limiting between requests and retries on transient errors (HTTP 429, 503) with exponential backoff. """ # /// script # requires-python = ">=3.10" # dependencies = [ # "scienceskillscommon", # ] # [tool.uv.sources] # scienceskillscommon = { path = "../../scienceskillscommon" } # /// from __future__ import annotations import argparse import json import os import sys from typing import Any import urllib.parse from science_skills.scienceski