# Library Screen

## Start

`client.SmallMolecule.LibraryScreen.Start(ctx, body) (*SmallMoleculeLibraryScreenStartResponse, error)`

**post** `/compute/v1/small-molecule/library-screen`

Screen a set of small molecule candidates against a protein target

### Parameters

- `body SmallMoleculeLibraryScreenStartParams`

  - `Molecules param.Field[[]SmallMoleculeLibraryScreenStartParamsMolecule]`

    List of small molecules to screen.

    - `Smiles string`

      SMILES string of the molecule

    - `ID string`

      Optional identifier for this molecule

  - `Target param.Field[SmallMoleculeLibraryScreenStartParamsTarget]`

    Target protein with binding pocket for small molecule design or screening

    - `Entities []SmallMoleculeLibraryScreenStartParamsTargetEntity`

      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 []SmallMoleculeLibraryScreenStartParamsTargetEntityModificationUnion`

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

        - `type SmallMoleculeLibraryScreenStartParamsTargetEntityModificationCcdModification 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 SmallMoleculeLibraryScreenStartParamsTargetEntityModificationSmilesModification 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 []SmallMoleculeLibraryScreenStartParamsTargetBond`

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

      - `Atom1 SmallMoleculeLibraryScreenStartParamsTargetBondAtom1Union`

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

        - `type SmallMoleculeLibraryScreenStartParamsTargetBondAtom1LigandAtom 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 SmallMoleculeLibraryScreenStartParamsTargetBondAtom1PolymerAtom 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 SmallMoleculeLibraryScreenStartParamsTargetBondAtom2Union`

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

        - `type SmallMoleculeLibraryScreenStartParamsTargetBondAtom2LigandAtom 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 SmallMoleculeLibraryScreenStartParamsTargetBondAtom2PolymerAtom 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 []SmallMoleculeLibraryScreenStartParamsTargetConstraintUnion`

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

      - `type SmallMoleculeLibraryScreenStartParamsTargetConstraintPocketConstraint 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 SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraint 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 SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken1Union`

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

          - `type SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken1PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken1LigandContactToken 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 SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken2Union`

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

          - `type SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken2PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken2LigandContactToken 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.

  - `IdempotencyKey param.Field[string]`

    Client-provided key to prevent duplicate submissions on retries

  - `MoleculeFilters param.Field[SmallMoleculeLibraryScreenStartParamsMoleculeFilters]`

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

    - `BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel`

      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 SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"`

      - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"`

      - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"`

      - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"`

    - `CustomFilters []SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterUnion`

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

      - `type SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterLipinskiFilter 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 SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilter 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 SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterFractionCsp3`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `MolLogp SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolLogp`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `MolWt SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolWt`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumAromaticRings SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumAromaticRings`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumHAcceptors SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHAcceptors`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumHDonors SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHDonors`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumHeteroatoms SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHeteroatoms`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumRings SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRings`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumRotatableBonds SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRotatableBonds`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `Tpsa SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterTpsa`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

      - `type SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCustomFilter 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 SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilter struct{…}`

        Filter molecules using a predefined SMARTS catalog of structural alerts.

        - `Catalog SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog`

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

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPains SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPainsA SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS_A"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPainsB SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS_B"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPainsC SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS_C"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogBrenk SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "BRENK"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChembl SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblBms SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_BMS"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblDundee SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_Dundee"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblGlaxo SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_Glaxo"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblInpharmatica SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_Inpharmatica"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblLint SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_LINT"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblMlsmr SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_MLSMR"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblSureChEmbl SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_SureChEMBL"`

          - `const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogNih SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "NIH"`

        - `Type SmartsCatalogFilter`

          - `const SmartsCatalogFilterSmartsCatalogFilter SmartsCatalogFilter = "smarts_catalog_filter"`

      - `type SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterSmilesRegexFilter 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 param.Field[string]`

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

### Returns

- `type SmallMoleculeLibraryScreenStartResponse struct{…}`

  A small molecule library screening engine run

  - `ID string`

    Unique SmScreen 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 BoltzSmScreen`

    Engine used for small molecule library screen

    - `const BoltzSmScreenBoltzSmScreen BoltzSmScreen = "boltz-sm-screen"`

  - `EngineVersion string`

    Engine version used for small molecule library screen

  - `Error SmallMoleculeLibraryScreenStartResponseError`

    - `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 SmallMoleculeLibraryScreenStartResponseInput`

    Pipeline input (null if data deleted)

    - `Molecules SmallMoleculeLibraryScreenStartResponseInputMolecules`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target SmallMoleculeLibraryScreenStartResponseInputTarget`

      Target protein with binding pocket for small molecule design or screening

      - `Entities []SmallMoleculeLibraryScreenStartResponseInputTargetEntity`

        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 []SmallMoleculeLibraryScreenStartResponseInputTargetEntityModificationUnion`

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

          - `type SmallMoleculeLibraryScreenStartResponseInputTargetEntityModificationCcdModificationResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetEntityModificationSmilesModificationResponse 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 []SmallMoleculeLibraryScreenStartResponseInputTargetBond`

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

        - `Atom1 SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom1Union`

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

          - `type SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom1LigandAtomResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom1PolymerAtomResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom2Union`

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

          - `type SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom2LigandAtomResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom2PolymerAtomResponse 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 []SmallMoleculeLibraryScreenStartResponseInputTargetConstraintUnion`

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

        - `type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintPocketConstraintResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken1Union`

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

            - `type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken1LigandContactTokenResponse 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 SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken2Union`

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

            - `type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken2LigandContactTokenResponse 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.

    - `MoleculeFilters SmallMoleculeLibraryScreenStartResponseInputMoleculeFilters`

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

      - `BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel`

        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 SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"`

        - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"`

        - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"`

        - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"`

      - `CustomFilters []SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterUnion`

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

        - `type SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterLipinskiFilterResponse 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 SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponse 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 SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseFractionCsp3`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolLogp SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolLogp`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolWt SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolWt`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumAromaticRings SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumAromaticRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHAcceptors SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHAcceptors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHDonors SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHDonors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHeteroatoms SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHeteroatoms`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRings SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRotatableBonds SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRotatableBonds`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `Tpsa SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseTpsa`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

        - `type SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCustomFilterResponse 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 SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponse struct{…}`

          Filter molecules using a predefined SMARTS catalog of structural alerts.

          - `Catalog SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog`

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

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPains SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsA SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_A"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsB SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_B"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsC SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_C"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogBrenk SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "BRENK"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChembl SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblBms SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_BMS"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblDundee SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Dundee"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblGlaxo SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Glaxo"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblInpharmatica SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Inpharmatica"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblLint SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_LINT"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblMlsmr SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_MLSMR"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblSureChEmbl SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_SureChEMBL"`

            - `const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogNih SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "NIH"`

          - `Type SmartsCatalogFilter`

            - `const SmartsCatalogFilterSmartsCatalogFilter SmartsCatalogFilter = "smarts_catalog_filter"`

        - `type SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterSmilesRegexFilterResponse 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"`

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress SmallMoleculeLibraryScreenStartResponseProgress`

    - `NumMoleculesFailed int64`

      Number of accepted molecules that reached terminal failure during screening.

    - `NumMoleculesScreened int64`

      Number of accepted molecules that produced usable screening results.

    - `TotalMoleculesToScreen int64`

      Total number of molecules accepted into screening after server-side validation and filtering.

    - `LatestResultID string`

      ID of the most recently screened result

    - `RejectionSummary SmallMoleculeLibraryScreenStartResponseProgressRejectionSummary`

      - `FilteredCount int64`

        Number of submitted molecules removed by server-side filtering rules.

      - `InvalidCount int64`

        Number of submitted molecules rejected as invalid input.

  - `StartedAt Time`

  - `Status SmallMoleculeLibraryScreenStartResponseStatus`

    - `const SmallMoleculeLibraryScreenStartResponseStatusPending SmallMoleculeLibraryScreenStartResponseStatus = "pending"`

    - `const SmallMoleculeLibraryScreenStartResponseStatusRunning SmallMoleculeLibraryScreenStartResponseStatus = "running"`

    - `const SmallMoleculeLibraryScreenStartResponseStatusSucceeded SmallMoleculeLibraryScreenStartResponseStatus = "succeeded"`

    - `const SmallMoleculeLibraryScreenStartResponseStatusFailed SmallMoleculeLibraryScreenStartResponseStatus = "failed"`

    - `const SmallMoleculeLibraryScreenStartResponseStatusStopped SmallMoleculeLibraryScreenStartResponseStatus = "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.LibraryScreen.Start(context.TODO(), boltzapi.SmallMoleculeLibraryScreenStartParams{
    Molecules: []boltzapi.SmallMoleculeLibraryScreenStartParamsMolecule{boltzapi.SmallMoleculeLibraryScreenStartParamsMolecule{
      Smiles: "smiles",
    }},
    Target: boltzapi.SmallMoleculeLibraryScreenStartParamsTarget{
      Entities: []boltzapi.SmallMoleculeLibraryScreenStartParamsTargetEntity{boltzapi.SmallMoleculeLibraryScreenStartParamsTargetEntity{
        ChainIDs: []string{"string"},
        Value: "value",
      }},
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## List

`client.SmallMolecule.LibraryScreen.List(ctx, query) (*CursorPage[SmallMoleculeLibraryScreenListResponse], error)`

**get** `/compute/v1/small-molecule/library-screen`

List small molecule library screens, optionally filtered by workspace

### Parameters

- `query SmallMoleculeLibraryScreenListParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max items to return. Defaults to 100.

  - `WorkspaceID param.Field[string]`

    Filter by workspace ID. Only used with admin API keys. If not provided, defaults to the workspace associated with the API key, or the default workspace for admin keys.

### Returns

- `type SmallMoleculeLibraryScreenListResponse struct{…}`

  Summary of a small molecule library screening engine run (excludes input)

  - `ID string`

    Unique SmScreenSummary 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 BoltzSmScreen`

    Engine used for small molecule library screen

    - `const BoltzSmScreenBoltzSmScreen BoltzSmScreen = "boltz-sm-screen"`

  - `EngineVersion string`

    Engine version used for small molecule library screen

  - `Error SmallMoleculeLibraryScreenListResponseError`

    - `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.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress SmallMoleculeLibraryScreenListResponseProgress`

    - `NumMoleculesFailed int64`

      Number of accepted molecules that reached terminal failure during screening.

    - `NumMoleculesScreened int64`

      Number of accepted molecules that produced usable screening results.

    - `TotalMoleculesToScreen int64`

      Total number of molecules accepted into screening after server-side validation and filtering.

    - `LatestResultID string`

      ID of the most recently screened result

    - `RejectionSummary SmallMoleculeLibraryScreenListResponseProgressRejectionSummary`

      - `FilteredCount int64`

        Number of submitted molecules removed by server-side filtering rules.

      - `InvalidCount int64`

        Number of submitted molecules rejected as invalid input.

  - `StartedAt Time`

  - `Status SmallMoleculeLibraryScreenListResponseStatus`

    - `const SmallMoleculeLibraryScreenListResponseStatusPending SmallMoleculeLibraryScreenListResponseStatus = "pending"`

    - `const SmallMoleculeLibraryScreenListResponseStatusRunning SmallMoleculeLibraryScreenListResponseStatus = "running"`

    - `const SmallMoleculeLibraryScreenListResponseStatusSucceeded SmallMoleculeLibraryScreenListResponseStatus = "succeeded"`

    - `const SmallMoleculeLibraryScreenListResponseStatusFailed SmallMoleculeLibraryScreenListResponseStatus = "failed"`

    - `const SmallMoleculeLibraryScreenListResponseStatusStopped SmallMoleculeLibraryScreenListResponseStatus = "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"),
  )
  page, err := client.SmallMolecule.LibraryScreen.List(context.TODO(), boltzapi.SmallMoleculeLibraryScreenListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Retrieve

`client.SmallMolecule.LibraryScreen.Get(ctx, id, query) (*SmallMoleculeLibraryScreenGetResponse, error)`

**get** `/compute/v1/small-molecule/library-screen/{id}`

Retrieve a library screen by ID, including progress and status

### Parameters

- `id string`

- `query SmallMoleculeLibraryScreenGetParams`

  - `WorkspaceID param.Field[string]`

    Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `type SmallMoleculeLibraryScreenGetResponse struct{…}`

  A small molecule library screening engine run

  - `ID string`

    Unique SmScreen 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 BoltzSmScreen`

    Engine used for small molecule library screen

    - `const BoltzSmScreenBoltzSmScreen BoltzSmScreen = "boltz-sm-screen"`

  - `EngineVersion string`

    Engine version used for small molecule library screen

  - `Error SmallMoleculeLibraryScreenGetResponseError`

    - `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 SmallMoleculeLibraryScreenGetResponseInput`

    Pipeline input (null if data deleted)

    - `Molecules SmallMoleculeLibraryScreenGetResponseInputMolecules`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target SmallMoleculeLibraryScreenGetResponseInputTarget`

      Target protein with binding pocket for small molecule design or screening

      - `Entities []SmallMoleculeLibraryScreenGetResponseInputTargetEntity`

        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 []SmallMoleculeLibraryScreenGetResponseInputTargetEntityModificationUnion`

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

          - `type SmallMoleculeLibraryScreenGetResponseInputTargetEntityModificationCcdModificationResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetEntityModificationSmilesModificationResponse 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 []SmallMoleculeLibraryScreenGetResponseInputTargetBond`

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

        - `Atom1 SmallMoleculeLibraryScreenGetResponseInputTargetBondAtom1Union`

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

          - `type SmallMoleculeLibraryScreenGetResponseInputTargetBondAtom1LigandAtomResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetBondAtom1PolymerAtomResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetBondAtom2Union`

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

          - `type SmallMoleculeLibraryScreenGetResponseInputTargetBondAtom2LigandAtomResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetBondAtom2PolymerAtomResponse 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 []SmallMoleculeLibraryScreenGetResponseInputTargetConstraintUnion`

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

        - `type SmallMoleculeLibraryScreenGetResponseInputTargetConstraintPocketConstraintResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponseToken1Union`

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

            - `type SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponseToken1LigandContactTokenResponse 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 SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponseToken2Union`

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

            - `type SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeLibraryScreenGetResponseInputTargetConstraintContactConstraintResponseToken2LigandContactTokenResponse 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.

    - `MoleculeFilters SmallMoleculeLibraryScreenGetResponseInputMoleculeFilters`

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

      - `BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel`

        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 SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"`

        - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"`

        - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"`

        - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"`

      - `CustomFilters []SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterUnion`

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

        - `type SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterLipinskiFilterResponse 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 SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponse 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 SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseFractionCsp3`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolLogp SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolLogp`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolWt SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolWt`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumAromaticRings SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumAromaticRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHAcceptors SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHAcceptors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHDonors SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHDonors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHeteroatoms SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHeteroatoms`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRings SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRotatableBonds SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRotatableBonds`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `Tpsa SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseTpsa`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

        - `type SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCustomFilterResponse 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 SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponse struct{…}`

          Filter molecules using a predefined SMARTS catalog of structural alerts.

          - `Catalog SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog`

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

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPains SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsA SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_A"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsB SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_B"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsC SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_C"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogBrenk SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "BRENK"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChembl SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblBms SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_BMS"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblDundee SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Dundee"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblGlaxo SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Glaxo"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblInpharmatica SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Inpharmatica"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblLint SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_LINT"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblMlsmr SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_MLSMR"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblSureChEmbl SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_SureChEMBL"`

            - `const SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogNih SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "NIH"`

          - `Type SmartsCatalogFilter`

            - `const SmartsCatalogFilterSmartsCatalogFilter SmartsCatalogFilter = "smarts_catalog_filter"`

        - `type SmallMoleculeLibraryScreenGetResponseInputMoleculeFiltersCustomFilterSmilesRegexFilterResponse 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"`

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress SmallMoleculeLibraryScreenGetResponseProgress`

    - `NumMoleculesFailed int64`

      Number of accepted molecules that reached terminal failure during screening.

    - `NumMoleculesScreened int64`

      Number of accepted molecules that produced usable screening results.

    - `TotalMoleculesToScreen int64`

      Total number of molecules accepted into screening after server-side validation and filtering.

    - `LatestResultID string`

      ID of the most recently screened result

    - `RejectionSummary SmallMoleculeLibraryScreenGetResponseProgressRejectionSummary`

      - `FilteredCount int64`

        Number of submitted molecules removed by server-side filtering rules.

      - `InvalidCount int64`

        Number of submitted molecules rejected as invalid input.

  - `StartedAt Time`

  - `Status SmallMoleculeLibraryScreenGetResponseStatus`

    - `const SmallMoleculeLibraryScreenGetResponseStatusPending SmallMoleculeLibraryScreenGetResponseStatus = "pending"`

    - `const SmallMoleculeLibraryScreenGetResponseStatusRunning SmallMoleculeLibraryScreenGetResponseStatus = "running"`

    - `const SmallMoleculeLibraryScreenGetResponseStatusSucceeded SmallMoleculeLibraryScreenGetResponseStatus = "succeeded"`

    - `const SmallMoleculeLibraryScreenGetResponseStatusFailed SmallMoleculeLibraryScreenGetResponseStatus = "failed"`

    - `const SmallMoleculeLibraryScreenGetResponseStatusStopped SmallMoleculeLibraryScreenGetResponseStatus = "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"),
  )
  libraryScreen, err := client.SmallMolecule.LibraryScreen.Get(
    context.TODO(),
    "id",
    boltzapi.SmallMoleculeLibraryScreenGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", libraryScreen.ID)
}
```

## List Results

`client.SmallMolecule.LibraryScreen.ListResults(ctx, id, query) (*CursorPage[SmallMoleculeLibraryScreenListResultsResponse], error)`

**get** `/compute/v1/small-molecule/library-screen/{id}/results`

Retrieve paginated results from a library screen

### Parameters

- `id string`

- `query SmallMoleculeLibraryScreenListResultsParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max results to return. Defaults to 100.

  - `WorkspaceID param.Field[string]`

    Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `type SmallMoleculeLibraryScreenListResultsResponse struct{…}`

  Result for a single screened small molecule

  - `ID string`

    Unique result ID

  - `Artifacts SmallMoleculeLibraryScreenListResultsResponseArtifacts`

    - `Archive SmallMoleculeLibraryScreenListResultsResponseArtifactsArchive`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Structure SmallMoleculeLibraryScreenListResultsResponseArtifactsStructure`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

  - `CreatedAt Time`

  - `Metrics SmallMoleculeLibraryScreenListResultsResponseMetrics`

    Scoring metrics for a screened small molecule

    - `BindingConfidence float64`

      Confidence that the molecule binds the target (0-1). Primary metric for hit discovery.

    - `ComplexIplddt float64`

      Interface pLDDT for the complex (0-1 float). Confidence at the binding interface.

    - `ComplexPlddt float64`

      pLDDT for the full complex (0-1 float).

    - `Iptm float64`

      Interface predicted TM score (0-1). Confidence in relative positioning of ligand and protein.

    - `OptimizationScore float64`

      Binding strength ranking score for lead optimization. Higher values indicate stronger predicted binding.

    - `Ptm float64`

      Predicted TM score (0-1). Global structure quality metric.

    - `StructureConfidence float64`

      Confidence in the predicted 3D structure (0-1).

  - `Smiles string`

    SMILES string of the screened molecule

  - `ExternalID string`

    Client-provided identifier for this molecule, if provided

  - `Warnings []SmallMoleculeLibraryScreenListResultsResponseWarning`

    Warnings about potential quality issues with this result.

    - `Code string`

      Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")

    - `Message string`

      Human-readable description of the warning

### 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"),
  )
  page, err := client.SmallMolecule.LibraryScreen.ListResults(
    context.TODO(),
    "id",
    boltzapi.SmallMoleculeLibraryScreenListResultsParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Stop

`client.SmallMolecule.LibraryScreen.Stop(ctx, id) (*SmallMoleculeLibraryScreenStopResponse, error)`

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

Stop an in-progress library screen early

### Parameters

- `id string`

### Returns

- `type SmallMoleculeLibraryScreenStopResponse struct{…}`

  A small molecule library screening engine run

  - `ID string`

    Unique SmScreen 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 BoltzSmScreen`

    Engine used for small molecule library screen

    - `const BoltzSmScreenBoltzSmScreen BoltzSmScreen = "boltz-sm-screen"`

  - `EngineVersion string`

    Engine version used for small molecule library screen

  - `Error SmallMoleculeLibraryScreenStopResponseError`

    - `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 SmallMoleculeLibraryScreenStopResponseInput`

    Pipeline input (null if data deleted)

    - `Molecules SmallMoleculeLibraryScreenStopResponseInputMolecules`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target SmallMoleculeLibraryScreenStopResponseInputTarget`

      Target protein with binding pocket for small molecule design or screening

      - `Entities []SmallMoleculeLibraryScreenStopResponseInputTargetEntity`

        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 []SmallMoleculeLibraryScreenStopResponseInputTargetEntityModificationUnion`

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

          - `type SmallMoleculeLibraryScreenStopResponseInputTargetEntityModificationCcdModificationResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetEntityModificationSmilesModificationResponse 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 []SmallMoleculeLibraryScreenStopResponseInputTargetBond`

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

        - `Atom1 SmallMoleculeLibraryScreenStopResponseInputTargetBondAtom1Union`

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

          - `type SmallMoleculeLibraryScreenStopResponseInputTargetBondAtom1LigandAtomResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetBondAtom1PolymerAtomResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetBondAtom2Union`

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

          - `type SmallMoleculeLibraryScreenStopResponseInputTargetBondAtom2LigandAtomResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetBondAtom2PolymerAtomResponse 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 []SmallMoleculeLibraryScreenStopResponseInputTargetConstraintUnion`

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

        - `type SmallMoleculeLibraryScreenStopResponseInputTargetConstraintPocketConstraintResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponseToken1Union`

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

            - `type SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponseToken1LigandContactTokenResponse 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 SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponseToken2Union`

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

            - `type SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type SmallMoleculeLibraryScreenStopResponseInputTargetConstraintContactConstraintResponseToken2LigandContactTokenResponse 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.

    - `MoleculeFilters SmallMoleculeLibraryScreenStopResponseInputMoleculeFilters`

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

      - `BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel`

        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 SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"`

        - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"`

        - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"`

        - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"`

      - `CustomFilters []SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterUnion`

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

        - `type SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterLipinskiFilterResponse 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 SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponse 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 SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseFractionCsp3`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolLogp SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolLogp`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `MolWt SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolWt`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumAromaticRings SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumAromaticRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHAcceptors SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHAcceptors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHDonors SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHDonors`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumHeteroatoms SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHeteroatoms`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRings SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRings`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `NumRotatableBonds SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRotatableBonds`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

          - `Tpsa SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseTpsa`

            Min/max range constraint for an RDKit molecular descriptor

            - `Max float64`

              Maximum allowed value (inclusive)

            - `Min float64`

              Minimum allowed value (inclusive)

        - `type SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCustomFilterResponse 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 SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponse struct{…}`

          Filter molecules using a predefined SMARTS catalog of structural alerts.

          - `Catalog SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog`

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

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPains SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsA SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_A"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsB SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_B"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogPainsC SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "PAINS_C"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogBrenk SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "BRENK"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChembl SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblBms SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_BMS"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblDundee SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Dundee"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblGlaxo SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Glaxo"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblInpharmatica SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_Inpharmatica"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblLint SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_LINT"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblMlsmr SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_MLSMR"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogChemblSureChEmbl SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "CHEMBL_SureChEMBL"`

            - `const SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalogNih SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmartsCatalogFilterResponseCatalog = "NIH"`

          - `Type SmartsCatalogFilter`

            - `const SmartsCatalogFilterSmartsCatalogFilter SmartsCatalogFilter = "smarts_catalog_filter"`

        - `type SmallMoleculeLibraryScreenStopResponseInputMoleculeFiltersCustomFilterSmilesRegexFilterResponse 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"`

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress SmallMoleculeLibraryScreenStopResponseProgress`

    - `NumMoleculesFailed int64`

      Number of accepted molecules that reached terminal failure during screening.

    - `NumMoleculesScreened int64`

      Number of accepted molecules that produced usable screening results.

    - `TotalMoleculesToScreen int64`

      Total number of molecules accepted into screening after server-side validation and filtering.

    - `LatestResultID string`

      ID of the most recently screened result

    - `RejectionSummary SmallMoleculeLibraryScreenStopResponseProgressRejectionSummary`

      - `FilteredCount int64`

        Number of submitted molecules removed by server-side filtering rules.

      - `InvalidCount int64`

        Number of submitted molecules rejected as invalid input.

  - `StartedAt Time`

  - `Status SmallMoleculeLibraryScreenStopResponseStatus`

    - `const SmallMoleculeLibraryScreenStopResponseStatusPending SmallMoleculeLibraryScreenStopResponseStatus = "pending"`

    - `const SmallMoleculeLibraryScreenStopResponseStatusRunning SmallMoleculeLibraryScreenStopResponseStatus = "running"`

    - `const SmallMoleculeLibraryScreenStopResponseStatusSucceeded SmallMoleculeLibraryScreenStopResponseStatus = "succeeded"`

    - `const SmallMoleculeLibraryScreenStopResponseStatusFailed SmallMoleculeLibraryScreenStopResponseStatus = "failed"`

    - `const SmallMoleculeLibraryScreenStopResponseStatusStopped SmallMoleculeLibraryScreenStopResponseStatus = "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.LibraryScreen.Stop(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Delete Data

`client.SmallMolecule.LibraryScreen.DeleteData(ctx, id) (*SmallMoleculeLibraryScreenDeleteDataResponse, error)`

**post** `/compute/v1/small-molecule/library-screen/{id}/delete-data`

Permanently delete the input, output, and result data associated with this library screen. The library screen record itself is retained with a `data_deleted_at` timestamp. This action is irreversible.

### Parameters

- `id string`

### Returns

- `type SmallMoleculeLibraryScreenDeleteDataResponse struct{…}`

  - `ID string`

    ID of the resource whose data was deleted

  - `DataDeleted bool`

    - `const SmallMoleculeLibraryScreenDeleteDataResponseDataDeletedTrue SmallMoleculeLibraryScreenDeleteDataResponseDataDeleted = true`

  - `DataDeletedAt Time`

    When the data was deleted

### 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.LibraryScreen.DeleteData(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Estimate Cost

`client.SmallMolecule.LibraryScreen.EstimateCost(ctx, body) (*SmallMoleculeLibraryScreenEstimateCostResponse, error)`

**post** `/compute/v1/small-molecule/library-screen/estimate-cost`

Estimate the cost of a small molecule library screen without creating any resource or consuming GPU.

### Parameters

- `body SmallMoleculeLibraryScreenEstimateCostParams`

  - `Molecules param.Field[[]SmallMoleculeLibraryScreenEstimateCostParamsMolecule]`

    List of small molecules to screen.

    - `Smiles string`

      SMILES string of the molecule

    - `ID string`

      Optional identifier for this molecule

  - `Target param.Field[SmallMoleculeLibraryScreenEstimateCostParamsTarget]`

    Target protein with binding pocket for small molecule design or screening

    - `Entities []SmallMoleculeLibraryScreenEstimateCostParamsTargetEntity`

      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 []SmallMoleculeLibraryScreenEstimateCostParamsTargetEntityModificationUnion`

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

        - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetEntityModificationCcdModification 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetEntityModificationSmilesModification 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 []SmallMoleculeLibraryScreenEstimateCostParamsTargetBond`

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

      - `Atom1 SmallMoleculeLibraryScreenEstimateCostParamsTargetBondAtom1Union`

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

        - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetBondAtom1LigandAtom 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetBondAtom1PolymerAtom 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetBondAtom2Union`

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

        - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetBondAtom2LigandAtom 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetBondAtom2PolymerAtom 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 []SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintUnion`

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

      - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintPocketConstraint 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraint 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraintToken1Union`

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

          - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraintToken1PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraintToken1LigandContactToken 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 SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraintToken2Union`

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

          - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraintToken2PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type SmallMoleculeLibraryScreenEstimateCostParamsTargetConstraintContactConstraintToken2LigandContactToken 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.

  - `IdempotencyKey param.Field[string]`

    Client-provided key to prevent duplicate submissions on retries

  - `MoleculeFilters param.Field[SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFilters]`

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

    - `BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel`

      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 SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"`

      - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"`

      - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"`

      - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"`

    - `CustomFilters []SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterUnion`

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

      - `type SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterLipinskiFilter 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 SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilter 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 SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterFractionCsp3`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `MolLogp SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolLogp`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `MolWt SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolWt`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumAromaticRings SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumAromaticRings`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumHAcceptors SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHAcceptors`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumHDonors SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHDonors`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumHeteroatoms SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHeteroatoms`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumRings SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRings`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `NumRotatableBonds SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRotatableBonds`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

        - `Tpsa SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterTpsa`

          Min/max range constraint for an RDKit molecular descriptor

          - `Max float64`

            Maximum allowed value (inclusive)

          - `Min float64`

            Minimum allowed value (inclusive)

      - `type SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCustomFilter 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 SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilter struct{…}`

        Filter molecules using a predefined SMARTS catalog of structural alerts.

        - `Catalog SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog`

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

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPains SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPainsA SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS_A"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPainsB SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS_B"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPainsC SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "PAINS_C"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogBrenk SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "BRENK"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChembl SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblBms SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_BMS"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblDundee SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_Dundee"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblGlaxo SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_Glaxo"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblInpharmatica SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_Inpharmatica"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblLint SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_LINT"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblMlsmr SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_MLSMR"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogChemblSureChEmbl SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "CHEMBL_SureChEMBL"`

          - `const SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogNih SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalog = "NIH"`

        - `Type SmartsCatalogFilter`

          - `const SmartsCatalogFilterSmartsCatalogFilter SmartsCatalogFilter = "smarts_catalog_filter"`

      - `type SmallMoleculeLibraryScreenEstimateCostParamsMoleculeFiltersCustomFilterSmilesRegexFilter 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 param.Field[string]`

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

### Returns

- `type SmallMoleculeLibraryScreenEstimateCostResponse struct{…}`

  Estimate response with monetary values encoded as decimal strings to preserve precision.

  - `Breakdown SmallMoleculeLibraryScreenEstimateCostResponseBreakdown`

    Cost breakdown for the billed application.

    - `Application SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication`

      - `const SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplicationStructureAndBinding SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication = "structure_and_binding"`

      - `const SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplicationSmallMoleculeDesign SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication = "small_molecule_design"`

      - `const SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplicationSmallMoleculeLibraryScreen SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication = "small_molecule_library_screen"`

      - `const SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplicationProteinDesign SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication = "protein_design"`

      - `const SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplicationProteinLibraryScreen SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication = "protein_library_screen"`

      - `const SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplicationAdme SmallMoleculeLibraryScreenEstimateCostResponseBreakdownApplication = "adme"`

    - `CostPerUnitUsd string`

      Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal places. This may include token-size multipliers or generation overhead; estimated_cost_usd is the authoritative total.

    - `NumUnits int64`

      Number of units shown for the estimate. For structure-and-binding, this is the requested number of samples. For protein and small-molecule design/screen endpoints, this is the requested number of proteins or molecules.

  - `Disclaimer string`

  - `EstimatedCostUsd string`

    Estimated total cost as a decimal string

### 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.LibraryScreen.EstimateCost(context.TODO(), boltzapi.SmallMoleculeLibraryScreenEstimateCostParams{
    Molecules: []boltzapi.SmallMoleculeLibraryScreenEstimateCostParamsMolecule{boltzapi.SmallMoleculeLibraryScreenEstimateCostParamsMolecule{
      Smiles: "smiles",
    }},
    Target: boltzapi.SmallMoleculeLibraryScreenEstimateCostParamsTarget{
      Entities: []boltzapi.SmallMoleculeLibraryScreenEstimateCostParamsTargetEntity{boltzapi.SmallMoleculeLibraryScreenEstimateCostParamsTargetEntity{
        ChainIDs: []string{"string"},
        Value: "value",
      }},
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Breakdown)
}
```
