Skip to content
Go to Boltz API

Estimate cost for a protein design run

protein.design.estimate_cost(DesignEstimateCostParams**kwargs) -> DesignEstimateCostResponse
POST/compute/v1/protein/design/estimate-cost

Estimate the cost of a protein design run without creating any resource or consuming GPU.

ParametersExpand Collapse
binder_specification: BinderSpecification

Binder specification for protein design. Use no_template for sequence-defined binders, structure_template for uploaded binder structures, or boltz_curated for Boltz-managed nanobody and antibody defaults.

Accepts one of the following:
class BinderSpecificationStructureTemplateBinderSpec:

Binder specification starting from an existing 3D structure. Upload a CIF/PDB file and select which chains to include, which residues to keep, and which regions to redesign. Only chains included in chain_selection are part of the engine run.

chain_selection: Dict[str, BinderSpecificationStructureTemplateBinderSpecChainSelection]

Chains selected from the uploaded binder 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 (crop_residues). Omit design_motifs to include the chain as fixed scaffold context.

Accepts one of the following:
class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec:

Per-chain crop and design specification for a polymer chain in structure_template mode.

chain_type: Literal["polymer"]
crop_residues: Union[Iterable[int], Literal["all"]]

0-indexed residue indices to retain from this chain, or 'all' to keep all residues. Residues not listed are removed before design.

Accepts one of the following:
Iterable[int]
Literal["all"]
design_motifs: Optional[Iterable[BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotif]]

Optional motifs (replacement or insertion) defining which regions to redesign on this chain. Omit this field to include the chain as fixed scaffold context.

Accepts one of the following:
class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif:

Replace a contiguous region of the sequence with a designed segment. Residues from start_index to end_index (inclusive) are replaced with a new sequence of the specified length.

design_length_range: BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange

Allowed sequence length range for designed regions

max: int

Maximum sequence length in residues. Must be >= min.

minimum0
min: int

Minimum sequence length in residues

minimum0
end_index: int

0-indexed end residue (inclusive)

minimum0
start_index: int

0-indexed start residue (inclusive)

minimum0
type: Literal["replacement"]
class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif:

Insert a designed segment at a specific position in the sequence.

after_residue_index: int

0-indexed position after which to insert. Use -1 to insert before the first residue.

minimum-1
design_length_range: BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange

Allowed sequence length range for designed regions

max: int

Maximum sequence length in residues. Must be >= min.

minimum0
min: int

Minimum sequence length in residues

minimum0
type: Literal["insertion"]
class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplateLigandChainSpec:

Per-chain specification for a ligand chain in structure_template mode. The full ligand is always included.

chain_type: Literal["ligand"]
modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]
Accepts one of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
structure: BinderSpecificationStructureTemplateBinderSpecStructure

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:
class BinderSpecificationStructureTemplateBinderSpecStructureURLSource:
type: Literal["url"]
url: str
formaturi
class BinderSpecificationStructureTemplateBinderSpecStructureCifBase64Source:
data: str

Base64-encoded CIF file contents

media_type: Literal["chemical/x-cif"]

Must be chemical/x-cif for CIF files

type: Literal["base64"]
type: Literal["structure_template"]
rules: Optional[BinderSpecificationStructureTemplateBinderSpecRules]

Constraints applied during sequence design

excluded_amino_acids: Optional[SequenceNotStr[str]]

Single-letter amino acid codes to exclude from design (e.g. ['C', 'P'] to exclude cysteine and proline)

excluded_sequence_motifs: Optional[SequenceNotStr[str]]

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. "NGS", "NXS").

max_hydrophobic_fraction: Optional[float]

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
class BinderSpecificationNoTemplateBinderSpec:

Binder specification without a structural template. Define the binder from sequence components (fixed and designed segments) without providing a starting 3D structure.

entities: Iterable[BinderSpecificationNoTemplateBinderSpecEntity]

Binder entities composing the design. At least one must be a designed_protein entity. Additional fixed entities (RNA, DNA, ligands) can be included as part of the complex.

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntity:

Protein binder entity with designed and/or fixed segments.

chain_ids: SequenceNotStr[str]

Chain IDs to assign to this entity

type: Literal["designed_protein"]
value: str

Binder sequence specification. Fixed amino acids are written as literal single-letter codes. Designed regions are written as a length (fixed) or a length range (min..max). Example: "MKTAYI5..10VKSHFSRQ" means fixed MKTAYI, then 5-10 designed residues, then fixed VKSHFSRQ. "20" means 20 fully designed residues. "ACDE8GHI" means fixed ACDE, then 8 designed residues, then fixed GHI.

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[BinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModification]]

Optional polymer modifications. Defaults to [] when omitted.

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class BinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class BinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntity:

A fixed protein entity whose sequence is not redesigned.

chain_ids: SequenceNotStr[str]

Chain IDs to assign to this entity

type: Literal["protein"]
value: str

Amino acid sequence (one-letter codes)

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[BinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModification]]

Optional polymer modifications. Defaults to [] when omitted.

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class BinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntity:
chain_ids: SequenceNotStr[str]

Chain IDs to assign to this entity

type: Literal["rna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModification]]

Optional polymer modifications. Defaults to [] when omitted.

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntity:
chain_ids: SequenceNotStr[str]

Chain IDs to assign to this entity

type: Literal["dna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModification]]

Optional polymer modifications. Defaults to [] when omitted.

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class BinderSpecificationNoTemplateBinderSpecEntityFixedLigandSmilesEntity:
chain_ids: SequenceNotStr[str]

Chain IDs to assign to this entity

type: Literal["ligand_smiles"]
value: str

SMILES string representing the ligand

class BinderSpecificationNoTemplateBinderSpecEntityFixedLigandCcdEntity:
chain_ids: SequenceNotStr[str]

Chain IDs to assign to this entity

type: Literal["ligand_ccd"]
value: str

CCD code from RCSB PDB (e.g. 'ATP', 'ADP')

modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]
Accepts one of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
type: Literal["no_template"]
bonds: Optional[Iterable[BinderSpecificationNoTemplateBinderSpecBond]]

Covalent bond constraints between atoms in the binder complex. If defining bonds where an atom is part of a designed protein chain, assume residue indices count designed regions as the minimum length. Example: designed protein "1..3C1..2", "C" is residue 1 (0-indexed) of the designed protein.

atom1: BinderSpecificationNoTemplateBinderSpecBondAtom1

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

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecBondAtom1LigandAtom:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class BinderSpecificationNoTemplateBinderSpecBondAtom1PolymerAtom:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
atom2: BinderSpecificationNoTemplateBinderSpecBondAtom2

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

Accepts one of the following:
class BinderSpecificationNoTemplateBinderSpecBondAtom2LigandAtom:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class BinderSpecificationNoTemplateBinderSpecBondAtom2PolymerAtom:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
rules: Optional[BinderSpecificationNoTemplateBinderSpecRules]

Constraints applied during sequence design

excluded_amino_acids: Optional[SequenceNotStr[str]]

Single-letter amino acid codes to exclude from design (e.g. ['C', 'P'] to exclude cysteine and proline)

excluded_sequence_motifs: Optional[SequenceNotStr[str]]

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. "NGS", "NXS").

max_hydrophobic_fraction: Optional[float]

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
class BinderSpecificationBoltzCuratedBinderSpec:

Boltz-managed curated binder specification. Choose a curated nanobody or antibody family and Boltz will select from maintained template lists during design. The curated lists are managed by Boltz and may be updated over time to improve quality and coverage.

binder: Literal["boltz_nanobody", "boltz_antibody"]

Boltz-managed curated binder family. Boltz maintains and may update the underlying template lists on behalf of customers.

Accepts one of the following:
"boltz_nanobody"
"boltz_antibody"
type: Literal["boltz_curated"]
rules: Optional[BinderSpecificationBoltzCuratedBinderSpecRules]

Constraints applied during sequence design

excluded_amino_acids: Optional[SequenceNotStr[str]]

Single-letter amino acid codes to exclude from design (e.g. ['C', 'P'] to exclude cysteine and proline)

excluded_sequence_motifs: Optional[SequenceNotStr[str]]

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. "NGS", "NXS").

max_hydrophobic_fraction: Optional[float]

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
num_proteins: int

Number of protein designs to generate. Must be between 10 and 1,000,000.

minimum10
maximum1000000
target: Target

Target specification (structure template or template-free)

Accepts one of the following:
class TargetStructureTemplateTarget:

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

chain_selection: Dict[str, TargetStructureTemplateTargetChainSelection]

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:
class TargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec:

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

chain_type: Literal["polymer"]
crop_residues: Union[Iterable[int], Literal["all"]]

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:
Iterable[int]

0-indexed residue indices to keep

Literal["all"]
epitope_residues: Optional[Iterable[int]]

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

flexible_residues: Optional[Iterable[int]]

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

class TargetStructureTemplateTargetChainSelectionStructureTemplateTargetLigandChainSpec:

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

chain_type: Literal["ligand"]
structure: TargetStructureTemplateTargetStructure

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:
class TargetStructureTemplateTargetStructureURLSource:
type: Literal["url"]
url: str
formaturi
class TargetStructureTemplateTargetStructureCifBase64Source:
data: str

Base64-encoded CIF file contents

media_type: Literal["chemical/x-cif"]

Must be chemical/x-cif for CIF files

type: Literal["base64"]
type: Literal["structure_template"]
class TargetNoTemplateTarget:

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

entities: Iterable[TargetNoTemplateTargetEntity]

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

Accepts one of the following:
class TargetNoTemplateTargetEntityProteinEntity:
chain_ids: SequenceNotStr[str]

Chain IDs for this entity

type: Literal["protein"]
value: str

Amino acid sequence (one-letter codes)

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[TargetNoTemplateTargetEntityProteinEntityModification]]

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

Accepts one of the following:
class TargetNoTemplateTargetEntityProteinEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class TargetNoTemplateTargetEntityProteinEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class TargetNoTemplateTargetEntityRnaEntity:
chain_ids: SequenceNotStr[str]

Chain IDs for this entity

type: Literal["rna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[TargetNoTemplateTargetEntityRnaEntityModification]]

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

Accepts one of the following:
class TargetNoTemplateTargetEntityRnaEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class TargetNoTemplateTargetEntityRnaEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class TargetNoTemplateTargetEntityDnaEntity:
chain_ids: SequenceNotStr[str]

Chain IDs for this entity

type: Literal["dna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[Iterable[TargetNoTemplateTargetEntityDnaEntityModification]]

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

Accepts one of the following:
class TargetNoTemplateTargetEntityDnaEntityModificationCcdModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]
value: str

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

class TargetNoTemplateTargetEntityDnaEntityModificationSmilesModification:
residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["smiles"]
value: str

SMILES string for the modification

class TargetNoTemplateTargetEntityLigandCcdEntity:
chain_ids: SequenceNotStr[str]

Chain IDs for this ligand

type: Literal["ligand_ccd"]
value: str

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

class TargetNoTemplateTargetEntityLigandSmilesEntity:
chain_ids: SequenceNotStr[str]

Chain IDs for this ligand

type: Literal["ligand_smiles"]
value: str

SMILES string representing the ligand

type: Literal["no_template"]
bonds: Optional[Iterable[TargetNoTemplateTargetBond]]

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

atom1: TargetNoTemplateTargetBondAtom1

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

Accepts one of the following:
class TargetNoTemplateTargetBondAtom1LigandAtom:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class TargetNoTemplateTargetBondAtom1PolymerAtom:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
atom2: TargetNoTemplateTargetBondAtom2

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

Accepts one of the following:
class TargetNoTemplateTargetBondAtom2LigandAtom:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class TargetNoTemplateTargetBondAtom2PolymerAtom:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
constraints: Optional[Iterable[TargetNoTemplateTargetConstraint]]

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

Accepts one of the following:
class TargetNoTemplateTargetConstraintPocketConstraint:

Constrains the binder to interact with specific pocket residues on the target.

binder_chain_id: str

Chain ID of the binder molecule

contact_residues: Dict[str, Iterable[int]]

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.

max_distance_angstrom: float

Maximum allowed distance in Angstroms between binder and pocket residues. Typical range: 4-8 A.

type: Literal["pocket"]
force: Optional[bool]

Whether to force the constraint

class TargetNoTemplateTargetConstraintContactConstraint:

Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

max_distance_angstrom: float

Maximum distance in Angstroms

token1: TargetNoTemplateTargetConstraintContactConstraintToken1

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

Accepts one of the following:
class TargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class TargetNoTemplateTargetConstraintContactConstraintToken1LigandContactToken:

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

atom_name: str

Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

chain_id: str

Chain ID

type: Literal["ligand_contact"]
token2: TargetNoTemplateTargetConstraintContactConstraintToken2

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

Accepts one of the following:
class TargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class TargetNoTemplateTargetConstraintContactConstraintToken2LigandContactToken:

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

atom_name: str

Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

chain_id: str

Chain ID

type: Literal["ligand_contact"]
type: Literal["contact"]
force: Optional[bool]

Whether to force the constraint

epitope_ligand_chains: Optional[SequenceNotStr[str]]

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

epitope_residues: Optional[Dict[str, Iterable[int]]]

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.

idempotency_key: Optional[str]

Client-provided key to prevent duplicate submissions on retries

maxLength255
workspace_id: Optional[str]

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

ReturnsExpand Collapse
class DesignEstimateCostResponse:

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

breakdown: Breakdown

Cost breakdown for the billed application.

application: Literal["structure_and_binding", "small_molecule_design", "small_molecule_library_screen", 3 more]
Accepts one of the following:
"structure_and_binding"
"small_molecule_design"
"small_molecule_library_screen"
"protein_design"
"protein_library_screen"
"adme"
cost_per_unit_usd: str

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.

num_units: int

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: str
estimated_cost_usd: str

Estimated total cost as a decimal string

Estimate cost for a protein design run

import os
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
response = client.protein.design.estimate_cost(
    binder_specification={
        "chain_selection": {
            "B": {
                "chain_type": "polymer",
                "crop_residues": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            }
        },
        "modality": "peptide",
        "structure": {
            "type": "url",
            "url": "https://example.com",
        },
        "type": "structure_template",
    },
    num_proteins=10,
    target={
        "chain_selection": {
            "A": {
                "chain_type": "polymer",
                "crop_residues": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
            }
        },
        "structure": {
            "type": "url",
            "url": "https://example.com",
        },
        "type": "structure_template",
    },
)
print(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"
}