ChEMBL Substructure API

Molecular substructure searching.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chembl-substructure-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

chembl-substructure-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ChEMBL Data REST Activity Substructure 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: Substructure
  description: Molecular substructure searching.
paths:
  /substructure/{smiles}:
    get:
      tags:
      - Substructure
      summary: Substructure search
      description: Search for molecules containing a given SMILES substructure.
      operationId: substructureSearch
      parameters:
      - name: smiles
        in: path
        required: true
        description: SMILES string representing the substructure query (URL-encoded)
        schema:
          type: string
          example: c1ccccc1
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Molecules containing the query substructure
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: '#/components/schemas/Meta'
                  molecules:
                    type: array
                    items:
                      $ref: '#/components/schemas/Molecule'
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)
    Molecule:
      type: object
      description: A chemical molecule in the ChEMBL database
      properties:
        molecule_chembl_id:
          type: string
          description: Unique ChEMBL ID for the molecule
          example: CHEMBL25
        pref_name:
          type: string
          nullable: true
          description: Preferred name for the molecule
          example: ASPIRIN
        max_phase:
          type: number
          nullable: true
          description: Maximum clinical development phase (4 = approved, null = not progressed)
        molecule_type:
          type: string
          nullable: true
          description: Type of molecule (Small molecule, Protein, Antibody, Oligosaccharide, Oligonucleotide, Cell, Unknown)
        structure_type:
          type: string
          nullable: true
          description: Indicates structure type (MOL, SEQ, NONE)
        chirality:
          type: integer
          nullable: true
          description: 'Chirality: -1=not defined, 0=racemic, 1=single stereoisomer, 2=achiral molecule'
        natural_product:
          type: integer
          nullable: true
          description: Natural product flag (1=natural product derived)
        first_approval:
          type: integer
          nullable: true
          description: Year of earliest known approval
        first_in_class:
          type: integer
          nullable: true
          description: First in class flag (1=first compound of its class)
        oral:
          type: boolean
          nullable: true
          description: Oral administration route
        parenteral:
          type: boolean
          nullable: true
          description: Parenteral administration route
        topical:
          type: boolean
          nullable: true
          description: Topical administration route
        black_box_warning:
          type: integer
          nullable: true
          description: Black box warning flag (1=has black box warning)
        therapeutic_flag:
          type: boolean
          nullable: true
          description: Therapeutic application flag
        withdrawn_flag:
          type: boolean
          nullable: true
          description: Withdrawn from market in at least one country
        prodrug:
          type: integer
          nullable: true
          description: Prodrug flag (1=is a prodrug)
        inorganic_flag:
          type: integer
          nullable: true
          description: Inorganic molecule flag
        usan_year:
          type: integer
          nullable: true
          description: Year of USAN/INN name application
        usan_stem:
          type: string
          nullable: true
          description: USAN stem
        usan_stem_definition:
          type: string
          nullable: true
          description: Definition of the USAN stem
        molecule_properties:
          $ref: '#/components/schemas/MoleculeProperties'
        molecule_structures:
          $ref: '#/components/schemas/MoleculeStructures'
        molecule_synonyms:
          type: array
          items:
            type: object
            properties:
              molecule_synonym:
                type: string
              syn_type:
                type: string
              synonyms:
                type: string
          description: List of synonyms and trade names
        atc_classifications:
          type: array
          items:
            type: string
          description: ATC classification codes
    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
externalDocs:
  description: ChEMBL Web Services Documentation
  url: https://chembl.gitbook.io/chembl-interface-documentation/web-services/chembl-data-web-services