## Stop

`client.SmallMolecule.Design.Stop(ctx, id) (*SmallMoleculeDesignStopResponse, error)`

**post** `/compute/v1/small-molecule/design/{id}/stop`

Stop an in-progress design run early

### Parameters

- `id string`

### Returns

- `type SmallMoleculeDesignStopResponse struct{…}`

  A small molecule design engine run that generates novel molecules

  - `ID string`

    Unique SmDesignRun identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

    When the input, output, and result data was permanently deleted. Null if data has not been deleted.

  - `Engine BoltzSmDesign`

    Engine used for small molecule design

    - `const BoltzSmDesignBoltzSmDesign BoltzSmDesign = "boltz-sm-design"`

  - `EngineVersion string`

    Engine version used for small molecule design

  - `Error SmallMoleculeDesignStopResponseError`

    - `Code string`

      Machine-readable error code

    - `Message string`

      Human-readable error message

    - `Details any`

      Additional field-level error details keyed by input path, when available.

  - `Input SmallMoleculeDesignStopResponseInput`

    Pipeline input (null if data deleted)

    - `NumMolecules int64`

      Number of molecules to generate. Must be between 10 and 1,000,000.

    - `Target SmallMoleculeDesignStopResponseInputTarget`

      Target protein with binding pocket for small molecule design or screening

      - `Entities []SmallMoleculeDesignStopResponseInputTargetEntity`

        Protein entities defining the target structure. Each entity represents a protein chain.

        - `ChainIDs []string`

          Chain IDs for this entity

        - `Type Protein`

          - `const ProteinProtein Protein = "protein"`

        - `Value string`

          Amino acid sequence (one-letter codes)

        - `Cyclic bool`

          Whether the sequence is cyclic

        - `Modifications []SmallMoleculeDesignStopResponseInputTargetEntityModificationUnion`

          Post-translational modifications. Optional; defaults to an empty list when omitted.

          - `type SmallMoleculeDesignStopResponseInputTargetEntityModificationCcdModificationResponse struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

              CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

          - `type SmallMoleculeDesignStopResponseInputTargetEntityModificationSmilesModificationResponse struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `Bonds []SmallMoleculeDesignStopResponseInputTargetBond`

        Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

        - `Atom1 SmallMoleculeDesignStopResponseInputTargetBondAtom1Union`

          Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `type SmallMoleculeDesignStopResponseInputTargetBondAtom1LigandAtomResponse struct{…}`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type SmallMoleculeDesignStopResponseInputTargetBondAtom1PolymerAtomResponse struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Atom2 SmallMoleculeDesignStopResponseInputTargetBondAtom2Union`

          Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `type SmallMoleculeDesignStopResponseInputTargetBondAtom2LigandAtomResponse struct{…}`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type SmallMoleculeDesignStopResponseInputTargetBondAtom2PolymerAtomResponse struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

      - `Constraints []SmallMoleculeDesignStopResponseInputTargetConstraintUnion`

        Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

        - `type SmallMoleculeDesignStopResponseInputTargetConstraintPocketConstraintResponse struct{…}`

          Constrains the binder to interact with specific pocket residues on the target.

          - `BinderChainID string`

            Chain ID of the binder molecule

          - `ContactResidues map[string, []int64]`

            Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

          - `MaxDistanceAngstrom float64`

            Maximum allowed distance in Angstroms between binder and pocket residues. Typical range: 4-8 A.

          - `Type Pocket`

            - `const PocketPocket Pocket = "pocket"`

          - `Force bool`

            Whether to force the constraint

        - `type SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponse struct{…}`

          Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `MaxDistanceAngstrom float64`

            Maximum distance in Angstroms

          - `Token1 SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponseToken1Union`

            Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Token2 SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponseToken2Union`

            Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeDesignStopResponseInputTargetConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Type Contact`

            - `const ContactContact Contact = "contact"`

          - `Force bool`

            Whether to force the constraint

      - `PocketResidues map[string, []int64]`

        Binding pocket residues, keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the binding pocket on that chain. When provided, these residues guide pocket extraction and add a derived pocket constraint during affinity predictions. That derived constraint remains separate from any explicit pocket constraints in target.constraints. When omitted, the model auto-detects the pocket.

      - `ReferenceLigands []string`

        Reference ligands as SMILES strings that help the model identify the binding pocket. When omitted, a set of drug-like default ligands is used for pocket detection.

    - `ChemicalSpace string`

      Chemical space to constrain generated molecules. Currently only 'enamine_real' (Enamine REAL chemical space) is supported. Additional options may be added in the future.

      - `const SmallMoleculeDesignStopResponseInputChemicalSpaceEnamineReal SmallMoleculeDesignStopResponseInputChemicalSpace = "enamine_real"`

    - `IdempotencyKey string`

      Client-provided key to prevent duplicate submissions on retries

    - `MoleculeFilters SmallMoleculeDesignStopResponseInputMoleculeFilters`

      Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering and custom filters.

      - `BoltzSmartsCatalogFilterLevel SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel`

        Controls the stringency of Boltz's built-in SMARTS structural alert filtering, which removes molecules matching known problematic substructures. 'recommended' (default): applies a curated set of alerts balancing safety and hit rate. 'extra': adds additional alerts beyond the recommended set for stricter filtering. 'aggressive': applies the most comprehensive alert set — may reject viable molecules. 'disabled': turns off Boltz SMARTS filtering entirely; only custom_filters will be applied.

        - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"`

        - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"`

        - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"`

        - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeDesignStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"`

      - `CustomFilters []SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterUnion`

        Custom filters to apply. Molecules must pass all filters (AND logic).

        - `type SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterLipinskiFilterResponse struct{…}`

          Lipinski's Rule of Five filter. Rejects molecules that violate drug-likeness criteria based on molecular weight, LogP, hydrogen bond donors, and hydrogen bond acceptors.

          - `MaxHba float64`

            Maximum number of hydrogen bond acceptors. Lipinski threshold: 10

          - `MaxHbd float64`

            Maximum number of hydrogen bond donors. Lipinski threshold: 5

          - `MaxLogp float64`

            Maximum LogP. Lipinski threshold: 5

          - `MaxMw float64`

            Maximum molecular weight (Da). Lipinski threshold: 500

          - `Type LipinskiFilter`

            - `const LipinskiFilterLipinskiFilter LipinskiFilter = "lipinski_filter"`

          - `AllowSingleViolation bool`

            If true, one rule violation is allowed (classic Rule of Five). Defaults to false (all rules must pass).

        - `type SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponse struct{…}`

          Filter molecules by RDKit molecular descriptors. Each descriptor is constrained to a min/max range. Only descriptors you provide are checked — omitted descriptors are unconstrained.

          - `Type RdkitDescriptorFilter`

            - `const RdkitDescriptorFilterRdkitDescriptorFilter RdkitDescriptorFilter = "rdkit_descriptor_filter"`

          - `FractionCsp3 SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseFractionCsp3`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolLogp SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolLogp`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolWt SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolWt`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumAromaticRings SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumAromaticRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHAcceptors SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHAcceptors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHDonors SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHDonors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHeteroatoms SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHeteroatoms`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRings SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRotatableBonds SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRotatableBonds`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `Tpsa SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseTpsa`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

        - `type SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCustomFilterResponse struct{…}`

          Filter molecules by custom SMARTS patterns. Molecules matching any pattern are rejected.

          - `Patterns []string`

            SMARTS patterns. Molecules matching any pattern are rejected.

          - `Type SmartsCustomFilter`

            - `const SmartsCustomFilterSmartsCustomFilter SmartsCustomFilter = "smarts_custom_filter"`

        - `type SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponse struct{…}`

          Filter molecules using a predefined SMARTS catalog of structural alerts.

          - `Catalog SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog`

            Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs reject known problematic substructures.

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPains SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsA SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_A"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsB SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_B"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsC SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_C"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogBrenk SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "BRENK"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChembl SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblBms SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_BMS"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblDundee SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Dundee"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblGlaxo SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Glaxo"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblInpharmatica SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Inpharmatica"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblLint SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_LINT"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblMlsmr SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_MLSMR"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblSureChEmbl SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_SureChEMBL"`

            - `const SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogNih SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "NIH"`

          - `Type SmartsCatalogFilter`

            - `const SmartsCatalogFilterSmartsCatalogFilter SmartsCatalogFilter = "smarts_catalog_filter"`

        - `type SmallMoleculeDesignStopResponseInputMoleculeFiltersCustomFilterSmilesRegexFilterResponse struct{…}`

          Filter molecules by regex patterns on their SMILES representation.

          - `Patterns []string`

            Regex patterns applied to SMILES strings. Molecules matching any pattern are rejected.

          - `Type SmilesRegexFilter`

            - `const SmilesRegexFilterSmilesRegexFilter SmilesRegexFilter = "smiles_regex_filter"`

    - `WorkspaceID string`

      Target workspace ID (admin keys only; ignored for workspace keys)

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress SmallMoleculeDesignStopResponseProgress`

    - `NumMoleculesGenerated int64`

      Number of molecules generated so far

    - `TotalMoleculesToGenerate int64`

      Total number of molecules requested

    - `LatestResultID string`

      ID of the most recently generated result

  - `StartedAt Time`

  - `Status SmallMoleculeDesignStopResponseStatus`

    - `const SmallMoleculeDesignStopResponseStatusPending SmallMoleculeDesignStopResponseStatus = "pending"`

    - `const SmallMoleculeDesignStopResponseStatusRunning SmallMoleculeDesignStopResponseStatus = "running"`

    - `const SmallMoleculeDesignStopResponseStatusSucceeded SmallMoleculeDesignStopResponseStatus = "succeeded"`

    - `const SmallMoleculeDesignStopResponseStatusFailed SmallMoleculeDesignStopResponseStatus = "failed"`

    - `const SmallMoleculeDesignStopResponseStatusStopped SmallMoleculeDesignStopResponseStatus = "stopped"`

  - `StoppedAt Time`

  - `WorkspaceID string`

    Workspace ID

  - `IdempotencyKey string`

    Client-provided idempotency key

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.SmallMolecule.Design.Stop(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```
