ChEMBL Drug API

Approved drug information including applicants, patent numbers, and research codes.

OpenAPI Specification

chembl-drug-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ChEMBL Data REST Activity Drug 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: Drug
  description: Approved drug information including applicants, patent numbers, and research codes.
paths:
  /drug:
    get:
      tags:
      - Drug
      summary: List approved drugs
      description: Retrieve a paginated list of approved drugs with information on applicants, patent numbers, research codes, and regulatory data.
      operationId: listDrugs
      parameters:
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - name: molecule_chembl_id
        in: query
        description: Filter by molecule ChEMBL ID
        schema:
          type: string
      - name: applicants
        in: query
        description: Filter by drug applicant name
        schema:
          type: string
      responses:
        '200':
          description: Paginated list of drugs
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: '#/components/schemas/Meta'
                  drugs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Drug'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /metabolism:
    get:
      tags:
      - Drug
      summary: List metabolism data
      description: Retrieve metabolic pathway data with substrate, product, and enzyme references.
      operationId: listMetabolism
      parameters:
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - name: substrate_molecule_chembl_id
        in: query
        description: Filter by substrate molecule ChEMBL ID
        schema:
          type: string
      responses:
        '200':
          description: Paginated list of metabolism records
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: '#/components/schemas/Meta'
                  metabolisms:
                    type: array
                    items:
                      $ref: '#/components/schemas/Metabolism'
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:
    MoleculeStructures:
      type: object
      description: Structural representations of a molecule
      properties:
        canonical_smiles:
          type: string
          nullable: true
          description: Canonical SMILES representation
        molfile:
          type: string
          nullable: true
          description: MDL/Symyx molfile structure representation
        standard_inchi:
          type: string
          nullable: true
          description: Standard InChI representation
        standard_inchi_key:
          type: string
          nullable: true
          description: Standard InChIKey (27-character hash)
    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
    MoleculeProperties:
      type: object
      description: Calculated physicochemical properties of a molecule
      properties:
        alogp:
          type: number
          nullable: true
          description: Calculated ALogP
        aromatic_rings:
          type: integer
          nullable: true
          description: Number of aromatic rings
        cx_logd:
          type: number
          nullable: true
          description: ChemAxon LogD at pH 7.4
        cx_logp:
          type: number
          nullable: true
          description: ChemAxon LogP
        cx_most_apka:
          type: number
          nullable: true
          description: Most acidic pKa (ChemAxon)
        cx_most_bpka:
          type: number
          nullable: true
          description: Most basic pKa (ChemAxon)
        full_molformula:
          type: string
          nullable: true
          description: Molecular formula including all salt and solvent components
        full_mwt:
          type: number
          nullable: true
          description: Molecular weight of parent plus all salt and solvent components
        hba:
          type: integer
          nullable: true
          description: Number of hydrogen bond acceptors (Lipinski definition)
        hba_lipinski:
          type: integer
          nullable: true
          description: Number of hydrogen bond acceptors (Lipinski HBA definition)
        hbd:
          type: integer
          nullable: true
          description: Number of hydrogen bond donors (Lipinski definition)
        hbd_lipinski:
          type: integer
          nullable: true
          description: Number of hydrogen bond donors (Lipinski HBD definition)
        heavy_atoms:
          type: integer
          nullable: true
          description: Number of heavy (non-hydrogen) atoms
        molecular_species:
          type: string
          nullable: true
          description: Classification of the molecular species (ACID, BASE, NEUTRAL, ZWITTERION)
        mw_freebase:
          type: number
          nullable: true
          description: Molecular weight of the freebase/parent form
        mw_monoisotopic:
          type: number
          nullable: true
          description: Monoisotopic molecular weight
        np_likeness_score:
          type: number
          nullable: true
          description: Natural product-likeness score
        num_lipinski_ro5_violations:
          type: integer
          nullable: true
          description: Number of violations of Lipinski's Rule of Five
        num_ro5_violations:
          type: integer
          nullable: true
          description: Number of Lipinski Rule of Five violations
        psa:
          type: number
          nullable: true
          description: Polar surface area
        qed_weighted:
          type: number
          nullable: true
          description: Quantitative Estimate of Drug-likeness (QED) score
        ro3_pass:
          type: string
          nullable: true
          description: Indicates whether the compound satisfies the Rule of Three (fragment-like)
        rtb:
          type: integer
          nullable: true
          description: Number of rotatable bonds
    Metabolism:
      type: object
      description: Drug metabolism data linking substrate to metabolite via enzyme
      properties:
        met_id:
          type: integer
        drug_chembl_id:
          type: string
          nullable: true
          description: ChEMBL ID of the drug being metabolized
        enzyme_chembl_id:
          type: string
          nullable: true
          description: ChEMBL ID of the metabolizing enzyme
        enzyme_name:
          type: string
          nullable: true
        met_conversion:
          type: string
          nullable: true
          description: Description of the metabolic conversion
        metabolite_chembl_id:
          type: string
          nullable: true
          description: ChEMBL ID of the metabolite
        metabolite_name:
          type: string
          nullable: true
        organism:
          type: string
          nullable: true
        pathway_id:
          type: integer
          nullable: true
        pathway_key:
          type: string
          nullable: true
        refs:
          type: array
          items:
            type: object
        substrate_chembl_id:
          type: string
          nullable: true
          description: ChEMBL ID of the substrate molecule
        substrate_name:
          type: string
          nullable: true
        tax_id:
          type: string
          nullable: true
    Drug:
      type: object
      description: An approved drug with regulatory and patent information
      properties:
        molecule_chembl_id:
          type: string
          description: ChEMBL ID of the drug molecule
        applicants:
          type: string
          nullable: true
          description: Drug applicant/manufacturer name
        atc_classification:
          type: string
          nullable: true
          description: ATC classification code
        availability_type:
          type: integer
          nullable: true
          description: Availability type (0=discontinued, 1=prescription only, 2=over-the-counter)
        biotherapeutic:
          type: object
          nullable: true
        black_box:
          type: integer
          nullable: true
          description: Black box warning flag
        chirality:
          type: integer
          nullable: true
        development_phase:
          type: integer
          nullable: true
        drug_type:
          type: integer
          nullable: true
        first_approval:
          type: integer
          nullable: true
        helm_notation:
          type: string
          nullable: true
        indication_class:
          type: string
          nullable: true
        molecule_properties:
          $ref: '#/components/schemas/MoleculeProperties'
        molecule_structures:
          $ref: '#/components/schemas/MoleculeStructures'
        molecule_synonyms:
          type: array
          items:
            type: object
        natural_product:
          type: integer
          nullable: true
        oral:
          type: boolean
          nullable: true
        parenteral:
          type: boolean
          nullable: true
        patent_expire_date:
          type: string
          nullable: true
          format: date
        pref_name:
          type: string
          nullable: true
        prodrug:
          type: integer
          nullable: true
        research_codes:
          type: array
          items:
            type: string
          nullable: true
        sc_patent:
          type: string
          nullable: true
        synonyms:
          type: array
          items:
            type: string
        topical:
          type: boolean
          nullable: true
        usan_stem:
          type: string
          nullable: true
        usan_year:
          type: integer
          nullable: true
        withdrawn_class:
          type: string
          nullable: true
        withdrawn_country:
          type: string
          nullable: true
        withdrawn_flag:
          type: boolean
          nullable: true
        withdrawn_reason:
          type: string
          nullable: true
        withdrawn_year:
          type: integer
          nullable: true
  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