Skip to content
Go to Boltz API

Estimate cost for a structure and binding prediction

client.Predictions.StructureAndBinding.EstimateCost(ctx, body) (*PredictionStructureAndBindingEstimateCostResponse, error)
POST/compute/v1/predictions/structure-and-binding/estimate-cost

Estimate the cost of a prediction without creating any resource or consuming GPU.

ParametersExpand Collapse
body PredictionStructureAndBindingEstimateCostParams
Entities []PredictionStructureAndBindingEstimateCostParamsInputEntityUnion

Entities (proteins, RNA, DNA, ligands) forming the complex to predict. Order determines chain assignment.

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntity struct{…}
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 []PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityModificationOptional

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Ccd

Modification format. Only CCD polymer modifications are supported.

Value string

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

Msa PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaUnionOptional

Optional protein MSA control. Omit msa on all protein entities to use automatic MSA generation. Use custom for user-provided A3M/CSV files, or empty for single-sequence mode. Custom MSA and automatic MSA cannot be mixed in one request.

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsa struct{…}

Use a user-provided MSA for this protein entity. If any protein entity uses a custom MSA, every other protein entity must use either custom or empty MSA; automatic MSA generation cannot be mixed with custom MSAs in the same request.

Format PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaFormat

Custom MSA file format. Base64 uploads must use media_type text/x-a3m for A3M or text/csv for CSV.

One of the following:
const PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaFormatA3m PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaFormat = "a3m"
const PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaFormatCsv PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaFormat = "csv"
Source PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaSourceUnion

How to provide a file to the API

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaSourceURLSource struct{…}
Type URL
URL string
formaturi
type PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2CustomMsaSourceBase64Source struct{…}
Data string

Base64-encoded file contents

MediaType string

MIME type (e.g., text/csv)

Type Base64
Type Custom
type PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntityMsaBoltz2EmptyMsa struct{…}

Run this protein entity in single-sequence mode without an MSA. Use this for chains that should not use automatic MSA generation, including non-homologous chains in a request that also includes custom MSAs.

Type Empty
type PredictionStructureAndBindingEstimateCostParamsInputEntityRnaEntity struct{…}
ChainIDs []string

Chain IDs for this entity

Type Rna
Value string

RNA nucleotide sequence (A, C, G, U, N)

Cyclic boolOptional

Whether the sequence is cyclic

Modifications []PredictionStructureAndBindingEstimateCostParamsInputEntityRnaEntityModificationOptional

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Ccd

Modification format. Only CCD polymer modifications are supported.

Value string

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

type PredictionStructureAndBindingEstimateCostParamsInputEntityDnaEntity struct{…}
ChainIDs []string

Chain IDs for this entity

Type Dna
Value string

DNA nucleotide sequence (A, C, G, T, N)

Cyclic boolOptional

Whether the sequence is cyclic

Modifications []PredictionStructureAndBindingEstimateCostParamsInputEntityDnaEntityModificationOptional

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Ccd

Modification format. Only CCD polymer modifications are supported.

Value string

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

type PredictionStructureAndBindingEstimateCostParamsInputEntityLigandCcdEntity struct{…}
ChainIDs []string

Chain IDs for this ligand

Type LigandCcd
Value string

CCD code (e.g., ATP, ADP)

type PredictionStructureAndBindingEstimateCostParamsInputEntityLigandSmilesEntity struct{…}
ChainIDs []string

Chain IDs for this ligand

Type LigandSmiles
Value string

SMILES string representing the ligand

Binding PredictionStructureAndBindingEstimateCostParamsInputBindingUnionOptional
One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputBindingLigandProteinBinding struct{…}
BinderChainID string

Chain ID of the ligand binder (must have exactly 1 copy, <50 atoms, and only ligands+proteins in entities)

Type LigandProteinBinding
type PredictionStructureAndBindingEstimateCostParamsInputBindingProteinProteinBinding struct{…}
BinderChainIDs []string

Chain IDs of the protein binders

Type ProteinProteinBinding
Bonds []PredictionStructureAndBindingEstimateCostParamsInputBondOptional

Bond constraints between atoms. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

Atom1 PredictionStructureAndBindingEstimateCostParamsInputBondAtom1Union

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

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputBondAtom1LigandAtom 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 PredictionStructureAndBindingEstimateCostParamsInputBondAtom1PolymerAtom 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 PredictionStructureAndBindingEstimateCostParamsInputBondAtom2Union

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

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputBondAtom2LigandAtom 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 PredictionStructureAndBindingEstimateCostParamsInputBondAtom2PolymerAtom 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 []PredictionStructureAndBindingEstimateCostParamsInputConstraintUnionOptional

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

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputConstraintPocketConstraint 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 PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraint 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 PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken1Union

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

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken1PolymerContactToken struct{…}
ChainID string

Chain ID

ResidueIndex int64

0-based residue index

minimum0
Type PolymerContact
type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken1LigandContactToken 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 PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken2Union

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

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken2PolymerContactToken struct{…}
ChainID string

Chain ID

ResidueIndex int64

0-based residue index

minimum0
Type PolymerContact
type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken2LigandContactToken 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

ModelOptions PredictionStructureAndBindingEstimateCostParamsInputModelOptionsOptional
RecyclingSteps int64Optional

The number of recycling steps to use for prediction. Default is 3.

minimum1
SamplingSteps int64Optional

The number of sampling steps to use for prediction. Default is 200.

minimum50
StepScale float64Optional

Diffusion step scale (temperature). Controls sampling diversity — higher values produce more varied structures. Default is 1.638.

minimum1.3
maximum2
NumSamples int64Optional

Number of structure samples to generate (1-10)

minimum1
maximum10
Templates []PredictionStructureAndBindingEstimateCostParamsInputTemplateOptional

Template structure files to guide protein-chain prediction. Supports up to 4 CIF or PDB templates from HTTPS URLs or base64 uploads. Use template_chains to map request chains to template-file chains.

TemplateChains []PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateChain

Request-to-template chain mappings. Each input_chain_id and template_chain_id must be unique within this template.

InputChainID string

Chain ID in this prediction request

TemplateChainID string

Corresponding chain ID in the template structure file

TemplateStructure PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureUnion

How to provide a template structure file. URLs must point to a CIF or PDB file; base64 uploads must use chemical/x-cif or chemical/x-pdb.

One of the following:
type PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureURLSource struct{…}
Type URL
URL string
formaturi
type PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureTemplateStructureBase64Source struct{…}
Data string

Base64-encoded template structure file contents

MediaType PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureTemplateStructureBase64SourceMediaType

Template structure MIME type

One of the following:
const PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureTemplateStructureBase64SourceMediaTypeChemicalXCif PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureTemplateStructureBase64SourceMediaType = "chemical/x-cif"

CIF template structure

const PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureTemplateStructureBase64SourceMediaTypeChemicalXPdb PredictionStructureAndBindingEstimateCostParamsInputTemplateTemplateStructureTemplateStructureBase64SourceMediaType = "chemical/x-pdb"

PDB template structure

Type Base64
ForceThresholdAngstroms float64Optional

Force the template reference potential with this distance threshold in angstroms. Omit to use the template without force.

minimum0
Model param.Field[Boltz2_1]

Model to use for prediction

const Boltz2_1Boltz2_1 Boltz2_1 = "boltz-2.1"
IdempotencyKey param.Field[string]Optional

Client-provided key to prevent duplicate submissions on retries

maxLength255
WorkspaceID param.Field[string]Optional

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

ReturnsExpand Collapse
type PredictionStructureAndBindingEstimateCostResponse struct{…}

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

Breakdown PredictionStructureAndBindingEstimateCostResponseBreakdown

Cost breakdown for the billed application.

Application PredictionStructureAndBindingEstimateCostResponseBreakdownApplication
One of the following:
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationStructureAndBinding PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "structure_and_binding"
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationSmallMoleculeDesign PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "small_molecule_design"
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationSmallMoleculeLibraryScreen PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "small_molecule_library_screen"
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationProteinDesign PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "protein_design"
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationProteinRedesign PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "protein_redesign"
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationProteinLibraryScreen PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "protein_library_screen"
const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationAdme PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "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 billable units in the estimate. The unit depends on the endpoint: samples for structure-and-binding, molecules for ADME, and requested proteins or molecules for design/screen endpoints.

Disclaimer string
EstimatedCostUsd string

Estimated total cost as a decimal string

Estimate cost for a structure and binding prediction

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.Predictions.StructureAndBinding.EstimateCost(context.TODO(), boltzapi.PredictionStructureAndBindingEstimateCostParams{
    Input: boltzapi.PredictionStructureAndBindingEstimateCostParamsInput{
      Entities: []boltzapi.PredictionStructureAndBindingEstimateCostParamsInputEntityUnion{boltzapi.PredictionStructureAndBindingEstimateCostParamsInputEntityUnion{
        OfPredictionStructureAndBindingEstimateCostsInputEntityBoltz2ProteinEntity: &boltzapi.PredictionStructureAndBindingEstimateCostParamsInputEntityBoltz2ProteinEntity{
          ChainIDs: []string{"string"},
          Value: "value",
        },
      }},
    },
    Model: "boltz-2.1",
  })
  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"
}