ChEMBL Target API
Protein and non-protein targets defined in assays.
Protein and non-protein targets defined in assays.
openapi: 3.0.3
info:
title: ChEMBL Data REST Activity Target API
description: ChEMBL is a manually curated database of bioactive molecules with drug-like properties, maintained by the EMBL-EBI. This REST API provides programmatic access to bioactive molecules, drug targets, bioactivity measurements, approved drugs, assay data, and clinical trial compound information. ChEMBL_37 contains over 2.9 million distinct compounds, 24.5 million activities, and 18,552 targets.
version: ChEMBL_37
contact:
name: ChEMBL Team
email: chembl-help@ebi.ac.uk
url: https://www.ebi.ac.uk/chembl/
license:
name: Creative Commons Attribution-ShareAlike 3.0 Unported
url: https://creativecommons.org/licenses/by-sa/3.0/
termsOfService: https://www.ebi.ac.uk/about/terms-of-use/
x-logo:
url: https://www.ebi.ac.uk/chembl/static/chembl/img/chembl_logo.png
servers:
- url: https://www.ebi.ac.uk/chembl/api/data
description: ChEMBL Production API Server
tags:
- name: Target
description: Protein and non-protein targets defined in assays.
paths:
/target:
get:
tags:
- Target
summary: List targets
description: Retrieve a paginated list of targets. Targets can be single proteins, protein complexes, organisms, cell lines, or other biological entities.
operationId: listTargets
parameters:
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- name: target_chembl_id
in: query
description: Filter by target ChEMBL ID
schema:
type: string
example: CHEMBL301
- name: target_type
in: query
description: Filter by target type (e.g., SINGLE PROTEIN, PROTEIN COMPLEX)
schema:
type: string
example: SINGLE PROTEIN
- name: organism
in: query
description: Filter by organism (e.g., Homo sapiens)
schema:
type: string
example: Homo sapiens
- name: pref_name
in: query
description: Filter by preferred target name
schema:
type: string
responses:
'200':
description: Paginated list of targets
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
targets:
type: array
items:
$ref: '#/components/schemas/Target'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
/target/{target_chembl_id}:
get:
tags:
- Target
summary: Get target by ChEMBL ID
description: Retrieve a single target record by its ChEMBL ID.
operationId: getTarget
parameters:
- name: target_chembl_id
in: path
required: true
description: ChEMBL ID of the target
schema:
type: string
example: CHEMBL301
- $ref: '#/components/parameters/format'
responses:
'200':
description: Target record
content:
application/json:
schema:
$ref: '#/components/schemas/Target'
'404':
$ref: '#/components/responses/NotFound'
/target/search:
get:
tags:
- Target
summary: Search targets
description: Full-text search for targets by name or other text fields.
operationId: searchTargets
parameters:
- name: q
in: query
required: true
description: Search query string
schema:
type: string
example: kinase
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
description: Search results
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
targets:
type: array
items:
$ref: '#/components/schemas/Target'
/go_slim:
get:
tags:
- Target
summary: List GO slim classifications
description: Retrieve gene ontology slim classifications used to annotate targets.
operationId: listGoSlim
parameters:
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
description: Paginated list of GO slim entries
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
go_slims:
type: array
items:
$ref: '#/components/schemas/GoSlim'
/protein_class:
get:
tags:
- Target
summary: List protein classifications
description: Retrieve hierarchical protein family classification information for targets.
operationId: listProteinClasses
parameters:
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
description: Paginated list of protein classifications
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
protein_classifications:
type: array
items:
$ref: '#/components/schemas/ProteinClass'
/tissue:
get:
tags:
- Target
summary: List tissues
description: Retrieve tissue classification information.
operationId: listTissues
parameters:
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- name: pref_name
in: query
description: Filter by tissue preferred name
schema:
type: string
responses:
'200':
description: Paginated list of tissues
content:
application/json:
schema:
type: object
properties:
meta:
$ref: '#/components/schemas/Meta'
tissues:
type: array
items:
$ref: '#/components/schemas/Tissue'
components:
parameters:
offset:
name: offset
in: query
description: Number of records to skip for pagination
schema:
type: integer
default: 0
minimum: 0
format:
name: format
in: query
description: Response format
schema:
type: string
enum:
- json
- xml
- yaml
- jsonp
default: json
limit:
name: limit
in: query
description: Number of records to return per page (default 20, max 1000)
schema:
type: integer
default: 20
maximum: 1000
minimum: 1
schemas:
Error:
type: object
properties:
error_message:
type: string
status:
type: string
Meta:
type: object
description: Pagination metadata for list responses
properties:
limit:
type: integer
description: Number of records returned per page
next:
type: string
nullable: true
description: URL for the next page of results
offset:
type: integer
description: Number of records skipped
previous:
type: string
nullable: true
description: URL for the previous page of results
total_count:
type: integer
description: Total number of records matching the query
Tissue:
type: object
description: Tissue classification used in ChEMBL
properties:
tissue_chembl_id:
type: string
description: ChEMBL ID of the tissue
bto_id:
type: string
nullable: true
description: BRENDA Tissue Ontology identifier
caloha_id:
type: string
nullable: true
efo_id:
type: string
nullable: true
pref_name:
type: string
description: Preferred tissue name
uberon_id:
type: string
nullable: true
description: UBERON ontology identifier
GoSlim:
type: object
description: Gene Ontology slim term for target classification
properties:
go_id:
type: string
description: Gene Ontology term ID
protein_class_desc:
type: string
nullable: true
parent_go_id:
type: string
nullable: true
prot_class_id:
type: integer
Target:
type: object
description: A biological target in ChEMBL
properties:
target_chembl_id:
type: string
description: Unique ChEMBL ID for the target
example: CHEMBL301
pref_name:
type: string
description: Preferred target name
target_type:
type: string
description: Target type (e.g., SINGLE PROTEIN, PROTEIN COMPLEX, ORGANISM, CELL-LINE)
organism:
type: string
nullable: true
description: Source organism of the target
tax_id:
type: integer
nullable: true
description: NCBI taxonomy ID of the target organism
species_group_flag:
type: boolean
nullable: true
description: Indicates target represents a group of species
score:
type: number
nullable: true
description: Relevance score for search results
target_components:
type: array
items:
$ref: '#/components/schemas/TargetComponent'
description: Protein components making up this target
cross_references:
type: array
items:
type: object
properties:
xref_id:
type: string
xref_name:
type: string
xref_src:
type: string
description: Cross-references to external databases (UniProt, Ensembl, etc.)
ProteinClass:
type: object
description: Protein family classification in the hierarchy
properties:
prot_class_id:
type: integer
class_level:
type: integer
description: Hierarchy level (0=root)
l1:
type: string
nullable: true
description: Level 1 classification
l2:
type: string
nullable: true
description: Level 2 classification
l3:
type: string
nullable: true
description: Level 3 classification
l4:
type: string
nullable: true
description: Level 4 classification
l5:
type: string
nullable: true
description: Level 5 classification
l6:
type: string
nullable: true
description: Level 6 classification
l7:
type: string
nullable: true
description: Level 7 classification
l8:
type: string
nullable: true
description: Level 8 classification
parent_id:
type: integer
nullable: true
protein_class_desc:
type: string
description: Full hierarchical description
TargetComponent:
type: object
description: A component (protein sequence) of a target
properties:
accession:
type: string
description: UniProt accession number
component_description:
type: string
nullable: true
component_id:
type: integer
component_type:
type: string
description: Component type (PROTEIN, DNA, RNA)
relationship:
type: string
description: Relationship of this component to the target
target_component_id:
type: integer
responses:
BadRequest:
description: Bad request - invalid query parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
externalDocs:
description: ChEMBL Web Services Documentation
url: https://chembl.gitbook.io/chembl-interface-documentation/web-services/chembl-data-web-services