Query ZINC15/ZINC22 virtual compound libraries (1.4B compounds, 750M purchasable). Search lead/fragment/drug-like compounds by MW, logP, reactivity, or SMILES similarity; download 3D sets for docking. For bioactivity use chembl-database-bioactivity; for approved drugs use drugbank-database-access.
SkillScore95Maintained
Automatic
◆Research pack
Last verified 9/3/2026
What it changes
Passed 20 of 21 test cases with the skill, and 11 of 21 without it.
Without skill50%
With skill95%
Checks it passed that the model alone missed
The request targets cartblanche22.docking.org
inchikey is retrieved from the nested tranche_details dictionary
Replaces the endpoint with https://cartblanche22.docking.org endpoints
and 13 more in the full report
10 fixed11 passed either way1 still failing0 broke
Pass-rate lift
+45 pp
Tokens
+198%
Agent turns
0%
Response time
+5%
Model gemini-3.6-flashMeasured 9/3/2026v221 of 22 cases passed with skill · 21 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 10
Prompt
Given a JSON response from `GET /substance/ZINC000000029632.json`, write a Python snippet to extract the molecule's InChIKey, chemical formula, ring count, and heavy atom count.
What was checked, without and with the skill
Checked
Without skill
With skill
inchikey is retrieved from the nested tranche_details dictionary
Missed
Passed
mol_formula and rings are retrieved directly from top-level keys in the response object
Missed
Passed
case-19 · gemini-3.6-flash · 9/3/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md404 linessingle file
ZINC Chemical Library Database (ZINC22 / CartBlanche)
Overview
ZINC (ZINC Is Not Commercial) is a free database of commercially available compounds curated for virtual screening. The current generation, ZINC22, holds billions of make-on-demand and in-stock molecules and is served through the CartBlanche web application at cartblanche22.docking.org. CartBlanche exposes a small JSON API to look up substances by ZINC ID, resolve a SMILES to its ZINC identifier, and inspect supplier/catalog purchasability.
Important — the old ZINC15 REST API no longer works for automated access.zinc15.docking.org (and zinc.docking.org) now sits behind a site-wide CAPTCHA: every request to /substances.json, /tranches/..., /substances/{id}.json, etc. is redirected to a /captcha/ page or returns 403 Forbidden. Any script using the mwt__gte / availability / similarity query parameters against zinc15.docking.org will fail. Use the ZINC22 CartBlanche endpoints documented below instead.
Three things about ZINC22/CartBlanche that change how you use this skill:
There is no server-side property-range query. ZINC22/CartBlanche has no mwt__gte / logp__lte / hbd__lte search. You filter by molecular property by either (a) selecting tranches (a 2D MW x logP grid) for bulk download, or (b) retrieving compounds and filtering locally with RDKit. This skill shows the local-RDKit approach.
SMILES lookup is asynchronous. You POST a SMILES, receive a task id, and poll for the result. Exact-match lookup completes in seconds.
Reliable programmatic search = exact match. The API's broader analog search (dist > 0) is slow and frequently times out on the public server, and the Smallworld similarity search is a website-only flow. Treat exact SMILES → ZINC ID lookup as the dependable primitive; see the "Analog / Similarity Search" note for the (limited) alternatives.
When to Use
Looking up a known ZINC ID to get its SMILES, computed properties, and purchasability/suppliers
Resolving a molecule you have as a SMILES to its ZINC22 identifier(s) to check availability
Checking whether a hit compound is purchasable and from which catalogs before ordering
Assembling a SMILES/ZINC-ID set to feed into a docking campaign
For property-filtered library building, combine SMILES/tranche retrieval here with local RDKit filtering (rdkit-cheminformatics)
For known drug bioactivity data use chembl-database-bioactivity; for approved drug structures use drugbank-database-access
Prerequisites
Python packages: requests, pandas (and rdkit for local property filtering)
Data requirements: a ZINC ID, or a SMILES string
Environment: internet connection; no API key needed; SMILES lookups are async (poll for the result)
Rate limits: be courteous — serialize searches, cache results, and do not poll the task endpoint faster than once every few seconds
pip install requests pandas
# optional, for local property filtering:
pip install rdkit