Estimate cost for a small molecule design run
Estimate the billed cost of a small molecule design run without creating any resource or consuming GPU. Includes the SynFlowNet generation charges implied by the scheduler iteration cap plus Boltz2 scoring for each requested molecule.
ParametersExpand Collapse
body SmallMoleculeDesignEstimateCostParams
Number of molecules to generate. Must be between 10 and 1,000,000.
Target param.Field[SmallMoleculeDesignEstimateCostParamsTarget]Target protein with binding pocket for small molecule design or screening
Target protein with binding pocket for small molecule design or screening
Entities []SmallMoleculeDesignEstimateCostParamsTargetEntityProtein entities defining the target structure. Each entity represents a protein chain.
Protein entities defining the target structure. Each entity represents a protein chain.
Chain IDs for this entity
Amino acid sequence (one-letter codes)
Whether the sequence is cyclic
Modifications []SmallMoleculeDesignEstimateCostParamsTargetEntityModificationUnionoptionalPost-translational modifications. Optional; defaults to an empty list when omitted.
Post-translational modifications. Optional; defaults to an empty list when omitted.
type SmallMoleculeDesignEstimateCostParamsTargetEntityModificationCcdModification struct{…}
0-based index of the residue to modify
CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)
type SmallMoleculeDesignEstimateCostParamsTargetEntityModificationSmilesModification struct{…}
0-based index of the residue to modify
SMILES string for the modification
Bonds []SmallMoleculeDesignEstimateCostParamsTargetBondoptionalCovalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.
Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.
Atom1 SmallMoleculeDesignEstimateCostParamsTargetBondAtom1UnionLigand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
type SmallMoleculeDesignEstimateCostParamsTargetBondAtom1LigandAtom struct{…}Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
Chain ID containing the atom
type SmallMoleculeDesignEstimateCostParamsTargetBondAtom1PolymerAtom struct{…}
Standardized atom name (verifiable in CIF file on RCSB)
Chain ID containing the atom
0-based residue index
Atom2 SmallMoleculeDesignEstimateCostParamsTargetBondAtom2UnionLigand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
type SmallMoleculeDesignEstimateCostParamsTargetBondAtom2LigandAtom struct{…}Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
Chain ID containing the atom
type SmallMoleculeDesignEstimateCostParamsTargetBondAtom2PolymerAtom struct{…}
Standardized atom name (verifiable in CIF file on RCSB)
Chain ID containing the atom
0-based residue index
Constraints []SmallMoleculeDesignEstimateCostParamsTargetConstraintUnionoptionalStructural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.
Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.
type SmallMoleculeDesignEstimateCostParamsTargetConstraintPocketConstraint struct{…}Constrains the binder to interact with specific pocket residues on the target.
Constrains the binder to interact with specific pocket residues on the target.
Chain ID of the binder molecule
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.
Maximum allowed distance in Angstroms between binder and pocket residues. Typical range: 4-8 A.
Whether to force the constraint
type SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraint struct{…}Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Maximum distance in Angstroms
Token1 SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraintToken1UnionLigand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
type SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraintToken1PolymerContactToken struct{…}
Chain ID
0-based residue index
type SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraintToken1LigandContactToken struct{…}Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
Chain ID
Token2 SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraintToken2UnionLigand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
type SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraintToken2PolymerContactToken struct{…}
Chain ID
0-based residue index
type SmallMoleculeDesignEstimateCostParamsTargetConstraintContactConstraintToken2LigandContactToken struct{…}Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.
Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.
Chain ID
Whether to force the constraint
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.
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.
Chemical space to constrain generated molecules. Currently only 'enamine_real' (Enamine REAL chemical space) is supported. Additional options may be added in the future.
Chemical space to constrain generated molecules. Currently only 'enamine_real' (Enamine REAL chemical space) is supported. Additional options may be added in the future.
Client-provided key to prevent duplicate submissions on retries
Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering and custom filters.
Molecule filtering configuration. Controls both Boltz built-in SMARTS filtering and custom filters.
BoltzSmartsCatalogFilterLevel SmallMoleculeDesignEstimateCostParamsMoleculeFiltersBoltzSmartsCatalogFilterLeveloptionalControls 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.
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.
CustomFilters []SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterUnionoptionalCustom filters to apply. Molecules must pass all filters (AND logic).
Custom filters to apply. Molecules must pass all filters (AND logic).
type SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterLipinskiFilter 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.
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.
Maximum number of hydrogen bond acceptors. Lipinski threshold: 10
Maximum number of hydrogen bond donors. Lipinski threshold: 5
Maximum LogP. Lipinski threshold: 5
Maximum molecular weight (Da). Lipinski threshold: 500
If true, one rule violation is allowed (classic Rule of Five). Defaults to false (all rules must pass).
type SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilter 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.
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.
FractionCsp3 SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterFractionCsp3optionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
MolLogp SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolLogpoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
MolWt SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterMolWtoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
NumAromaticRings SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumAromaticRingsoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
NumHAcceptors SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHAcceptorsoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
NumHDonors SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHDonorsoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
NumHeteroatoms SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumHeteroatomsoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
NumRings SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRingsoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
NumRotatableBonds SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterNumRotatableBondsoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
Tpsa SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterRdkitDescriptorFilterTpsaoptionalMin/max range constraint for an RDKit molecular descriptor
Min/max range constraint for an RDKit molecular descriptor
Maximum allowed value (inclusive)
Minimum allowed value (inclusive)
type SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterSmartsCustomFilter struct{…}Filter molecules by custom SMARTS patterns. Molecules matching any pattern are rejected.
Filter molecules by custom SMARTS patterns. Molecules matching any pattern are rejected.
SMARTS patterns. Molecules matching any pattern are rejected.
type SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilter struct{…}Filter molecules using a predefined SMARTS catalog of structural alerts.
Filter molecules using a predefined SMARTS catalog of structural alerts.
Catalog SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterSmartsCatalogFilterCatalogPredefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs reject known problematic substructures.
Predefined SMARTS catalog to apply. PAINS, BRENK, ChEMBL, and NIH catalogs reject known problematic substructures.
type SmallMoleculeDesignEstimateCostParamsMoleculeFiltersCustomFilterSmilesRegexFilter struct{…}Filter molecules by regex patterns on their SMILES representation.
Filter molecules by regex patterns on their SMILES representation.
Regex patterns applied to SMILES strings. Molecules matching any pattern are rejected.
Target workspace ID (admin keys only; ignored for workspace keys)
ReturnsExpand Collapse
type SmallMoleculeDesignEstimateCostResponse struct{…}Estimate response with monetary values encoded as decimal strings to preserve precision.
Estimate response with monetary values encoded as decimal strings to preserve precision.
Breakdown SmallMoleculeDesignEstimateCostResponseBreakdownCost breakdown for the billed application.
Cost breakdown for the billed application.
Application SmallMoleculeDesignEstimateCostResponseBreakdownApplication
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.
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.
Estimated total cost as a decimal string
Estimate cost for a small molecule design run
package main
import (
"context"
"fmt"
"github.com/boltz-bio/boltz-api-go"
"github.com/boltz-bio/boltz-api-go/option"
)
func main() {
client := boltzapi.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.SmallMolecule.Design.EstimateCost(context.TODO(), boltzapi.SmallMoleculeDesignEstimateCostParams{
NumMolecules: 10,
Target: boltzapi.SmallMoleculeDesignEstimateCostParamsTarget{
Entities: []boltzapi.SmallMoleculeDesignEstimateCostParamsTargetEntity{boltzapi.SmallMoleculeDesignEstimateCostParamsTargetEntity{
ChainIDs: []string{"string"},
Value: "value",
}},
},
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Breakdown)
}
{
"breakdown": {
"application": "structure_and_binding",
"cost_per_unit_usd": "0.0500",
"num_units": 1
},
"disclaimer": "This is an estimate only and may differ from your actual charges. Final billing is based on exact token counts computed at run time. For large library screens, the estimate is extrapolated from a sample and may be less accurate for highly variable inputs.",
"estimated_cost_usd": "0.0500"
}Returns Examples
{
"breakdown": {
"application": "structure_and_binding",
"cost_per_unit_usd": "0.0500",
"num_units": 1
},
"disclaimer": "This is an estimate only and may differ from your actual charges. Final billing is based on exact token counts computed at run time. For large library screens, the estimate is extrapolated from a sample and may be less accurate for highly variable inputs.",
"estimated_cost_usd": "0.0500"
}