Files

99 lines
3.2 KiB
Markdown

---
title: "BindingDB REST API"
task: ""
lineage_type: import
upstream_source: https://github.com/K-Dense-AI/scientific-agent-skills/blob/9c9bd2e9/skills/database-lookup/references/bindingdb.md
upstream_sha: 9c9bd2e9
imported_at: 2026-06-26
prompt_class: prompt
upstream_changes: accepted
author: upstream
validated: false
---
# BindingDB REST API
## Base URLs
```
https://bindingdb.org/rest/
https://bindingdb.org/axis2/services/BDBService/
```
## Auth
No API key required. Fully open and free.
## Response Format
Default is XML. Append `&response=application/json` to any endpoint for JSON.
## Key Endpoints
| Endpoint | Description |
|----------|-------------|
| `/rest/getLigandsByUniprot` | Ligands for a single protein target |
| `/rest/getLigandsByUniprots` | Ligands for multiple protein targets |
| `/rest/getLigandsByPDBs` | Ligands by PDB structure IDs |
| `/rest/getTargetByCompound` | Targets for a compound (SMILES similarity) |
## Endpoint Details
### Get ligands for a single target
```
GET https://bindingdb.org/rest/getLigandsByUniprot?uniprot={UNIPROT_ID};{IC50_cutoff_nM}&response=application/json
```
- `uniprot` — UniProt ID followed by `;` and affinity cutoff in nM
- Returns monomerIDs, SMILES, affinity types (IC50, Ki, Kd), and values
- Returns empty string if UniProt ID not found
Example:
```
https://bindingdb.org/rest/getLigandsByUniprot?uniprot=P35355;100&response=application/json
```
### Get ligands for multiple targets
```
GET https://bindingdb.org/rest/getLigandsByUniprots?uniprot={IDs}&cutoff={nM}&response=application/json
```
- `uniprot` — Comma-separated UniProt IDs
- `cutoff` — Affinity cutoff in nM
- Returns empty string if no matching IDs
Example:
```
https://bindingdb.org/rest/getLigandsByUniprots?uniprot=P00176,P00183&cutoff=10000&response=application/json
```
### Get ligands by PDB structure
```
GET https://bindingdb.org/rest/getLigandsByPDBs?pdb={PDBs}&cutoff={nM}&identity={percent}&response=application/json
```
- `pdb` — Comma-separated PDB IDs
- `cutoff` — Affinity cutoff in nM
- `identity` — Sequence identity cutoff (percent, e.g. 92)
Example:
```
https://bindingdb.org/rest/getLigandsByPDBs?pdb=1Q0L,3ANM&cutoff=100&identity=92&response=application/json
```
### Find targets for a compound (similarity search)
```
GET https://bindingdb.org/rest/getTargetByCompound?smiles={SMILES}&cutoff={similarity}&response=application/json
```
- `smiles` — Compound SMILES (must be URL-encoded)
- `cutoff` — Tanimoto similarity cutoff (decimal, e.g. 0.85)
- Returns similar compounds with their protein targets and affinities
Example:
```
https://bindingdb.org/rest/getTargetByCompound?smiles=CCC%5BN%2B%5D%28C%29%28C%29CCn1nncc1COc1cc%28%3DO%29n%28C%29c2ccccc12&cutoff=0.85&response=application/json
```
## Rate Limits
No documented limit. Keep requests to ~1 per second as a courtesy.
## Notes
- The API surface is small (4 endpoints) but focused on binding affinity data
- For compound-name search, resolve to SMILES first via PubChem, then use `getTargetByCompound`
- For bulk data access, use downloadable TSV/SDF files from https://www.bindingdb.org/bind/chemsearch/marvin/Download.jsp
- Contains ~3.2M binding measurements for ~1.4M compounds and ~11.4K targets