Skip to content
Go to Boltz API

Estimate cost for a protein library screen

client.Protein.LibraryScreen.EstimateCost(ctx, body) (*ProteinLibraryScreenEstimateCostResponse, error)
POST/compute/v1/protein/library-screen/estimate-cost

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

ParametersExpand Collapse
body ProteinLibraryScreenEstimateCostParams
Proteins param.Field[[]ProteinLibraryScreenEstimateCostParamsProtein]

List of protein entries to screen.

Entities []ProteinLibraryScreenEstimateCostParamsProteinEntityUnion

Entities that make up this protein complex

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntity 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 []ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntityModificationUnionoptional

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

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntityModificationCcdModification 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 ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntityModificationSmilesModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Smiles
Value string

SMILES string for the modification

type ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntity 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 []ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntityModificationUnionoptional

Chemical modifications. Optional; defaults to an empty list when omitted.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntityModificationCcdModification 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 ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntityModificationSmilesModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Smiles
Value string

SMILES string for the modification

type ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntity 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 []ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntityModificationUnionoptional

Chemical modifications. Optional; defaults to an empty list when omitted.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntityModificationCcdModification 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 ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntityModificationSmilesModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Smiles
Value string

SMILES string for the modification

type ProteinLibraryScreenEstimateCostParamsProteinEntityLigandCcdEntity struct{…}
ChainIDs []string

Chain IDs for this ligand

Type LigandCcd
Value string

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

type ProteinLibraryScreenEstimateCostParamsProteinEntityLigandSmilesEntity struct{…}
ChainIDs []string

Chain IDs for this ligand

Type LigandSmiles
Value string

SMILES string representing the ligand

ID stringoptional

Optional client-provided identifier for this entry

Target specification (structure template or template-free)

type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTarget struct{…}

Target defined by an uploaded 3D structure (CIF or PDB file). Only chains included in chain_selection are used.

ChainSelection map[string, ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion]

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the engine run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, and which are flexible.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}

Per-chain specification for a polymer (protein/RNA/DNA) chain in a structure template target.

ChainType Polymer
CropResidues ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion

0-indexed residue indices to retain from this chain, or 'all' to keep all residues. Residues not listed are excluded from the engine run.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64

0-indexed residue indices to keep

type All string
EpitopeResidues []int64optional

0-indexed residue indices where binder contact is desired (the epitope). All indices must be present in crop_residues.

FlexibleResidues []int64optional

0-indexed residue indices allowed to move during design (e.g. flexible loop regions). All indices must be present in crop_residues.

type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetLigandChainSpec struct{…}

Per-chain specification for a ligand chain in a structure template target. The full ligand is always included.

ChainType Ligand
Structure ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureUnion

How to provide a CIF structure file. URLs are auto-detected; base64 uploads must use chemical/x-cif media type.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureURLSource struct{…}
Type URL
URL string
formaturi
type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureCifBase64Source struct{…}
Data string

Base64-encoded CIF file contents

MediaType ChemicalXCif

Must be chemical/x-cif for CIF files

Type Base64
Type StructureTemplate
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTarget struct{…}

Target defined by sequences only, without a 3D structure template

Entities []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityUnion

Entities (proteins, RNA, DNA, ligands) defining the target complex.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationUnionoptional

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

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationCcdModification 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationSmilesModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Smiles
Value string

SMILES string for the modification

type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationUnionoptional

Chemical modifications. Optional; defaults to an empty list when omitted.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationCcdModification 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationSmilesModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Smiles
Value string

SMILES string for the modification

type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationUnionoptional

Chemical modifications. Optional; defaults to an empty list when omitted.

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationCcdModification 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationSmilesModification struct{…}
ResidueIndex int64

0-based index of the residue to modify

minimum0
Type Smiles
Value string

SMILES string for the modification

type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityLigandCcdEntity struct{…}
ChainIDs []string

Chain IDs for this ligand

Type LigandCcd
Value string

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

type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityLigandSmilesEntity struct{…}
ChainIDs []string

Chain IDs for this ligand

Type LigandSmiles
Value string

SMILES string representing the ligand

Type NoTemplate
Bonds []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondoptional

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

Atom1 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom1Union

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

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom1LigandAtom 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom1PolymerAtom 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom2Union

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

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom2LigandAtom 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom2PolymerAtom 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintUnionoptional

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

Accepts one of the following:
type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintPocketConstraint 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraint 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1Union

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

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

Chain ID

ResidueIndex int64

0-based residue index

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

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

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

Chain ID

ResidueIndex int64

0-based residue index

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

EpitopeLigandChains []stringoptional

Chain IDs of ligand entities that are part of the binding epitope. Ligands are marked as epitope in full (no residue-level selection).

EpitopeResidues map[string, []int64]optional

Polymer chain residues where binder contact is desired (the epitope). Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices.

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 ProteinLibraryScreenEstimateCostResponse struct{…}

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

Breakdown ProteinLibraryScreenEstimateCostResponseBreakdown

Cost breakdown for the billed application.

Application ProteinLibraryScreenEstimateCostResponseBreakdownApplication
Accepts one of the following:
const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationStructureAndBinding ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "structure_and_binding"
const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationSmallMoleculeDesign ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "small_molecule_design"
const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationSmallMoleculeLibraryScreen ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "small_molecule_library_screen"
const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationProteinDesign ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "protein_design"
const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationProteinLibraryScreen ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "protein_library_screen"
const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationAdme ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "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

Estimate cost for a protein 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.Protein.LibraryScreen.EstimateCost(context.TODO(), boltzapi.ProteinLibraryScreenEstimateCostParams{
    Proteins: []boltzapi.ProteinLibraryScreenEstimateCostParamsProtein{boltzapi.ProteinLibraryScreenEstimateCostParamsProtein{
      Entities: []boltzapi.ProteinLibraryScreenEstimateCostParamsProteinEntityUnion{boltzapi.ProteinLibraryScreenEstimateCostParamsProteinEntityUnion{
        OfProteinLibraryScreenEstimateCostsProteinEntityProteinEntity: &boltzapi.ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntity{
          ChainIDs: []string{"string"},
          Value: "value",
        },
      }},
    }},
    Target: boltzapi.ProteinLibraryScreenEstimateCostParamsTargetUnion{
      OfProteinLibraryScreenEstimateCostsTargetStructureTemplateTarget: &boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTarget{
        ChainSelection: map[string]boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion{
        "A": boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion{
          OfProteinLibraryScreenEstimateCostsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: &boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec{
            CropResidues: boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},
            },
          },
        },
        },
        Structure: boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureUnion{
          OfProteinLibraryScreenEstimateCostsTargetStructureTemplateTargetStructureURLSource: &boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
  })
  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"
}