{
  "openapi": "3.0.1",
  "info": {
    "title": "RDKit Chemistry Toolkit: Molecule Images, Properties & Search",
    "description": "Give molecules as SMILES, InChI or names (caffeine, IUPAC, read offline): get molecular weight, logP, TPSA, Lipinski and other drug-likeness rules, PAINS alerts, 2D images, 3D structures (SDF), fingerprints, similarity and substructure search. Built on RDKit, for chemists and AI agents.",
    "version": "0.1",
    "x-build-id": "Q6vehOilE55JdsP90"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jumblemog~rdkit-chemistry-toolkit/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jumblemog-rdkit-chemistry-toolkit",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/jumblemog~rdkit-chemistry-toolkit/runs": {
      "post": {
        "operationId": "runs-sync-jumblemog-rdkit-chemistry-toolkit",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/jumblemog~rdkit-chemistry-toolkit/run-sync": {
      "post": {
        "operationId": "run-sync-jumblemog-rdkit-chemistry-toolkit",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "molecules": {
            "title": "Molecules",
            "type": "array",
            "description": "One molecule per entry: a SMILES string (CC(=O)Oc1ccccc1C(=O)O), an InChI (InChI=1S/...), a common name (aspirin, caffeine, vitamin C, H2O), a systematic IUPAC name (2-acetyloxybenzoic acid) or a whole Molfile. A SMILES followed by a space and a name (a .smi line) keeps the name. API callers can also pass objects such as {\"smiles\": \"CCO\", \"name\": \"ethanol\"}.",
            "items": {
              "type": "string"
            }
          },
          "fileUrl": {
            "title": "Molecule file link",
            "type": "string",
            "description": "A link to a public SDF, MOL, SMILES (.smi), CSV/TSV or text file, optionally gzipped (up to 50 MB and 100,000 molecules), or a GitHub file. CSV files need a column named smiles, inchi, name or molecule (or set Molecule field). SDF titles and CSV columns are kept with each result. The site's robots.txt is respected."
          },
          "datasetId": {
            "title": "Apify dataset",
            "type": "string",
            "description": "A dataset in your Apify account, such as another Actor's results, whose items hold molecules (up to 100,000). The tool gets read access to this dataset only."
          },
          "moleculeField": {
            "title": "Molecule field",
            "type": "string",
            "description": "The CSV column or dataset field that holds the molecules. Left empty, the first column named smiles, canonical_smiles, molecule, structure, inchi or name is used."
          },
          "properties": {
            "title": "Properties",
            "type": "boolean",
            "description": "Molecular weight, exact mass, logP (Wildman-Crippen), molar refractivity, TPSA, H-bond donors and acceptors, rotatable bonds, rings, aromatic rings, heteroatoms, Fsp3, stereocenters, formal charge, QED drug-likeness, synthetic accessibility score, natural-product likeness and the Murcko scaffold.",
            "default": true
          },
          "druglikeness": {
            "title": "Drug-likeness rules",
            "type": "boolean",
            "description": "Lipinski's rule of five, Veber, Ghose, Egan, Muegge, lead-likeness, the rule of three for fragments, GSK 4/400 and Pfizer 3/75, each with the limits the molecule breaks.",
            "default": true
          },
          "alerts": {
            "title": "Structural alerts",
            "type": "array",
            "description": "Substructure filter sets to check each molecule against. Matches are listed by name. Leave empty to skip.",
            "items": {
              "type": "string",
              "enum": [
                "PAINS",
                "BRENK",
                "NIH",
                "ZINC",
                "CHEMBL"
              ],
              "enumTitles": [
                "PAINS (pan-assay interference compounds)",
                "Brenk (unwanted groups)",
                "NIH (problematic groups)",
                "ZINC (drug-likeness filters)",
                "ChEMBL (Glaxo, Dundee, BMS, MLSMR, Inpharmatica, LINT, SureChEMBL)"
              ]
            },
            "default": [
              "PAINS",
              "BRENK"
            ]
          },
          "standardize": {
            "title": "Standardize molecules",
            "enum": [
              "none",
              "salts",
              "full"
            ],
            "type": "string",
            "description": "Clean up molecules before computing anything (RDKit's MolStandardize): keep the largest organic part, normalize groups, neutralize charges and optionally choose one tautomer. The original SMILES and the changes made are listed.",
            "default": "none"
          },
          "fingerprints": {
            "title": "Fingerprints",
            "type": "boolean",
            "description": "Morgan (ECFP-like) fingerprint and MACCS keys, as lists of the bits that are set. For machine learning and your own similarity searches.",
            "default": false
          },
          "allDescriptors": {
            "title": "All 217 RDKit descriptors",
            "type": "boolean",
            "description": "Every descriptor RDKit computes (BalabanJ, BertzCT, Chi indices, EState, Kappa, PEOE_VSA, SlogP_VSA, fragment counts and more), for QSAR and machine learning.",
            "default": false
          },
          "image": {
            "title": "2D images",
            "type": "boolean",
            "description": "A structure drawing of each molecule, saved in the run's key-value store with a public link (imageUrl).",
            "default": true
          },
          "imageFormat": {
            "title": "Image format",
            "enum": [
              "png",
              "svg"
            ],
            "type": "string",
            "description": "PNG for chat, documents and spreadsheets; SVG to scale without losing sharpness.",
            "default": "png"
          },
          "imageSize": {
            "title": "Image size (pixels)",
            "minimum": 100,
            "maximum": 2000,
            "type": "integer",
            "description": "Width and height of each image.",
            "default": 400
          },
          "transparentBackground": {
            "title": "Transparent background",
            "type": "boolean",
            "description": "Draw on a transparent background instead of white.",
            "default": false
          },
          "blackAndWhite": {
            "title": "Black and white",
            "type": "boolean",
            "description": "Draw every atom in black instead of coloring O, N, S and halogens.",
            "default": false
          },
          "showAtomNumbers": {
            "title": "Show atom numbers",
            "type": "boolean",
            "description": "Label each atom with its number (counting from 1, as in Molfiles).",
            "default": false
          },
          "showStereoLabels": {
            "title": "Show R/S and E/Z labels",
            "type": "boolean",
            "description": "Label stereocenters (R/S) and stereo double bonds (E/Z) in the drawings.",
            "default": false
          },
          "gridImage": {
            "title": "Grid image of all molecules",
            "type": "boolean",
            "description": "Also draw the first 100 molecules side by side in one image, labeled with their names (gridImageUrl in the OUTPUT record).",
            "default": false
          },
          "substructure": {
            "title": "Substructure (SMARTS or SMILES)",
            "type": "string",
            "description": "A pattern to look for in every molecule, such as C(=O)[OH] for carboxylic acids or c1ccccc1 for a benzene ring. Each result says whether it matches and how often, and the matching atoms are highlighted in the images."
          },
          "onlyMatches": {
            "title": "Keep only molecules with the substructure",
            "type": "boolean",
            "description": "Leave molecules without the substructure out of the results. Left-out molecules aren't charged.",
            "default": false
          },
          "similarTo": {
            "title": "Compare with (SMILES or name)",
            "type": "string",
            "description": "A molecule to compare every molecule with. Each result gets its Tanimoto similarity (0 to 1) on Morgan fingerprints, and the OUTPUT record lists the most similar first."
          },
          "minSimilarityPercent": {
            "title": "Minimum similarity (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Leave out molecules less similar than this to the Compare with molecule, for example 70 for a similarity of 0.7 or more. Left-out molecules aren't charged.",
            "default": 0
          },
          "similarityMatrix": {
            "title": "Similarity matrix",
            "type": "boolean",
            "description": "Also compute the Tanimoto similarity between every pair of molecules (the first 1,000), saved as a CSV file (similarityMatrixUrl in the OUTPUT record).",
            "default": false
          },
          "fingerprintRadius": {
            "title": "Morgan fingerprint radius",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "2 is ECFP4-like, 3 is ECFP6-like. Used for similarity and the fingerprints output.",
            "default": 2
          },
          "fingerprintSize": {
            "title": "Morgan fingerprint size (bits)",
            "minimum": 64,
            "maximum": 16384,
            "type": "integer",
            "description": "Number of bits in the Morgan fingerprint.",
            "default": 2048
          },
          "structure3d": {
            "title": "3D structures",
            "type": "boolean",
            "description": "Build 3D coordinates with hydrogens (RDKit ETKDG v3, then MMFF94 or UFF energy minimization) and save them as a file per molecule (structure3dUrl), with the energy. For docking, modeling and viewers. Molecules up to 200 heavy atoms.",
            "default": false
          },
          "structureFormat": {
            "title": "3D file format",
            "enum": [
              "sdf",
              "pdb",
              "xyz"
            ],
            "type": "string",
            "description": "The format of the 3D files.",
            "default": "sdf"
          },
          "conformers": {
            "title": "Conformers per molecule",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many distinct 3D conformers to generate. They are minimized and saved in one file, lowest energy first.",
            "default": 1
          },
          "sdfFile": {
            "title": "Combined SDF file",
            "type": "boolean",
            "description": "Also save all molecules in one SDF file with their main results (weight, logP, TPSA, QED, Lipinski and more) as data fields, ready for ChemDraw, PyMOL, KNIME or DataWarrior (sdfFileUrl in the OUTPUT record).",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}