Skip to content
Go to Boltz API

Start a small molecule library screen

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

ParametersExpand Collapse
body SmallMoleculeLibraryScreenStartParams
Molecules param.Field[[]SmallMoleculeLibraryScreenStartParamsMolecule]

List of small molecules to screen.

Smiles string

SMILES string of the molecule

ID stringoptional

Optional identifier for this molecule

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
Value string

Amino acid sequence (one-letter codes)

Cyclic booloptional

Whether the sequence is cyclic

Modifications []SmallMoleculeLibraryScreenStartParamsTargetEntityModificationUnionoptional

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

Accepts one of the following:
type SmallMoleculeLibraryScreenStartParamsTargetEntityModificationCcdModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type 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

minimum0
Type Smiles
Value string

SMILES string for the modification

Bonds []SmallMoleculeLibraryScreenStartParamsTargetBondoptional

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.

Accepts one of the following:
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
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

minimum0
Type PolymerAtom
Atom2 SmallMoleculeLibraryScreenStartParamsTargetBondAtom2Union

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

Accepts one of the following:
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
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

minimum0
Type PolymerAtom
Constraints []SmallMoleculeLibraryScreenStartParamsTargetConstraintUnionoptional

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

Accepts one of the following:
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
Force booloptional

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.

Accepts one of the following:
type SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken1PolymerContactToken struct{…}
ChainID string

Chain ID

ResidueIndex int64

0-based residue index

minimum0
Type PolymerContact
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
Token2 SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken2Union

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

Accepts one of the following:
type SmallMoleculeLibraryScreenStartParamsTargetConstraintContactConstraintToken2PolymerContactToken struct{…}
ChainID string

Chain ID

ResidueIndex int64

0-based residue index

minimum0
Type PolymerContact
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
Type Contact
Force booloptional

Whether to force the constraint

PocketResidues map[string, []int64]optional

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 []stringoptional

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]optional

Client-provided key to prevent duplicate submissions on retries

maxLength255
MoleculeFilters param.Field[SmallMoleculeLibraryScreenStartParamsMoleculeFilters]optional

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

BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLeveloptional

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.

Accepts one of the following:
const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"
const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"
const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"
const SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenStartParamsMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"
CustomFilters []SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterUnionoptional

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

Accepts one of the following:
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
AllowSingleViolation booloptional

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
FractionCsp3 SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterFractionCsp3optional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

MolLogp SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolLogpoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

MolWt SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolWtoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumAromaticRings SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumAromaticRingsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumHAcceptors SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHAcceptorsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumHDonors SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHDonorsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumHeteroatoms SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHeteroatomsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumRings SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRingsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumRotatableBonds SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRotatableBondsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

Tpsa SmallMoleculeLibraryScreenStartParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterTpsaoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

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

Accepts one of the following:
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
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
WorkspaceID param.Field[string]optional

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

ReturnsExpand Collapse
type SmallMoleculeLibraryScreenStartResponse struct{…}

A small molecule library screening engine run

ID string

Unique SmScreen identifier

CompletedAt Time
formatdate-time
CreatedAt Time
formatdate-time
DataDeletedAt Time

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

formatdate-time
Engine BoltzSmScreen

Engine used for small molecule library 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 anyoptional

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

formaturi
URLExpiresAt Time

When the presigned URL expires

formatdate-time
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
Value string

Amino acid sequence (one-letter codes)

Cyclic booloptional

Whether the sequence is cyclic

Modifications []SmallMoleculeLibraryScreenStartResponseInputTargetEntityModificationUnionoptional

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

Accepts one of the following:
type SmallMoleculeLibraryScreenStartResponseInputTargetEntityModificationCcdModificationResponse struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type 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

minimum0
Type Smiles
Value string

SMILES string for the modification

Bonds []SmallMoleculeLibraryScreenStartResponseInputTargetBondoptional

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.

Accepts one of the following:
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
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

minimum0
Type PolymerAtom
Atom2 SmallMoleculeLibraryScreenStartResponseInputTargetBondAtom2Union

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

Accepts one of the following:
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
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

minimum0
Type PolymerAtom
Constraints []SmallMoleculeLibraryScreenStartResponseInputTargetConstraintUnionoptional

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

Accepts one of the following:
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
Force booloptional

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.

Accepts one of the following:
type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}
ChainID string

Chain ID

ResidueIndex int64

0-based residue index

minimum0
Type PolymerContact
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
Token2 SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken2Union

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

Accepts one of the following:
type SmallMoleculeLibraryScreenStartResponseInputTargetConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}
ChainID string

Chain ID

ResidueIndex int64

0-based residue index

minimum0
Type PolymerContact
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
Type Contact
Force booloptional

Whether to force the constraint

PocketResidues map[string, []int64]optional

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 []stringoptional

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 SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersoptional

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

BoltzSmartsCatalogFilterLevel SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLeveloptional

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.

Accepts one of the following:
const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelRecommended SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "recommended"
const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelExtra SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "extra"
const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelAggressive SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "aggressive"
const SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevelDisabled SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersBoltzSmartsCatalogFilterLevel = "disabled"
CustomFilters []SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterUnionoptional

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

Accepts one of the following:
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
AllowSingleViolation booloptional

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
FractionCsp3 SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseFractionCsp3optional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

MolLogp SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolLogpoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

MolWt SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseMolWtoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumAromaticRings SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumAromaticRingsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumHAcceptors SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHAcceptorsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumHDonors SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHDonorsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumHeteroatoms SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumHeteroatomsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumRings SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRingsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

NumRotatableBonds SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseNumRotatableBondsoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

Minimum allowed value (inclusive)

Tpsa SmallMoleculeLibraryScreenStartResponseInputMoleculeFiltersCustomFilterRdkitDescriptorFilterResponseTpsaoptional

Min/max range constraint for an RDKit molecular descriptor

Max float64optional

Maximum allowed value (inclusive)

Min float64optional

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

Accepts one of the following:
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
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
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.

minimum0
NumMoleculesScreened int64

Number of accepted molecules that produced usable screening results.

minimum0
TotalMoleculesToScreen int64

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

minimum0
LatestResultID stringoptional

ID of the most recently screened result

RejectionSummary SmallMoleculeLibraryScreenStartResponseProgressRejectionSummaryoptional
FilteredCount int64

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

minimum0
InvalidCount int64

Number of submitted molecules rejected as invalid input.

minimum0
StartedAt Time
formatdate-time
Status SmallMoleculeLibraryScreenStartResponseStatus
Accepts one of the following:
const SmallMoleculeLibraryScreenStartResponseStatusPending SmallMoleculeLibraryScreenStartResponseStatus = "pending"
const SmallMoleculeLibraryScreenStartResponseStatusRunning SmallMoleculeLibraryScreenStartResponseStatus = "running"
const SmallMoleculeLibraryScreenStartResponseStatusSucceeded SmallMoleculeLibraryScreenStartResponseStatus = "succeeded"
const SmallMoleculeLibraryScreenStartResponseStatusFailed SmallMoleculeLibraryScreenStartResponseStatus = "failed"
const SmallMoleculeLibraryScreenStartResponseStatusStopped SmallMoleculeLibraryScreenStartResponseStatus = "stopped"
StoppedAt Time
formatdate-time
WorkspaceID string

Workspace ID

IdempotencyKey stringoptional

Client-provided idempotency key

Start a small molecule library screen

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)
}
{
  "id": "id",
  "completed_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "data_deleted_at": "2019-12-27T18:11:19.117Z",
  "engine": "boltz-sm-screen",
  "engine_version": "engine_version",
  "error": {
    "code": "code",
    "message": "message",
    "details": {}
  },
  "input": {
    "molecules": {
      "url": "https://example.com",
      "url_expires_at": "2019-12-27T18:11:19.117Z"
    },
    "target": {
      "entities": [
        {
          "chain_ids": [
            "string"
          ],
          "type": "protein",
          "value": "value",
          "cyclic": true,
          "modifications": [
            {
              "residue_index": 0,
              "type": "ccd",
              "value": "value"
            }
          ]
        }
      ],
      "bonds": [
        {
          "atom1": {
            "atom_name": "atom_name",
            "chain_id": "chain_id",
            "type": "ligand_atom"
          },
          "atom2": {
            "atom_name": "atom_name",
            "chain_id": "chain_id",
            "type": "ligand_atom"
          }
        }
      ],
      "constraints": [
        {
          "binder_chain_id": "binder_chain_id",
          "contact_residues": {
            "A": [
              42,
              43,
              44,
              67,
              68,
              69
            ]
          },
          "max_distance_angstrom": 0,
          "type": "pocket",
          "force": true
        }
      ],
      "pocket_residues": {
        "A": [
          42,
          43,
          44,
          67,
          68,
          69
        ]
      },
      "reference_ligands": [
        "string"
      ]
    },
    "molecule_filters": {
      "boltz_smarts_catalog_filter_level": "recommended",
      "custom_filters": [
        {
          "max_hba": 0,
          "max_hbd": 0,
          "max_logp": 0,
          "max_mw": 0,
          "type": "lipinski_filter",
          "allow_single_violation": true
        }
      ]
    }
  },
  "livemode": true,
  "progress": {
    "num_molecules_failed": 0,
    "num_molecules_screened": 0,
    "total_molecules_to_screen": 0,
    "latest_result_id": "latest_result_id",
    "rejection_summary": {
      "filtered_count": 0,
      "invalid_count": 0
    }
  },
  "started_at": "2019-12-27T18:11:19.117Z",
  "status": "pending",
  "stopped_at": "2019-12-27T18:11:19.117Z",
  "workspace_id": "workspace_id",
  "idempotency_key": "idempotency_key"
}
Returns Examples
{
  "id": "id",
  "completed_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "data_deleted_at": "2019-12-27T18:11:19.117Z",
  "engine": "boltz-sm-screen",
  "engine_version": "engine_version",
  "error": {
    "code": "code",
    "message": "message",
    "details": {}
  },
  "input": {
    "molecules": {
      "url": "https://example.com",
      "url_expires_at": "2019-12-27T18:11:19.117Z"
    },
    "target": {
      "entities": [
        {
          "chain_ids": [
            "string"
          ],
          "type": "protein",
          "value": "value",
          "cyclic": true,
          "modifications": [
            {
              "residue_index": 0,
              "type": "ccd",
              "value": "value"
            }
          ]
        }
      ],
      "bonds": [
        {
          "atom1": {
            "atom_name": "atom_name",
            "chain_id": "chain_id",
            "type": "ligand_atom"
          },
          "atom2": {
            "atom_name": "atom_name",
            "chain_id": "chain_id",
            "type": "ligand_atom"
          }
        }
      ],
      "constraints": [
        {
          "binder_chain_id": "binder_chain_id",
          "contact_residues": {
            "A": [
              42,
              43,
              44,
              67,
              68,
              69
            ]
          },
          "max_distance_angstrom": 0,
          "type": "pocket",
          "force": true
        }
      ],
      "pocket_residues": {
        "A": [
          42,
          43,
          44,
          67,
          68,
          69
        ]
      },
      "reference_ligands": [
        "string"
      ]
    },
    "molecule_filters": {
      "boltz_smarts_catalog_filter_level": "recommended",
      "custom_filters": [
        {
          "max_hba": 0,
          "max_hbd": 0,
          "max_logp": 0,
          "max_mw": 0,
          "type": "lipinski_filter",
          "allow_single_violation": true
        }
      ]
    }
  },
  "livemode": true,
  "progress": {
    "num_molecules_failed": 0,
    "num_molecules_screened": 0,
    "total_molecules_to_screen": 0,
    "latest_result_id": "latest_result_id",
    "rejection_summary": {
      "filtered_count": 0,
      "invalid_count": 0
    }
  },
  "started_at": "2019-12-27T18:11:19.117Z",
  "status": "pending",
  "stopped_at": "2019-12-27T18:11:19.117Z",
  "workspace_id": "workspace_id",
  "idempotency_key": "idempotency_key"
}