# ChEMBL API
> The ChEMBL database of bioactive molecules as an API — the EBI's manually curated knowledgebase of drug-like compounds and their biological activity, powered by the official ChEMBL data API. Look up a compound by its ChEMBL id for its development phase, chemical structure (SMILES, InChIKey), molecular formula and weight, calculated properties (ALogP, polar surface area, hydrogen-bond donors/acceptors, Rule-of-Five violations, QED drug-likeness) and synonyms; search compounds by name; read a biological target with its organism and UniProt protein components; list a drug's mechanisms of action; list its approved and investigational indications (MeSH and EFO terms with development phase); and pull its measured bioactivities (IC50, Ki, EC50, potency…) with values, units, pChEMBL scores, assays and targets. Ideal for drug-discovery and cheminformatics pipelines, medicinal-chemistry and pharmacology tools, target-identification and SAR research, and life-science apps.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/chembl-api/..."
```

## Pricing
- **Free** (Free) — 540 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 18,500 calls/Mo, 6 req/s
- **Pro** ($22/Mo) — 87,000 calls/Mo, 15 req/s
- **Mega** ($61/Mo) — 335,000 calls/Mo, 40 req/s

## Endpoints

### Compounds

#### `GET /v1/molecule` — A compound by ChEMBL id

**Parameters:**
- `id` (query, required, string) — ChEMBL id, e.g. CHEMBL25 Example: `CHEMBL25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/molecule?id=CHEMBL25"
```

**Response:**
```json
{
    "data": {
        "molecule": {
            "id": "CHEMBL25",
            "mw": "180.16",
            "hba": 3,
            "hbd": 1,
            "psa": "63.60",
            "name": "ASPIRIN",
            "oral": true,
            "type": "Small molecule",
            "alogp": "1.31",
            "smiles": "CC(=O)Oc1ccccc1C(=O)O",
            "formula": "C9H8O4",
            "topical": false,
            "synonyms": [
                "8-HOUR BAYER",
                "Acetosalic Acid",
                "ACETYLSALIC ACID",
                "ACETYL SALICYLATE",
                "ACETYLSALICYLIC ACID",
                "ACETYLSALICYLIC ACID",
                "ACETYLSALICYLIC ACID (WHO-IP)",
                "ACETYLSALICYLICUM ACIDUM",
                "ACIDUM ACETYLSALICYLICUM",
                "ACIDUM ACETYLSALICYLICUM (WHO-IP)"
            ],
            "inchi_key": "BSYNRYMUTXBXSQ-UHFFFAOYSA-N",
            "max_phase": "4.0",
            "withdrawn": false,
            "parenteral": false,
            "qed_weighted": "0.55",
            "aromatic_rings": 1,
            "first_approval": 1950,
            "ro5_violations": 0,
            "rotatable_bonds": 2,
            "indication_class": null
        }
    },
    "meta": {
        "timestamp": "2026-06-01T08:14:01.942Z",
        "request_id": "60194e23-5f13-4cfd-b8ee-5b4e41d065a8"
    },
    "status": "ok",
    "message": "Molecule retrieved",
    "success": true
}
```

#### `GET /v1/search` — Search compounds by name

**Parameters:**
- `query` (query, required, string) — Compound name, e.g. aspirin Example: `aspirin`
- `limit` (query, optional, string) — Max results (1-50)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/search?query=aspirin"
```

**Response:**
```json
{
    "data": {
        "count": 20,
        "query": "aspirin",
        "results": [
            {
                "id": "CHEMBL25",
                "mw": "180.16",
                "name": "ASPIRIN",
                "type": "Small molecule",
                "formula": "C9H8O4",
                "max_phase": "4.0"
            },
            {
                "id": "CHEMBL5314595",
                "mw": "279.34",
                "name": "ASPIRIN TRELAMINE",
                "type": "Small molecule",
                "formula": "C15H21NO4",
                "max_phase": "2.0"
            },
            {
                "id": "CHEMBL5282669",
                "mw": "178.19",
                "name": null,
                "type": null,
                "formula": "C10H10O3",
                "max_phase": null
            },
            {
                "id": "CHEMBL1697753",
                "mw": "326.35",
                "name": "ASPIRIN DL-LYSINE",
                "type": "Small molecule",
                "formula": "C15H22N2O6",
                "max_phase": "3.0"
            },
            {
                "id": "CHEMBL2260549",
                "mw": "326.35",
                "name": "ASPIRIN EUGENOL ESTER",
                "type": "Small molecule",
                "formula": "C19H18O5",
                "max_phase": null
            },
            {
                "id": "CHEMBL5314596",
                "mw": "315.80",
                "name": "ASPIRIN TRELAMINE HYDROCHLORIDE",
    
…(truncated, see openapi.json for full schema)
```

### Targets

#### `GET /v1/target` — A biological target

**Parameters:**
- `id` (query, required, string) — Target ChEMBL id, e.g. CHEMBL204 Example: `CHEMBL204`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/target?id=CHEMBL204"
```

**Response:**
```json
{
    "data": {
        "target": {
            "id": "CHEMBL204",
            "name": "Prothrombin",
            "type": "SINGLE PROTEIN",
            "tax_id": 9606,
            "organism": "Homo sapiens",
            "components": [
                {
                    "type": "PROTEIN",
                    "accession": "P00734",
                    "description": "Prothrombin",
                    "relationship": "SINGLE PROTEIN"
                }
            ],
            "species_group_flag": false
        }
    },
    "meta": {
        "timestamp": "2026-06-01T08:14:03.516Z",
        "request_id": "f6ee982c-81bb-4038-9c42-e8e3fce17792"
    },
    "status": "ok",
    "message": "Target retrieved",
    "success": true
}
```

### Pharmacology

#### `GET /v1/activity` — Measured bioactivities for a compound

**Parameters:**
- `molecule` (query, required, string) — Molecule ChEMBL id Example: `CHEMBL25`
- `limit` (query, optional, string) — Max (1-100)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/activity?molecule=CHEMBL25"
```

**Response:**
```json
{
    "data": {
        "count": 25,
        "total": 4087,
        "molecule": "CHEMBL25",
        "activities": [
            {
                "type": "Log K'",
                "units": null,
                "value": "1.39",
                "relation": "=",
                "pchembl_value": null,
                "assay_chembl_id": "CHEMBL702885",
                "target_organism": "Homo sapiens",
                "target_chembl_id": "CHEMBL3253",
                "assay_description": "Binding constant against human serum albumin (HSA)"
            },
            {
                "type": "Activity",
                "units": "%",
                "value": "100.0",
                "relation": "=",
                "pchembl_value": null,
                "assay_chembl_id": "CHEMBL771355",
                "target_organism": "Rattus norvegicus",
                "target_chembl_id": "CHEMBL376",
                "assay_description": "Antiedema efficacy was measured in male Sprague-Dawley rats relative to aspirin; activity expressed as percent of aspiri"
            },
            {
                "type": "ED25",
                "units": "uM kg-1",
                "value": "402.0",
                "relation": "=",
                "pchembl_value": null,
                "assay_chembl_id": "CHEMBL780106",
                "target_organism": "Rattus norvegicus",
                "target_chembl_id": "CHEMBL376",
                "assay_description": "Effective dose of compound to produce 25% in
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/indications` — A drug's indications

**Parameters:**
- `molecule` (query, required, string) — Molecule ChEMBL id Example: `CHEMBL25`
- `limit` (query, optional, string) — Max (1-200)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/indications?molecule=CHEMBL25"
```

**Response:**
```json
{
    "data": {
        "count": 49,
        "molecule": "CHEMBL25",
        "indications": [
            {
                "mesh_id": "D001281",
                "efo_term": "atrial fibrillation",
                "max_phase": "3.0",
                "mesh_heading": "Atrial Fibrillation"
            },
            {
                "mesh_id": "D004381",
                "efo_term": "duodenal ulcer",
                "max_phase": "2.0",
                "mesh_heading": "Duodenal Ulcer"
            },
            {
                "mesh_id": "D005334",
                "efo_term": "Fever",
                "max_phase": "4.0",
                "mesh_heading": "Fever"
            },
            {
                "mesh_id": "D006973",
                "efo_term": "hypertension",
                "max_phase": "3.0",
                "mesh_heading": "Hypertension"
            },
            {
                "mesh_id": "D058729",
                "efo_term": "peripheral arterial disease",
                "max_phase": "3.0",
                "mesh_heading": "Peripheral Arterial Disease"
            },
            {
                "mesh_id": "D007246",
                "efo_term": "infertility",
                "max_phase": "3.0",
                "mesh_heading": "Infertility"
            },
            {
                "mesh_id": "D020521",
                "efo_term": "stroke",
                "max_phase": "4.0",
                "mesh_heading": "Stroke"
            },
            {
              
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/mechanism` — A drug's mechanisms of action

**Parameters:**
- `molecule` (query, required, string) — Molecule ChEMBL id Example: `CHEMBL25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/mechanism?molecule=CHEMBL25"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "molecule": "CHEMBL25",
        "mechanisms": [
            {
                "comment": null,
                "max_phase": 4,
                "action_type": "INHIBITOR",
                "target_chembl_id": "CHEMBL2094253",
                "direct_interaction": 1,
                "mechanism_of_action": "Cyclooxygenase inhibitor"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:14:04.397Z",
        "request_id": "c5b06413-83e9-4533-8a32-62b19359048f"
    },
    "status": "ok",
    "message": "Mechanisms retrieved",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Usage notes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/chembl-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "The ChEMBL bioactive-molecule database. /v1/molecule?id=CHEMBL25 = a compound (ASPIRIN: development max_phase, structure SMILES & InChIKey, molecular formula & weight, ALogP, PSA, H-bond donors/acceptors, Rule-of-5 violations, QED); /v1/search?query=aspirin = search compounds by name; /v1/target?id=CHEMBL204 = a biological target (protein, organism, UniProt components); /v1/mechanism?molecule=CHEMBL25 = a drug's mechanisms of action (target & action type); /v1/indications?molecule=CHEMBL25 = its approved/investigational indications (MeSH & EFO terms, max phase); /v1/activity?molecule=CHEMBL25 = measured bioactivities (IC50, Ki, potency… with value, units, pChEMBL, assay & target). Ids look like CHEMBL25. Data from EBI ChEMBL. For FDA drug labels see the Drug API; for protein function the UniProt API.",
        "source": "EBI ChEMBL data API (ebi.ac.uk/chembl)",
        "endpoints": [
            "/v1/molecule",
            "/v1/search",
            "/v1/target",
            "/v1/mechanism",
            "/v1/indications",
            "/v1/activity",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T08:14:04.450Z",
        "request_id": "f6bc21d7-4968-4989-b9c4-2143ff2a4d85"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/chembl-api
OpenAPI spec: https://www.oanor.com/api/chembl-api/openapi.json
