# Protein

# Design

## Start

`protein.design.start(DesignStartParams**kwargs)  -> DesignStartResponse`

**post** `/compute/v1/protein/design`

Create a new design run that generates novel protein binder candidates

### Parameters

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

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

      - `class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec: …`

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

        - `chain_type: Literal["polymer"]`

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

          - `Iterable[int]`

          - `Literal["all"]`

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

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

              - `min: int`

                Minimum sequence length in residues

            - `end_index: int`

              0-indexed end residue (inclusive)

            - `start_index: int`

              0-indexed start residue (inclusive)

            - `type: Literal["replacement"]`

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

            - `design_length_range: BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

              Allowed sequence length range for designed regions

              - `max: int`

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

              - `min: int`

                Minimum sequence length in residues

            - `type: Literal["insertion"]`

              - `"insertion"`

      - `class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplateLigandChainSpec: …`

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

        - `chain_type: Literal["ligand"]`

          - `"ligand"`

    - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

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

      - `class BinderSpecificationStructureTemplateBinderSpecStructureURLSource: …`

        - `type: Literal["url"]`

          - `"url"`

        - `url: str`

      - `class BinderSpecificationStructureTemplateBinderSpecStructureCifBase64Source: …`

        - `data: str`

          Base64-encoded CIF file contents

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

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: Literal["base64"]`

          - `"base64"`

    - `type: Literal["structure_template"]`

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

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

      - `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"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"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"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs to assign to this entity

        - `type: Literal["rna"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs to assign to this entity

        - `type: Literal["dna"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"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"]`

          - `"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"]`

          - `"ligand_ccd"`

        - `value: str`

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

    - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

      - `"peptide"`

      - `"antibody"`

      - `"nanobody"`

      - `"custom_protein"`

    - `type: Literal["no_template"]`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

      - `atom2: BinderSpecificationNoTemplateBinderSpecBondAtom2`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

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

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

      - `"boltz_nanobody"`

      - `"boltz_antibody"`

    - `type: Literal["boltz_curated"]`

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

- `num_proteins: int`

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

- `target: Target`

  Target specification (structure template or template-free)

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

      - `class TargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

        - `chain_type: Literal["polymer"]`

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

          - `Iterable[int]`

            0-indexed residue indices to keep

          - `Literal["all"]`

            - `"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"]`

          - `"ligand"`

    - `structure: TargetStructureTemplateTargetStructure`

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

      - `class TargetStructureTemplateTargetStructureURLSource: …`

        - `type: Literal["url"]`

          - `"url"`

        - `url: str`

      - `class TargetStructureTemplateTargetStructureCifBase64Source: …`

        - `data: str`

          Base64-encoded CIF file contents

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

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: Literal["base64"]`

          - `"base64"`

    - `type: Literal["structure_template"]`

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

      - `class TargetNoTemplateTargetEntityProteinEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["protein"]`

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

          - `class TargetNoTemplateTargetEntityProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityRnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["rna"]`

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

          - `class TargetNoTemplateTargetEntityRnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityDnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["dna"]`

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

          - `class TargetNoTemplateTargetEntityDnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityLigandCcdEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this ligand

        - `type: Literal["ligand_ccd"]`

          - `"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"]`

          - `"ligand_smiles"`

        - `value: str`

          SMILES string representing the ligand

    - `type: Literal["no_template"]`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

      - `atom2: TargetNoTemplateTargetBondAtom2`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

    - `constraints: Optional[Iterable[TargetNoTemplateTargetConstraint]]`

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

      - `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"]`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `token2: TargetNoTemplateTargetConstraintContactConstraintToken2`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `type: Literal["contact"]`

          - `"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

- `workspace_id: Optional[str]`

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

### Returns

- `class DesignStartResponse: …`

  A protein design engine run that generates novel protein binders

  - `id: str`

    Unique ProteinDesignRun identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-design"]`

    Engine used for protein design

    - `"boltz-protein-design"`

  - `engine_version: str`

    Engine version used for protein design

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `binder_specification: InputBinderSpecification`

      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.

      - `class InputBinderSpecificationStructureTemplateBinderSpecResponse: …`

        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, InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelection]`

          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.

          - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

              - `Literal["all"]`

                - `"all"`

            - `design_motifs: Optional[List[InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotif]]`

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

              - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif: …`

                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: InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `max: int`

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

                  - `min: int`

                    Minimum sequence length in residues

                - `end_index: int`

                  0-indexed end residue (inclusive)

                - `start_index: int`

                  0-indexed start residue (inclusive)

                - `type: Literal["replacement"]`

                  - `"replacement"`

              - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif: …`

                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.

                - `design_length_range: InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `max: int`

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

                  - `min: int`

                    Minimum sequence length in residues

                - `type: Literal["insertion"]`

                  - `"insertion"`

          - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplateLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

          - `"peptide"`

          - `"antibody"`

          - `"nanobody"`

          - `"custom_protein"`

        - `structure: InputBinderSpecificationStructureTemplateBinderSpecResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

        - `rules: Optional[InputBinderSpecificationStructureTemplateBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

      - `class InputBinderSpecificationNoTemplateBinderSpecResponse: …`

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

        - `entities: List[InputBinderSpecificationNoTemplateBinderSpecResponseEntity]`

          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.

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponse: …`

            Protein binder entity with designed and/or fixed segments.

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["designed_protein"]`

              - `"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[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponse: …`

            A fixed protein entity whose sequence is not redesigned.

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

        - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

          - `"peptide"`

          - `"antibody"`

          - `"nanobody"`

          - `"custom_protein"`

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseBond]]`

          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: InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1`

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

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2`

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

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `rules: Optional[InputBinderSpecificationNoTemplateBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

      - `class InputBinderSpecificationBoltzCuratedBinderSpecResponse: …`

        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.

          - `"boltz_nanobody"`

          - `"boltz_antibody"`

        - `type: Literal["boltz_curated"]`

          - `"boltz_curated"`

        - `rules: Optional[InputBinderSpecificationBoltzCuratedBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

    - `num_proteins: int`

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

    - `target: InputTarget`

      Target specification (structure template or template-free)

      - `class InputTargetStructureTemplateTargetResponse: …`

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

        - `chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]`

          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.

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

                0-indexed residue indices to keep

              - `Literal["all"]`

                - `"all"`

            - `epitope_residues: Optional[List[int]]`

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

            - `flexible_residues: Optional[List[int]]`

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

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `structure: InputTargetStructureTemplateTargetResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

      - `class InputTargetNoTemplateTargetResponse: …`

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

        - `entities: List[InputTargetNoTemplateTargetResponseEntity]`

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

          - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

          - `class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]`

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

          - `atom1: InputTargetNoTemplateTargetResponseBondAtom1`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputTargetNoTemplateTargetResponseBondAtom2`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]`

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

          - `class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse: …`

            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, List[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"]`

              - `"pocket"`

            - `force: Optional[bool]`

              Whether to force the constraint

          - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse: …`

            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: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `type: Literal["contact"]`

              - `"contact"`

            - `force: Optional[bool]`

              Whether to force the constraint

        - `epitope_ligand_chains: Optional[List[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, List[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

    - `workspace_id: Optional[str]`

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

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_generated: int`

      Number of protein binders generated so far

    - `total_proteins_to_generate: int`

      Total number of protein binders requested

    - `latest_result_id: Optional[str]`

      ID of the most recently generated result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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.start(
    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.id)
```

## List

`protein.design.list(DesignListParams**kwargs)  -> SyncCursorPage[DesignListResponse]`

**get** `/compute/v1/protein/design`

List protein design runs, optionally filtered by workspace

### Parameters

- `after_id: Optional[str]`

  Return results after this ID

- `before_id: Optional[str]`

  Return results before this ID

- `limit: Optional[int]`

  Max items to return. Defaults to 100.

- `workspace_id: Optional[str]`

  Filter by workspace ID. Only used with admin API keys. If not provided, defaults to the workspace associated with the API key, or the default workspace for admin keys.

### Returns

- `class DesignListResponse: …`

  Summary of a protein design engine run (excludes input)

  - `id: str`

    Unique ProteinDesignRunSummary identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-design"]`

    Engine used for protein design

    - `"boltz-protein-design"`

  - `engine_version: str`

    Engine version used for protein design

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_generated: int`

      Number of protein binders generated so far

    - `total_proteins_to_generate: int`

      Total number of protein binders requested

    - `latest_result_id: Optional[str]`

      ID of the most recently generated result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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
)
page = client.protein.design.list()
page = page.data[0]
print(page.id)
```

## Retrieve

`protein.design.retrieve(strid, DesignRetrieveParams**kwargs)  -> DesignRetrieveResponse`

**get** `/compute/v1/protein/design/{id}`

Retrieve a design run by ID, including progress and status

### Parameters

- `id: str`

- `workspace_id: Optional[str]`

  Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `class DesignRetrieveResponse: …`

  A protein design engine run that generates novel protein binders

  - `id: str`

    Unique ProteinDesignRun identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-design"]`

    Engine used for protein design

    - `"boltz-protein-design"`

  - `engine_version: str`

    Engine version used for protein design

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `binder_specification: InputBinderSpecification`

      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.

      - `class InputBinderSpecificationStructureTemplateBinderSpecResponse: …`

        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, InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelection]`

          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.

          - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

              - `Literal["all"]`

                - `"all"`

            - `design_motifs: Optional[List[InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotif]]`

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

              - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif: …`

                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: InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `max: int`

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

                  - `min: int`

                    Minimum sequence length in residues

                - `end_index: int`

                  0-indexed end residue (inclusive)

                - `start_index: int`

                  0-indexed start residue (inclusive)

                - `type: Literal["replacement"]`

                  - `"replacement"`

              - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif: …`

                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.

                - `design_length_range: InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `max: int`

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

                  - `min: int`

                    Minimum sequence length in residues

                - `type: Literal["insertion"]`

                  - `"insertion"`

          - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplateLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

          - `"peptide"`

          - `"antibody"`

          - `"nanobody"`

          - `"custom_protein"`

        - `structure: InputBinderSpecificationStructureTemplateBinderSpecResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

        - `rules: Optional[InputBinderSpecificationStructureTemplateBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

      - `class InputBinderSpecificationNoTemplateBinderSpecResponse: …`

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

        - `entities: List[InputBinderSpecificationNoTemplateBinderSpecResponseEntity]`

          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.

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponse: …`

            Protein binder entity with designed and/or fixed segments.

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["designed_protein"]`

              - `"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[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponse: …`

            A fixed protein entity whose sequence is not redesigned.

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

        - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

          - `"peptide"`

          - `"antibody"`

          - `"nanobody"`

          - `"custom_protein"`

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseBond]]`

          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: InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1`

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

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2`

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

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `rules: Optional[InputBinderSpecificationNoTemplateBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

      - `class InputBinderSpecificationBoltzCuratedBinderSpecResponse: …`

        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.

          - `"boltz_nanobody"`

          - `"boltz_antibody"`

        - `type: Literal["boltz_curated"]`

          - `"boltz_curated"`

        - `rules: Optional[InputBinderSpecificationBoltzCuratedBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

    - `num_proteins: int`

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

    - `target: InputTarget`

      Target specification (structure template or template-free)

      - `class InputTargetStructureTemplateTargetResponse: …`

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

        - `chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]`

          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.

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

                0-indexed residue indices to keep

              - `Literal["all"]`

                - `"all"`

            - `epitope_residues: Optional[List[int]]`

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

            - `flexible_residues: Optional[List[int]]`

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

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `structure: InputTargetStructureTemplateTargetResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

      - `class InputTargetNoTemplateTargetResponse: …`

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

        - `entities: List[InputTargetNoTemplateTargetResponseEntity]`

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

          - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

          - `class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]`

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

          - `atom1: InputTargetNoTemplateTargetResponseBondAtom1`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputTargetNoTemplateTargetResponseBondAtom2`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]`

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

          - `class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse: …`

            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, List[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"]`

              - `"pocket"`

            - `force: Optional[bool]`

              Whether to force the constraint

          - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse: …`

            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: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `type: Literal["contact"]`

              - `"contact"`

            - `force: Optional[bool]`

              Whether to force the constraint

        - `epitope_ligand_chains: Optional[List[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, List[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

    - `workspace_id: Optional[str]`

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

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_generated: int`

      Number of protein binders generated so far

    - `total_proteins_to_generate: int`

      Total number of protein binders requested

    - `latest_result_id: Optional[str]`

      ID of the most recently generated result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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
)
design = client.protein.design.retrieve(
    id="id",
)
print(design.id)
```

## List Results

`protein.design.list_results(strid, DesignListResultsParams**kwargs)  -> SyncCursorPage[DesignListResultsResponse]`

**get** `/compute/v1/protein/design/{id}/results`

Retrieve paginated results from a protein design run

### Parameters

- `id: str`

- `after_id: Optional[str]`

  Return results after this ID

- `before_id: Optional[str]`

  Return results before this ID

- `limit: Optional[int]`

  Max results to return. Defaults to 100.

- `workspace_id: Optional[str]`

  Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `class DesignListResultsResponse: …`

  A single generated protein design

  - `id: str`

    Unique result ID

  - `artifacts: Artifacts`

    - `archive: ArtifactsArchive`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `structure: Optional[ArtifactsStructure]`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

  - `created_at: datetime`

  - `entities: List[Entity]`

    Entities of the designed binder complex. Includes both designed entities and fixed entities from the input.

    - `class EntityProteinEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["protein"]`

        - `"protein"`

      - `value: str`

        Amino acid sequence (one-letter codes)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityProteinEntityModification]]`

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

        - `class EntityProteinEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class EntityProteinEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class EntityRnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["rna"]`

        - `"rna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityRnaEntityModification]]`

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

        - `class EntityRnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class EntityRnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class EntityDnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["dna"]`

        - `"dna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityDnaEntityModification]]`

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

        - `class EntityDnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class EntityDnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class EntityLigandCcdEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_ccd"]`

        - `"ligand_ccd"`

      - `value: str`

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

    - `class EntityLigandSmilesEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_smiles"]`

        - `"ligand_smiles"`

      - `value: str`

        SMILES string representing the ligand

  - `metrics: Metrics`

    Structural and binding quality metrics for a designed protein binder

    - `binding_confidence: float`

      Confidence that the designed binder binds the target (0-1). Primary metric for hit discovery.

    - `helix_fraction: float`

      Fraction of the designed sequence forming alpha helices (0-1).

    - `iptm: float`

      Interface predicted TM score (0-1). Confidence in the protein-protein interface.

    - `loop_fraction: float`

      Fraction of the designed sequence in coil/loop regions (0-1).

    - `min_interaction_pae: float`

      Minimum predicted aligned error at the interface (Angstroms). Lower values indicate higher confidence.

    - `sheet_fraction: float`

      Fraction of the designed sequence forming beta sheets (0-1).

    - `structure_confidence: float`

      Confidence in the predicted 3D structure (0-1).

  - `warnings: Optional[List[Warning]]`

    Warnings about potential quality issues with this result.

    - `code: str`

      Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")

    - `message: str`

      Human-readable description of the warning

### Example

```python
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
)
page = client.protein.design.list_results(
    id="id",
)
page = page.data[0]
print(page.id)
```

## Stop

`protein.design.stop(strid)  -> DesignStopResponse`

**post** `/compute/v1/protein/design/{id}/stop`

Stop an in-progress protein design run early

### Parameters

- `id: str`

### Returns

- `class DesignStopResponse: …`

  A protein design engine run that generates novel protein binders

  - `id: str`

    Unique ProteinDesignRun identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-design"]`

    Engine used for protein design

    - `"boltz-protein-design"`

  - `engine_version: str`

    Engine version used for protein design

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `binder_specification: InputBinderSpecification`

      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.

      - `class InputBinderSpecificationStructureTemplateBinderSpecResponse: …`

        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, InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelection]`

          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.

          - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

              - `Literal["all"]`

                - `"all"`

            - `design_motifs: Optional[List[InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotif]]`

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

              - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif: …`

                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: InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `max: int`

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

                  - `min: int`

                    Minimum sequence length in residues

                - `end_index: int`

                  0-indexed end residue (inclusive)

                - `start_index: int`

                  0-indexed start residue (inclusive)

                - `type: Literal["replacement"]`

                  - `"replacement"`

              - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif: …`

                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.

                - `design_length_range: InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `max: int`

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

                  - `min: int`

                    Minimum sequence length in residues

                - `type: Literal["insertion"]`

                  - `"insertion"`

          - `class InputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplateLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

          - `"peptide"`

          - `"antibody"`

          - `"nanobody"`

          - `"custom_protein"`

        - `structure: InputBinderSpecificationStructureTemplateBinderSpecResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

        - `rules: Optional[InputBinderSpecificationStructureTemplateBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

      - `class InputBinderSpecificationNoTemplateBinderSpecResponse: …`

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

        - `entities: List[InputBinderSpecificationNoTemplateBinderSpecResponseEntity]`

          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.

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponse: …`

            Protein binder entity with designed and/or fixed segments.

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["designed_protein"]`

              - `"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[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponse: …`

            A fixed protein entity whose sequence is not redesigned.

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModification]]`

              Optional polymer modifications. Defaults to [] when omitted.

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

          - `class InputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs to assign to this entity

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

        - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

          - `"peptide"`

          - `"antibody"`

          - `"nanobody"`

          - `"custom_protein"`

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputBinderSpecificationNoTemplateBinderSpecResponseBond]]`

          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: InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1`

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

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2`

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

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `rules: Optional[InputBinderSpecificationNoTemplateBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

      - `class InputBinderSpecificationBoltzCuratedBinderSpecResponse: …`

        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.

          - `"boltz_nanobody"`

          - `"boltz_antibody"`

        - `type: Literal["boltz_curated"]`

          - `"boltz_curated"`

        - `rules: Optional[InputBinderSpecificationBoltzCuratedBinderSpecResponseRules]`

          Constraints applied during sequence design

          - `excluded_amino_acids: Optional[List[str]]`

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

          - `excluded_sequence_motifs: Optional[List[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.

    - `num_proteins: int`

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

    - `target: InputTarget`

      Target specification (structure template or template-free)

      - `class InputTargetStructureTemplateTargetResponse: …`

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

        - `chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]`

          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.

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

                0-indexed residue indices to keep

              - `Literal["all"]`

                - `"all"`

            - `epitope_residues: Optional[List[int]]`

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

            - `flexible_residues: Optional[List[int]]`

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

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `structure: InputTargetStructureTemplateTargetResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

      - `class InputTargetNoTemplateTargetResponse: …`

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

        - `entities: List[InputTargetNoTemplateTargetResponseEntity]`

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

          - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

          - `class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]`

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

          - `atom1: InputTargetNoTemplateTargetResponseBondAtom1`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputTargetNoTemplateTargetResponseBondAtom2`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]`

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

          - `class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse: …`

            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, List[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"]`

              - `"pocket"`

            - `force: Optional[bool]`

              Whether to force the constraint

          - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse: …`

            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: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `type: Literal["contact"]`

              - `"contact"`

            - `force: Optional[bool]`

              Whether to force the constraint

        - `epitope_ligand_chains: Optional[List[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, List[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

    - `workspace_id: Optional[str]`

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

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_generated: int`

      Number of protein binders generated so far

    - `total_proteins_to_generate: int`

      Total number of protein binders requested

    - `latest_result_id: Optional[str]`

      ID of the most recently generated result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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.stop(
    "id",
)
print(response.id)
```

## Delete Data

`protein.design.delete_data(strid)  -> DesignDeleteDataResponse`

**post** `/compute/v1/protein/design/{id}/delete-data`

Permanently delete the input, output, and result data associated with this design run. The design run record itself is retained with a `data_deleted_at` timestamp. This action is irreversible.

### Parameters

- `id: str`

### Returns

- `class DesignDeleteDataResponse: …`

  - `id: str`

    ID of the resource whose data was deleted

  - `data_deleted: Literal[true]`

    - `true`

  - `data_deleted_at: datetime`

    When the data was deleted

### Example

```python
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.delete_data(
    "id",
)
print(response.id)
```

## Estimate Cost

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

### Parameters

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

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

      - `class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec: …`

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

        - `chain_type: Literal["polymer"]`

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

          - `Iterable[int]`

          - `Literal["all"]`

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

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

              - `min: int`

                Minimum sequence length in residues

            - `end_index: int`

              0-indexed end residue (inclusive)

            - `start_index: int`

              0-indexed start residue (inclusive)

            - `type: Literal["replacement"]`

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

            - `design_length_range: BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

              Allowed sequence length range for designed regions

              - `max: int`

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

              - `min: int`

                Minimum sequence length in residues

            - `type: Literal["insertion"]`

              - `"insertion"`

      - `class BinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplateLigandChainSpec: …`

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

        - `chain_type: Literal["ligand"]`

          - `"ligand"`

    - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

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

      - `class BinderSpecificationStructureTemplateBinderSpecStructureURLSource: …`

        - `type: Literal["url"]`

          - `"url"`

        - `url: str`

      - `class BinderSpecificationStructureTemplateBinderSpecStructureCifBase64Source: …`

        - `data: str`

          Base64-encoded CIF file contents

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

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: Literal["base64"]`

          - `"base64"`

    - `type: Literal["structure_template"]`

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

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

      - `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"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"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"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs to assign to this entity

        - `type: Literal["rna"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs to assign to this entity

        - `type: Literal["dna"]`

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

          - `class BinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"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"]`

          - `"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"]`

          - `"ligand_ccd"`

        - `value: str`

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

    - `modality: Literal["peptide", "antibody", "nanobody", "custom_protein"]`

      - `"peptide"`

      - `"antibody"`

      - `"nanobody"`

      - `"custom_protein"`

    - `type: Literal["no_template"]`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

      - `atom2: BinderSpecificationNoTemplateBinderSpecBondAtom2`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

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

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

      - `"boltz_nanobody"`

      - `"boltz_antibody"`

    - `type: Literal["boltz_curated"]`

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

- `num_proteins: int`

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

- `target: Target`

  Target specification (structure template or template-free)

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

      - `class TargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

        - `chain_type: Literal["polymer"]`

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

          - `Iterable[int]`

            0-indexed residue indices to keep

          - `Literal["all"]`

            - `"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"]`

          - `"ligand"`

    - `structure: TargetStructureTemplateTargetStructure`

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

      - `class TargetStructureTemplateTargetStructureURLSource: …`

        - `type: Literal["url"]`

          - `"url"`

        - `url: str`

      - `class TargetStructureTemplateTargetStructureCifBase64Source: …`

        - `data: str`

          Base64-encoded CIF file contents

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

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: Literal["base64"]`

          - `"base64"`

    - `type: Literal["structure_template"]`

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

      - `class TargetNoTemplateTargetEntityProteinEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["protein"]`

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

          - `class TargetNoTemplateTargetEntityProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityRnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["rna"]`

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

          - `class TargetNoTemplateTargetEntityRnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityDnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["dna"]`

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

          - `class TargetNoTemplateTargetEntityDnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityLigandCcdEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this ligand

        - `type: Literal["ligand_ccd"]`

          - `"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"]`

          - `"ligand_smiles"`

        - `value: str`

          SMILES string representing the ligand

    - `type: Literal["no_template"]`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

      - `atom2: TargetNoTemplateTargetBondAtom2`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

    - `constraints: Optional[Iterable[TargetNoTemplateTargetConstraint]]`

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

      - `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"]`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `token2: TargetNoTemplateTargetConstraintContactConstraintToken2`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `type: Literal["contact"]`

          - `"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

- `workspace_id: Optional[str]`

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

### Returns

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

      - `"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

### Example

```python
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)
```

# Library Screen

## Start

`protein.library_screen.start(LibraryScreenStartParams**kwargs)  -> LibraryScreenStartResponse`

**post** `/compute/v1/protein/library-screen`

Screen a set of protein candidates against a target

### Parameters

- `proteins: Iterable[Protein]`

  List of protein entries to screen.

  - `entities: Iterable[ProteinEntity]`

    Entities that make up this protein complex

    - `class ProteinEntityProteinEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this entity

      - `type: Literal["protein"]`

        - `"protein"`

      - `value: str`

        Amino acid sequence (one-letter codes)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[Iterable[ProteinEntityProteinEntityModification]]`

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

        - `class ProteinEntityProteinEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class ProteinEntityProteinEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class ProteinEntityRnaEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this entity

      - `type: Literal["rna"]`

        - `"rna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[Iterable[ProteinEntityRnaEntityModification]]`

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

        - `class ProteinEntityRnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class ProteinEntityRnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class ProteinEntityDnaEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this entity

      - `type: Literal["dna"]`

        - `"dna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[Iterable[ProteinEntityDnaEntityModification]]`

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

        - `class ProteinEntityDnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class ProteinEntityDnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class ProteinEntityLigandCcdEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_ccd"]`

        - `"ligand_ccd"`

      - `value: str`

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

    - `class ProteinEntityLigandSmilesEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_smiles"]`

        - `"ligand_smiles"`

      - `value: str`

        SMILES string representing the ligand

  - `id: Optional[str]`

    Optional client-provided identifier for this entry

- `target: Target`

  Target specification (structure template or template-free)

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

      - `class TargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

        - `chain_type: Literal["polymer"]`

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

          - `Iterable[int]`

            0-indexed residue indices to keep

          - `Literal["all"]`

            - `"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"]`

          - `"ligand"`

    - `structure: TargetStructureTemplateTargetStructure`

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

      - `class TargetStructureTemplateTargetStructureURLSource: …`

        - `type: Literal["url"]`

          - `"url"`

        - `url: str`

      - `class TargetStructureTemplateTargetStructureCifBase64Source: …`

        - `data: str`

          Base64-encoded CIF file contents

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

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: Literal["base64"]`

          - `"base64"`

    - `type: Literal["structure_template"]`

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

      - `class TargetNoTemplateTargetEntityProteinEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["protein"]`

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

          - `class TargetNoTemplateTargetEntityProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityRnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["rna"]`

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

          - `class TargetNoTemplateTargetEntityRnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityDnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["dna"]`

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

          - `class TargetNoTemplateTargetEntityDnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityLigandCcdEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this ligand

        - `type: Literal["ligand_ccd"]`

          - `"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"]`

          - `"ligand_smiles"`

        - `value: str`

          SMILES string representing the ligand

    - `type: Literal["no_template"]`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

      - `atom2: TargetNoTemplateTargetBondAtom2`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

    - `constraints: Optional[Iterable[TargetNoTemplateTargetConstraint]]`

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

      - `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"]`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `token2: TargetNoTemplateTargetConstraintContactConstraintToken2`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `type: Literal["contact"]`

          - `"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

- `workspace_id: Optional[str]`

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

### Returns

- `class LibraryScreenStartResponse: …`

  A protein library screening engine run

  - `id: str`

    Unique ProteinLibraryScreen identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-screen"]`

    Engine used for protein library screen

    - `"boltz-protein-screen"`

  - `engine_version: str`

    Engine version used for protein library screen

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `proteins: InputProteins`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `target: InputTarget`

      Target specification (structure template or template-free)

      - `class InputTargetStructureTemplateTargetResponse: …`

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

        - `chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]`

          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.

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

                0-indexed residue indices to keep

              - `Literal["all"]`

                - `"all"`

            - `epitope_residues: Optional[List[int]]`

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

            - `flexible_residues: Optional[List[int]]`

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

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `structure: InputTargetStructureTemplateTargetResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

      - `class InputTargetNoTemplateTargetResponse: …`

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

        - `entities: List[InputTargetNoTemplateTargetResponseEntity]`

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

          - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

          - `class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]`

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

          - `atom1: InputTargetNoTemplateTargetResponseBondAtom1`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputTargetNoTemplateTargetResponseBondAtom2`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]`

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

          - `class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse: …`

            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, List[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"]`

              - `"pocket"`

            - `force: Optional[bool]`

              Whether to force the constraint

          - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse: …`

            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: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `type: Literal["contact"]`

              - `"contact"`

            - `force: Optional[bool]`

              Whether to force the constraint

        - `epitope_ligand_chains: Optional[List[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, List[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.

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_failed: int`

      Number of accepted proteins that reached terminal failure during screening.

    - `num_proteins_screened: int`

      Number of accepted proteins that produced usable screening results.

    - `total_proteins_to_screen: int`

      Total number of proteins accepted into the screening run.

    - `latest_result_id: Optional[str]`

      ID of the latest result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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.library_screen.start(
    proteins=[{
        "entities": [{
            "chain_ids": ["string"],
            "type": "protein",
            "value": "value",
        }]
    }],
    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.id)
```

## List

`protein.library_screen.list(LibraryScreenListParams**kwargs)  -> SyncCursorPage[LibraryScreenListResponse]`

**get** `/compute/v1/protein/library-screen`

List protein library screens, optionally filtered by workspace

### Parameters

- `after_id: Optional[str]`

  Return results after this ID

- `before_id: Optional[str]`

  Return results before this ID

- `limit: Optional[int]`

  Max items to return. Defaults to 100.

- `workspace_id: Optional[str]`

  Filter by workspace ID. Only used with admin API keys. If not provided, defaults to the workspace associated with the API key, or the default workspace for admin keys.

### Returns

- `class LibraryScreenListResponse: …`

  Summary of a protein library screening engine run (excludes input)

  - `id: str`

    Unique ProteinLibraryScreenSummary identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-screen"]`

    Engine used for protein library screen

    - `"boltz-protein-screen"`

  - `engine_version: str`

    Engine version used for protein library screen

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_failed: int`

      Number of accepted proteins that reached terminal failure during screening.

    - `num_proteins_screened: int`

      Number of accepted proteins that produced usable screening results.

    - `total_proteins_to_screen: int`

      Total number of proteins accepted into the screening run.

    - `latest_result_id: Optional[str]`

      ID of the latest result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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
)
page = client.protein.library_screen.list()
page = page.data[0]
print(page.id)
```

## Retrieve

`protein.library_screen.retrieve(strid, LibraryScreenRetrieveParams**kwargs)  -> LibraryScreenRetrieveResponse`

**get** `/compute/v1/protein/library-screen/{id}`

Retrieve a library screen by ID, including progress and status

### Parameters

- `id: str`

- `workspace_id: Optional[str]`

  Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `class LibraryScreenRetrieveResponse: …`

  A protein library screening engine run

  - `id: str`

    Unique ProteinLibraryScreen identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-screen"]`

    Engine used for protein library screen

    - `"boltz-protein-screen"`

  - `engine_version: str`

    Engine version used for protein library screen

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `proteins: InputProteins`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `target: InputTarget`

      Target specification (structure template or template-free)

      - `class InputTargetStructureTemplateTargetResponse: …`

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

        - `chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]`

          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.

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

                0-indexed residue indices to keep

              - `Literal["all"]`

                - `"all"`

            - `epitope_residues: Optional[List[int]]`

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

            - `flexible_residues: Optional[List[int]]`

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

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `structure: InputTargetStructureTemplateTargetResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

      - `class InputTargetNoTemplateTargetResponse: …`

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

        - `entities: List[InputTargetNoTemplateTargetResponseEntity]`

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

          - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

          - `class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]`

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

          - `atom1: InputTargetNoTemplateTargetResponseBondAtom1`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputTargetNoTemplateTargetResponseBondAtom2`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]`

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

          - `class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse: …`

            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, List[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"]`

              - `"pocket"`

            - `force: Optional[bool]`

              Whether to force the constraint

          - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse: …`

            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: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `type: Literal["contact"]`

              - `"contact"`

            - `force: Optional[bool]`

              Whether to force the constraint

        - `epitope_ligand_chains: Optional[List[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, List[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.

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_failed: int`

      Number of accepted proteins that reached terminal failure during screening.

    - `num_proteins_screened: int`

      Number of accepted proteins that produced usable screening results.

    - `total_proteins_to_screen: int`

      Total number of proteins accepted into the screening run.

    - `latest_result_id: Optional[str]`

      ID of the latest result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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
)
library_screen = client.protein.library_screen.retrieve(
    id="id",
)
print(library_screen.id)
```

## List Results

`protein.library_screen.list_results(strid, LibraryScreenListResultsParams**kwargs)  -> SyncCursorPage[LibraryScreenListResultsResponse]`

**get** `/compute/v1/protein/library-screen/{id}/results`

Retrieve paginated results from a protein library screen

### Parameters

- `id: str`

- `after_id: Optional[str]`

  Return results after this ID

- `before_id: Optional[str]`

  Return results before this ID

- `limit: Optional[int]`

  Max results to return. Defaults to 100.

- `workspace_id: Optional[str]`

  Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `class LibraryScreenListResultsResponse: …`

  Result for a single screened protein

  - `id: str`

    Unique result ID

  - `artifacts: Artifacts`

    - `archive: ArtifactsArchive`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `structure: ArtifactsStructure`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

  - `created_at: datetime`

  - `entities: List[Entity]`

    Entities of the screened complex. Includes both screened and fixed entities from the input.

    - `class EntityProteinEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["protein"]`

        - `"protein"`

      - `value: str`

        Amino acid sequence (one-letter codes)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityProteinEntityModification]]`

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

        - `class EntityProteinEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class EntityProteinEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class EntityRnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["rna"]`

        - `"rna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityRnaEntityModification]]`

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

        - `class EntityRnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class EntityRnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class EntityDnaEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this entity

      - `type: Literal["dna"]`

        - `"dna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[List[EntityDnaEntityModification]]`

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

        - `class EntityDnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class EntityDnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class EntityLigandCcdEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_ccd"]`

        - `"ligand_ccd"`

      - `value: str`

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

    - `class EntityLigandSmilesEntity: …`

      - `chain_ids: List[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_smiles"]`

        - `"ligand_smiles"`

      - `value: str`

        SMILES string representing the ligand

  - `metrics: Metrics`

    Structural and binding quality metrics for a screened protein

    - `binding_confidence: float`

      Confidence that the protein binds the target (0-1). Primary metric for hit discovery.

    - `helix_fraction: float`

      Fraction of the sequence forming alpha helices (0-1).

    - `iptm: float`

      Interface predicted TM score (0-1). Confidence in the protein-protein interface.

    - `loop_fraction: float`

      Fraction of the sequence in coil/loop regions (0-1).

    - `min_interaction_pae: float`

      Minimum predicted aligned error at the interface (Angstroms). Lower values indicate higher confidence.

    - `sheet_fraction: float`

      Fraction of the sequence forming beta sheets (0-1).

    - `structure_confidence: float`

      Confidence in the predicted 3D structure (0-1).

  - `external_id: Optional[str]`

    Client-provided identifier for this protein, if provided

  - `warnings: Optional[List[Warning]]`

    Warnings about potential quality issues with this result.

    - `code: str`

      Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")

    - `message: str`

      Human-readable description of the warning

### Example

```python
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
)
page = client.protein.library_screen.list_results(
    id="id",
)
page = page.data[0]
print(page.id)
```

## Stop

`protein.library_screen.stop(strid)  -> LibraryScreenStopResponse`

**post** `/compute/v1/protein/library-screen/{id}/stop`

Stop an in-progress protein library screen early

### Parameters

- `id: str`

### Returns

- `class LibraryScreenStopResponse: …`

  A protein library screening engine run

  - `id: str`

    Unique ProteinLibraryScreen identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

  - `engine: Literal["boltz-protein-screen"]`

    Engine used for protein library screen

    - `"boltz-protein-screen"`

  - `engine_version: str`

    Engine version used for protein library screen

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

      Additional field-level error details keyed by input path, when available.

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `proteins: InputProteins`

      - `url: str`

        URL to download the file

      - `url_expires_at: datetime`

        When the presigned URL expires

    - `target: InputTarget`

      Target specification (structure template or template-free)

      - `class InputTargetStructureTemplateTargetResponse: …`

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

        - `chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]`

          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.

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

            - `chain_type: Literal["polymer"]`

              - `"polymer"`

            - `crop_residues: Union[List[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.

              - `List[int]`

                0-indexed residue indices to keep

              - `Literal["all"]`

                - `"all"`

            - `epitope_residues: Optional[List[int]]`

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

            - `flexible_residues: Optional[List[int]]`

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

          - `class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec: …`

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

            - `chain_type: Literal["ligand"]`

              - `"ligand"`

        - `structure: InputTargetStructureTemplateTargetResponseStructure`

          - `url: str`

            URL to download the file

          - `url_expires_at: datetime`

            When the presigned URL expires

        - `type: Literal["structure_template"]`

          - `"structure_template"`

      - `class InputTargetNoTemplateTargetResponse: …`

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

        - `entities: List[InputTargetNoTemplateTargetResponseEntity]`

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

          - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["protein"]`

              - `"protein"`

            - `value: str`

              Amino acid sequence (one-letter codes)

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["rna"]`

              - `"rna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this entity

            - `type: Literal["dna"]`

              - `"dna"`

            - `value: str`

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

            - `cyclic: Optional[bool]`

              Whether the sequence is cyclic

            - `modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["ccd"]`

                  - `"ccd"`

                - `value: str`

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

              - `class InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse: …`

                - `residue_index: int`

                  0-based index of the residue to modify

                - `type: Literal["smiles"]`

                  - `"smiles"`

                - `value: str`

                  SMILES string for the modification

          - `class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_ccd"]`

              - `"ligand_ccd"`

            - `value: str`

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

          - `class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse: …`

            - `chain_ids: List[str]`

              Chain IDs for this ligand

            - `type: Literal["ligand_smiles"]`

              - `"ligand_smiles"`

            - `value: str`

              SMILES string representing the ligand

        - `type: Literal["no_template"]`

          - `"no_template"`

        - `bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]`

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

          - `atom1: InputTargetNoTemplateTargetResponseBondAtom1`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

          - `atom2: InputTargetNoTemplateTargetResponseBondAtom2`

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

            - `class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse: …`

              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"]`

                - `"ligand_atom"`

            - `class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse: …`

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

              - `type: Literal["polymer_atom"]`

                - `"polymer_atom"`

        - `constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]`

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

          - `class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse: …`

            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, List[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"]`

              - `"pocket"`

            - `force: Optional[bool]`

              Whether to force the constraint

          - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse: …`

            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: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2`

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

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse: …`

                - `chain_id: str`

                  Chain ID

                - `residue_index: int`

                  0-based residue index

                - `type: Literal["polymer_contact"]`

                  - `"polymer_contact"`

              - `class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse: …`

                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"]`

                  - `"ligand_contact"`

            - `type: Literal["contact"]`

              - `"contact"`

            - `force: Optional[bool]`

              Whether to force the constraint

        - `epitope_ligand_chains: Optional[List[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, List[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.

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `progress: Optional[Progress]`

    - `num_proteins_failed: int`

      Number of accepted proteins that reached terminal failure during screening.

    - `num_proteins_screened: int`

      Number of accepted proteins that produced usable screening results.

    - `total_proteins_to_screen: int`

      Total number of proteins accepted into the screening run.

    - `latest_result_id: Optional[str]`

      ID of the latest result

  - `started_at: Optional[datetime]`

  - `status: Literal["pending", "running", "succeeded", 2 more]`

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
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.library_screen.stop(
    "id",
)
print(response.id)
```

## Delete Data

`protein.library_screen.delete_data(strid)  -> LibraryScreenDeleteDataResponse`

**post** `/compute/v1/protein/library-screen/{id}/delete-data`

Permanently delete the input, output, and result data associated with this library screen. The library screen record itself is retained with a `data_deleted_at` timestamp. This action is irreversible.

### Parameters

- `id: str`

### Returns

- `class LibraryScreenDeleteDataResponse: …`

  - `id: str`

    ID of the resource whose data was deleted

  - `data_deleted: Literal[true]`

    - `true`

  - `data_deleted_at: datetime`

    When the data was deleted

### Example

```python
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.library_screen.delete_data(
    "id",
)
print(response.id)
```

## Estimate Cost

`protein.library_screen.estimate_cost(LibraryScreenEstimateCostParams**kwargs)  -> LibraryScreenEstimateCostResponse`

**post** `/compute/v1/protein/library-screen/estimate-cost`

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

### Parameters

- `proteins: Iterable[Protein]`

  List of protein entries to screen.

  - `entities: Iterable[ProteinEntity]`

    Entities that make up this protein complex

    - `class ProteinEntityProteinEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this entity

      - `type: Literal["protein"]`

        - `"protein"`

      - `value: str`

        Amino acid sequence (one-letter codes)

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[Iterable[ProteinEntityProteinEntityModification]]`

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

        - `class ProteinEntityProteinEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class ProteinEntityProteinEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class ProteinEntityRnaEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this entity

      - `type: Literal["rna"]`

        - `"rna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[Iterable[ProteinEntityRnaEntityModification]]`

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

        - `class ProteinEntityRnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class ProteinEntityRnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class ProteinEntityDnaEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this entity

      - `type: Literal["dna"]`

        - `"dna"`

      - `value: str`

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

      - `cyclic: Optional[bool]`

        Whether the sequence is cyclic

      - `modifications: Optional[Iterable[ProteinEntityDnaEntityModification]]`

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

        - `class ProteinEntityDnaEntityModificationCcdModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["ccd"]`

            - `"ccd"`

          - `value: str`

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

        - `class ProteinEntityDnaEntityModificationSmilesModification: …`

          - `residue_index: int`

            0-based index of the residue to modify

          - `type: Literal["smiles"]`

            - `"smiles"`

          - `value: str`

            SMILES string for the modification

    - `class ProteinEntityLigandCcdEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_ccd"]`

        - `"ligand_ccd"`

      - `value: str`

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

    - `class ProteinEntityLigandSmilesEntity: …`

      - `chain_ids: SequenceNotStr[str]`

        Chain IDs for this ligand

      - `type: Literal["ligand_smiles"]`

        - `"ligand_smiles"`

      - `value: str`

        SMILES string representing the ligand

  - `id: Optional[str]`

    Optional client-provided identifier for this entry

- `target: Target`

  Target specification (structure template or template-free)

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

      - `class TargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: …`

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

        - `chain_type: Literal["polymer"]`

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

          - `Iterable[int]`

            0-indexed residue indices to keep

          - `Literal["all"]`

            - `"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"]`

          - `"ligand"`

    - `structure: TargetStructureTemplateTargetStructure`

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

      - `class TargetStructureTemplateTargetStructureURLSource: …`

        - `type: Literal["url"]`

          - `"url"`

        - `url: str`

      - `class TargetStructureTemplateTargetStructureCifBase64Source: …`

        - `data: str`

          Base64-encoded CIF file contents

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

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: Literal["base64"]`

          - `"base64"`

    - `type: Literal["structure_template"]`

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

      - `class TargetNoTemplateTargetEntityProteinEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["protein"]`

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

          - `class TargetNoTemplateTargetEntityProteinEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityRnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["rna"]`

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

          - `class TargetNoTemplateTargetEntityRnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityDnaEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this entity

        - `type: Literal["dna"]`

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

          - `class TargetNoTemplateTargetEntityDnaEntityModificationCcdModification: …`

            - `residue_index: int`

              0-based index of the residue to modify

            - `type: Literal["ccd"]`

              - `"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

            - `type: Literal["smiles"]`

              - `"smiles"`

            - `value: str`

              SMILES string for the modification

      - `class TargetNoTemplateTargetEntityLigandCcdEntity: …`

        - `chain_ids: SequenceNotStr[str]`

          Chain IDs for this ligand

        - `type: Literal["ligand_ccd"]`

          - `"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"]`

          - `"ligand_smiles"`

        - `value: str`

          SMILES string representing the ligand

    - `type: Literal["no_template"]`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

      - `atom2: TargetNoTemplateTargetBondAtom2`

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

        - `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"]`

            - `"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

          - `type: Literal["polymer_atom"]`

            - `"polymer_atom"`

    - `constraints: Optional[Iterable[TargetNoTemplateTargetConstraint]]`

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

      - `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"]`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `token2: TargetNoTemplateTargetConstraintContactConstraintToken2`

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

          - `class TargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken: …`

            - `chain_id: str`

              Chain ID

            - `residue_index: int`

              0-based residue index

            - `type: Literal["polymer_contact"]`

              - `"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"]`

              - `"ligand_contact"`

        - `type: Literal["contact"]`

          - `"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

- `workspace_id: Optional[str]`

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

### Returns

- `class LibraryScreenEstimateCostResponse: …`

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

      - `"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

### Example

```python
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.library_screen.estimate_cost(
    proteins=[{
        "entities": [{
            "chain_ids": ["string"],
            "type": "protein",
            "value": "value",
        }]
    }],
    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)
```
