DrugCore
DrugCore provides access to 22K+ harmonized drug and molecule records sourced from ChEMBL, covering drug names, trade names, synonyms, modality, highest clinical stage reached, chemical structure (InChIKey and SMILES), and mechanisms of action (pharmacological targets enriched with HGNC gene metadata). Records are cross-linked to the clinical trials (TrialCore), literature (BiomedCore), and regulatory authorizations (RegulatoryCore, FDA/EMA) associated with each drug, and organized into parent/child hierarchies.
Endpoints
Search — GET /v1/cores/drugcore/records
Keyword search across drug names, trade names, synonyms, descriptions, and mechanism-of-action targets (target gene symbols, synonyms, names, action types, target types, and mechanism descriptions), with optional filters for modality and clinical stage.
curl "https://api.amass.tech/api/v1/cores/drugcore/records?query=pembrolizumab&limit=5" \
-H "Authorization: Bearer amass_YOUR_KEY"Parameters:
| Name | Required | Default | Description |
|---|---|---|---|
query | yes | — | Search text (drug names, trade names, synonyms, descriptions) |
limit | no | 20 | Results to return (1–300) |
include | no | — | Optional fields to return. Repeat for multiple: parent, children, referencesTrialCore, referencesBiomedCore, referencesRegulatoryCore, referencesGeneCore |
drugType | no | — | Filter by drug modality (see Drug Type values) |
maxClinicalStage | no | — | Filter by highest clinical stage reached (see Clinical Stage values) |
Example with filters — approved antibody drugs:
curl "https://api.amass.tech/api/v1/cores/drugcore/records\
?query=checkpoint+inhibitor\
&drugType=ANTIBODY\
&maxClinicalStage=APPROVAL\
&limit=20" \
-H "Authorization: Bearer amass_YOUR_KEY"Response:
{ "data": [ { "amassId": "AMDC_...", "name": "...", "..." }, ... ] }Get by ID — GET /v1/cores/drugcore/records/{amassId}
Fetch a single drug record by its Amass ID.
curl "https://api.amass.tech/api/v1/cores/drugcore/records/AMDC_abc123\
?include=referencesTrialCore" \
-H "Authorization: Bearer amass_YOUR_KEY"Response:
{ "data": { "amassId": "AMDC_...", "name": "...", "..." } }Returns 404 if not found, or 400 if the Amass ID is malformed.
Lookup — POST /v1/cores/drugcore/records/lookup
Convert ChEMBL IDs to Amass IDs in batch. Each item must contain a chemblId.
curl -X POST "https://api.amass.tech/api/v1/cores/drugcore/records/lookup" \
-H "Authorization: Bearer amass_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "chemblId": "CHEMBL1201583" },
{ "chemblId": "CHEMBL9999999" }
]
}'Response:
{
"data": [
{
"input": { "chemblId": "CHEMBL1201583" },
"amassIds": ["AMDC_abc123"]
},
{
"input": { "chemblId": "CHEMBL9999999" },
"error": { "code": "NOT_FOUND", "message": "No matching record found" }
}
]
}A single ChEMBL ID can resolve to more than one Amass ID, so amassIds is always an array. Individual items can fail without failing the whole request — always check each item for an error field.
Record Schema
Default fields (always returned)
| Field | Type | Description |
|---|---|---|
amassId | string | Unique Amass identifier (AMDC_...) |
chemblId | string | null | ChEMBL molecule identifier |
name | string | null | Primary drug name |
description | string | null | A short free-text description of the drug, its clinical stage, and/or its indications |
synonyms | string[] | Alternative names for the drug |
tradeNames | string[] | Brand / trade names |
drugType | string | null | Drug modality (see Drug Type values) |
maxClinicalStage | string | null | Highest clinical stage reached (see Clinical Stage values) |
inchiKey | string | null | InChIKey structure hash |
canonicalSmiles | string | null | Canonical SMILES string |
mechanismsOfAction | object[] | Mechanisms of action — how the drug interacts with each pharmacological target, enriched with HGNC gene metadata. See Mechanism of action |
Optional fields
Request these with the include parameter. Repeat for multiple: ?include=parent&include=children
| Field | Include value | Type | Description |
|---|---|---|---|
parent | parent | string | null | Intra-core link within DrugCore. Amass ID (AMDC_...) of this drug's parent record — see drug relationships example |
children | children | string[] | Intra-core link within DrugCore. Amass IDs (AMDC_...) of this drug's child records — see drug relationships example |
referencesTrialCore | referencesTrialCore | string[] | Cross-core link → TrialCore. Amass IDs of TrialCore records (clinical trials) associated with this drug — see drug evidence example |
referencesBiomedCore | referencesBiomedCore | string[] | Cross-core link → BiomedCore. Amass IDs of BiomedCore records (publications) associated with this drug — see drug evidence example |
referencesRegulatoryCore | referencesRegulatoryCore | string[] | Cross-core link → RegulatoryCore. Amass IDs of RegulatoryCore records (FDA/EMA authorizations) associated with this drug, linking drugs to their regulatory approvals |
referencesGeneCore | referencesGeneCore | string[] | Cross-core link → GeneCore. Amass IDs of GeneCore records (genes) this drug targets, resolved from the mechanism-of-action target Ensembl gene IDs |
Reference field semantics
╔══════════════════════════════════════════ DrugCore (drugs) ══════════════════════════════════════════╗
║ ║
║ ┌──────────┐ ║
║ AMDC parent │ AMDC_Y │ ◄── AMDC_X.parent ║
║ ▲ └──────────┘ ║
║ │ │ ║
║ parent │ children ║
║ │ ▼ ║
║ ┌──────────┐ ┌─► AMDC_c01 ║
║ │ AMDC_X │ ├─► AMDC_c02 ║
║ └──────────┘ └─► AMDC_c03 ║
║ ║
║ AMDC_X.parent = AMDC_Y ← 1 ID ║
║ AMDC_X.children = [AMDC_c01, AMDC_c02, AMDC_c03] ← 3 IDs ║
║ ║
║ ── intra-core: arrows stay within DrugCore ── ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════════════════════════════╝
│ │ │ │
referencesTrialCore referencesBiomedCore referencesRegulatoryCore referencesGeneCore
= [AMTC_t01, = [AMBC_p01, …, = [AMRC_r01, = [AMGC_g01,
AMTC_t02] AMBC_p09] AMRC_r02] AMGC_g02]
│ │ │ │
▼ ▼ ▼ ▼
╔ TrialCore (trials) ╗ ╔═ BiomedCore (pubs) ═╗ ╔ RegulatoryCore (FDA/EMA) ╗ ╔═ GeneCore (genes) ═╗
║ ║ ║ ║ ║ ║ ║ ║
║ AMTC_t01 AMTC_t02 ║ ║ AMBC_p01 … AMBC_p09 ║ ║ AMRC_r01 AMRC_r02 ║ ║ AMGC_g01 AMGC_g02 ║
║ ║ ║ ║ ║ ║ ║ ║
╚════════════════════╝ ╚═════════════════════╝ ╚══════════════════════════╝ ╚════════════════════╝- Intra-core arrows stay inside DrugCore —
parentandchildrentarget IDs start withAMDC_.parentis a single ID (fan-in to the hierarchy);childrenis a list (fan-out). - Cross-core arrows leave DrugCore —
referencesTrialCoretargets start withAMTC_,referencesBiomedCoretargets start withAMBC_,referencesRegulatoryCoretargets start withAMRC_, andreferencesGeneCoretargets start withAMGC_. - Inside TrialCore and BiomedCore, the linked records carry their own reference fields — see TrialCore and BiomedCore.
- RegulatoryCore authorizations carry the reverse link back to DrugCore (
referencesDrugCore), so the drug ↔ authorization relationship can be traversed from either side. referencesGeneCorelinks a drug to the GeneCore records (AMGC_) for the genes it targets, resolved from its mechanism-of-action target Ensembl gene IDs — so a drug's targets can be traversed as full gene records.
Mechanism of action
Each record carries a mechanismsOfAction array describing how the drug acts on its biological targets. Targets are enriched with HGNC gene metadata. Each target resolves to a full GeneCore record via the referencesGeneCore cross-core link.
mechanismsOfAction[] shape
| Field | Type | Description |
|---|---|---|
actionType | string | null | How the drug interacts with its target (e.g. INHIBITOR, ACTIVATOR, ANTAGONIST) |
mechanismOfAction | string | null | Free-text description of the drug's pharmacological action |
targetType | string | null | Classification of the target's biological category (e.g. single protein, protein complex) |
targets | object[] | Biological targets the drug acts on — see below |
targets[] shape
| Field | Type | Description |
|---|---|---|
ensemblId | string | Ensembl gene identifier of the drug target (e.g. ENSG00000095303) |
symbol | string | null | HGNC approved gene symbol (e.g. PTGS1) |
name | string | null | Gene / target name |
synonyms | string[] | HGNC alias and previous gene symbols |
Example:
{
"mechanismsOfAction": [
{
"actionType": "INHIBITOR",
"mechanismOfAction": "Cyclooxygenase inhibitor",
"targetType": "single protein",
"targets": [
{
"ensemblId": "ENSG00000095303",
"symbol": "PTGS1",
"name": "prostaglandin-endoperoxide synthase 1",
"synonyms": ["COX1", "COX-1"]
}
]
}
]
}The keyword query also matches target gene symbols, synonyms, names, action types, target types, and mechanism descriptions.
Filter Values
Drug Type
Drug modality. Use with the drugType search filter or read from the drugType field.
| Value | Description |
|---|---|
SMALL_MOLECULE | Small molecule |
ANTIBODY | Antibody |
PROTEIN | Protein |
OLIGONUCLEOTIDE | Oligonucleotide |
GENE | Gene therapy |
ENZYME | Enzyme |
ANTIBODY_DRUG_CONJUGATE | Antibody–drug conjugate |
VACCINE_COMPONENT | Vaccine component |
CELL | Cell therapy |
OLIGOSACCHARIDE | Oligosaccharide |
VACCINE | Vaccine |
UNKNOWN | Unknown |
Clinical Stage
Highest clinical stage reached. Use with the maxClinicalStage search filter or read from the maxClinicalStage field.
| Value | Description |
|---|---|
PRECLINICAL | Preclinical |
IND | Investigational New Drug application |
EARLY_PHASE1 | Early Phase 1 |
PHASE1 | Phase 1 |
PHASE1/PHASE2 | Phase 1/Phase 2 |
PHASE2 | Phase 2 |
PHASE2/PHASE3 | Phase 2/Phase 3 |
PHASE3 | Phase 3 |
PREAPPROVAL | Pre-approval |
APPROVAL | Approved |
UNKNOWN | Unknown |
See Also
- TrialCore — Clinical trial records
- BiomedCore — Biomedical literature records
- RegulatoryCore — FDA/EMA regulatory authorization records
- GeneCore — Gene records (genes link to the drugs that target them)
- API Workflows — See DrugCore in action: mapping a drug's evidence base, surveying modalities by stage, tracing drug relationships
- Overview — Errors and rate limits
- Quickstart — Getting started with examples