# Design

## Start

`client.Protein.Design.Start(ctx, body) (*ProteinDesignStartResponse, error)`

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

Create a new design run that generates novel protein binder candidates

### Parameters

- `body ProteinDesignStartParams`

  - `BinderSpecification param.Field[ProteinDesignStartParamsBinderSpecificationUnion]`

    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.

    - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpec struct{…}`

      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.

      - `ChainSelection map[string, ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionUnion]`

        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.

        - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec struct{…}`

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

          - `ChainType Polymer`

            - `const PolymerPolymer Polymer = "polymer"`

          - `CropResidues ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion`

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

            - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecCropResiduesArray []int64`

            - `type All string`

              - `const AllAll All = "all"`

          - `DesignMotifs []ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifUnion`

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

            - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif struct{…}`

              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.

              - `DesignLengthRange ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                Allowed sequence length range for designed regions

                - `Max int64`

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

                - `Min int64`

                  Minimum sequence length in residues

              - `EndIndex int64`

                0-indexed end residue (inclusive)

              - `StartIndex int64`

                0-indexed start residue (inclusive)

              - `Type Replacement`

                - `const ReplacementReplacement Replacement = "replacement"`

            - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif struct{…}`

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

              - `AfterResidueIndex int64`

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

              - `DesignLengthRange ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                Allowed sequence length range for designed regions

                - `Max int64`

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

                - `Min int64`

                  Minimum sequence length in residues

              - `Type Insertion`

                - `const InsertionInsertion Insertion = "insertion"`

        - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplateLigandChainSpec struct{…}`

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

          - `ChainType Ligand`

            - `const LigandLigand Ligand = "ligand"`

      - `Modality ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModality`

        - `const ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModalityPeptide ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModality = "peptide"`

        - `const ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModalityAntibody ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModality = "antibody"`

        - `const ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModalityNanobody ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModality = "nanobody"`

        - `const ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModalityCustomProtein ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModality = "custom_protein"`

      - `Structure ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecStructureUnion`

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

        - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecStructureURLSource struct{…}`

          - `Type URL`

            - `const URLURL URL = "url"`

          - `URL string`

        - `type ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecStructureCifBase64Source struct{…}`

          - `Data string`

            Base64-encoded CIF file contents

          - `MediaType ChemicalXCif`

            Must be chemical/x-cif for CIF files

            - `const ChemicalXCifChemicalXCif ChemicalXCif = "chemical/x-cif"`

          - `Type Base64`

            - `const Base64Base64 Base64 = "base64"`

      - `Type StructureTemplate`

        - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `Rules ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecRules`

        Constraints applied during sequence design

        - `ExcludedAminoAcids []string`

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

        - `ExcludedSequenceMotifs []string`

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

        - `MaxHydrophobicFraction float64`

          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.

    - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpec struct{…}`

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

      - `Entities []ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityUnion`

        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.

        - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntity struct{…}`

          Protein binder entity with designed and/or fixed segments.

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type DesignedProtein`

            - `const DesignedProteinDesignedProtein DesignedProtein = "designed_protein"`

          - `Value string`

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

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntity struct{…}`

          A fixed protein entity whose sequence is not redesigned.

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type Protein`

            - `const ProteinProtein Protein = "protein"`

          - `Value string`

            Amino acid sequence (one-letter codes)

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type Rna`

            - `const RnaRna Rna = "rna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type Dna`

            - `const DnaDna Dna = "dna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedLigandSmilesEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type LigandSmiles`

            - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

          - `Value string`

            SMILES string representing the ligand

        - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecEntityFixedLigandCcdEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type LigandCcd`

            - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

          - `Value string`

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

      - `Modality ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModality`

        - `const ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModalityPeptide ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModality = "peptide"`

        - `const ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModalityAntibody ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModality = "antibody"`

        - `const ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModalityNanobody ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModality = "nanobody"`

        - `const ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModalityCustomProtein ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecModality = "custom_protein"`

      - `Type NoTemplate`

        - `const NoTemplateNoTemplate NoTemplate = "no_template"`

      - `Bonds []ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecBond`

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

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

          - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecBondAtom1LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecBondAtom1PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Atom2 ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecBondAtom2Union`

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

          - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecBondAtom2LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecBondAtom2PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

      - `Rules ProteinDesignStartParamsBinderSpecificationNoTemplateBinderSpecRules`

        Constraints applied during sequence design

        - `ExcludedAminoAcids []string`

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

        - `ExcludedSequenceMotifs []string`

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

        - `MaxHydrophobicFraction float64`

          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.

    - `type ProteinDesignStartParamsBinderSpecificationBoltzCuratedBinderSpec struct{…}`

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

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

        - `const ProteinDesignStartParamsBinderSpecificationBoltzCuratedBinderSpecBinderBoltzNanobody ProteinDesignStartParamsBinderSpecificationBoltzCuratedBinderSpecBinder = "boltz_nanobody"`

        - `const ProteinDesignStartParamsBinderSpecificationBoltzCuratedBinderSpecBinderBoltzAntibody ProteinDesignStartParamsBinderSpecificationBoltzCuratedBinderSpecBinder = "boltz_antibody"`

      - `Type BoltzCurated`

        - `const BoltzCuratedBoltzCurated BoltzCurated = "boltz_curated"`

      - `Rules ProteinDesignStartParamsBinderSpecificationBoltzCuratedBinderSpecRules`

        Constraints applied during sequence design

        - `ExcludedAminoAcids []string`

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

        - `ExcludedSequenceMotifs []string`

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

        - `MaxHydrophobicFraction float64`

          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.

  - `NumProteins param.Field[int64]`

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

  - `Target param.Field[ProteinDesignStartParamsTargetUnion]`

    Target specification (structure template or template-free)

    - `type ProteinDesignStartParamsTargetStructureTemplateTarget struct{…}`

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

      - `ChainSelection map[string, ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionUnion]`

        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.

        - `type ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

          - `ChainType Polymer`

            - `const PolymerPolymer Polymer = "polymer"`

          - `CropResidues ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

            - `type ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64`

              0-indexed residue indices to keep

            - `type All string`

              - `const AllAll All = "all"`

          - `EpitopeResidues []int64`

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

          - `FlexibleResidues []int64`

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

        - `type ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetLigandChainSpec struct{…}`

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

          - `ChainType Ligand`

            - `const LigandLigand Ligand = "ligand"`

      - `Structure ProteinDesignStartParamsTargetStructureTemplateTargetStructureUnion`

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

        - `type ProteinDesignStartParamsTargetStructureTemplateTargetStructureURLSource struct{…}`

          - `Type URL`

            - `const URLURL URL = "url"`

          - `URL string`

        - `type ProteinDesignStartParamsTargetStructureTemplateTargetStructureCifBase64Source struct{…}`

          - `Data string`

            Base64-encoded CIF file contents

          - `MediaType ChemicalXCif`

            Must be chemical/x-cif for CIF files

            - `const ChemicalXCifChemicalXCif ChemicalXCif = "chemical/x-cif"`

          - `Type Base64`

            - `const Base64Base64 Base64 = "base64"`

      - `Type StructureTemplate`

        - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

    - `type ProteinDesignStartParamsTargetNoTemplateTarget struct{…}`

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

      - `Entities []ProteinDesignStartParamsTargetNoTemplateTargetEntityUnion`

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

        - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityProteinEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this entity

          - `Type Protein`

            - `const ProteinProtein Protein = "protein"`

          - `Value string`

            Amino acid sequence (one-letter codes)

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsTargetNoTemplateTargetEntityProteinEntityModificationUnion`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityRnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this entity

          - `Type Rna`

            - `const RnaRna Rna = "rna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsTargetNoTemplateTargetEntityRnaEntityModificationUnion`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityRnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityRnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityDnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this entity

          - `Type Dna`

            - `const DnaDna Dna = "dna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignStartParamsTargetNoTemplateTargetEntityDnaEntityModificationUnion`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityDnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityDnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityLigandCcdEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this ligand

          - `Type LigandCcd`

            - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

          - `Value string`

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

        - `type ProteinDesignStartParamsTargetNoTemplateTargetEntityLigandSmilesEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this ligand

          - `Type LigandSmiles`

            - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

          - `Value string`

            SMILES string representing the ligand

      - `Type NoTemplate`

        - `const NoTemplateNoTemplate NoTemplate = "no_template"`

      - `Bonds []ProteinDesignStartParamsTargetNoTemplateTargetBond`

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

        - `Atom1 ProteinDesignStartParamsTargetNoTemplateTargetBondAtom1Union`

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

          - `type ProteinDesignStartParamsTargetNoTemplateTargetBondAtom1LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignStartParamsTargetNoTemplateTargetBondAtom1PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Atom2 ProteinDesignStartParamsTargetNoTemplateTargetBondAtom2Union`

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

          - `type ProteinDesignStartParamsTargetNoTemplateTargetBondAtom2LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignStartParamsTargetNoTemplateTargetBondAtom2PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

      - `Constraints []ProteinDesignStartParamsTargetNoTemplateTargetConstraintUnion`

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

        - `type ProteinDesignStartParamsTargetNoTemplateTargetConstraintPocketConstraint struct{…}`

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

          - `BinderChainID string`

            Chain ID of the binder molecule

          - `ContactResidues map[string, []int64]`

            Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

          - `MaxDistanceAngstrom float64`

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

          - `Type Pocket`

            - `const PocketPocket Pocket = "pocket"`

          - `Force bool`

            Whether to force the constraint

        - `type ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraint struct{…}`

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

          - `MaxDistanceAngstrom float64`

            Maximum distance in Angstroms

          - `Token1 ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraintToken1Union`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraintToken1LigandContactToken struct{…}`

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

              - `AtomName string`

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

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Token2 ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraintToken2Union`

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

            - `type ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinDesignStartParamsTargetNoTemplateTargetConstraintContactConstraintToken2LigandContactToken struct{…}`

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

              - `AtomName string`

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

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Type Contact`

            - `const ContactContact Contact = "contact"`

          - `Force bool`

            Whether to force the constraint

      - `EpitopeLigandChains []string`

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

      - `EpitopeResidues map[string, []int64]`

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

  - `IdempotencyKey param.Field[string]`

    Client-provided key to prevent duplicate submissions on retries

  - `WorkspaceID param.Field[string]`

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

### Returns

- `type ProteinDesignStartResponse struct{…}`

  A protein design engine run that generates novel protein binders

  - `ID string`

    Unique ProteinDesignRun identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

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

  - `Engine BoltzProteinDesign`

    Engine used for protein design

    - `const BoltzProteinDesignBoltzProteinDesign BoltzProteinDesign = "boltz-protein-design"`

  - `EngineVersion string`

    Engine version used for protein design

  - `Error ProteinDesignStartResponseError`

    - `Code string`

      Machine-readable error code

    - `Message string`

      Human-readable error message

    - `Details any`

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

  - `Input ProteinDesignStartResponseInput`

    Pipeline input (null if data deleted)

    - `BinderSpecification ProteinDesignStartResponseInputBinderSpecificationUnion`

      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.

      - `type ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponse struct{…}`

        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.

        - `ChainSelection map[string, ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionUnion]`

          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.

          - `type ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion`

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

              - `type ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecCropResiduesArray []int64`

              - `type All string`

                - `const AllAll All = "all"`

            - `DesignMotifs []ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifUnion`

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

              - `type ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif struct{…}`

                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.

                - `DesignLengthRange ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `Max int64`

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

                  - `Min int64`

                    Minimum sequence length in residues

                - `EndIndex int64`

                  0-indexed end residue (inclusive)

                - `StartIndex int64`

                  0-indexed start residue (inclusive)

                - `Type Replacement`

                  - `const ReplacementReplacement Replacement = "replacement"`

              - `type ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif struct{…}`

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

                - `AfterResidueIndex int64`

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

                - `DesignLengthRange ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `Max int64`

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

                  - `Min int64`

                    Minimum sequence length in residues

                - `Type Insertion`

                  - `const InsertionInsertion Insertion = "insertion"`

          - `type ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplateLigandChainSpec struct{…}`

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

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Modality ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality`

          - `const ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityPeptide ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "peptide"`

          - `const ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityAntibody ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "antibody"`

          - `const ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityNanobody ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "nanobody"`

          - `const ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityCustomProtein ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "custom_protein"`

        - `Structure ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

        - `Rules ProteinDesignStartResponseInputBinderSpecificationStructureTemplateBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

      - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponse struct{…}`

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

        - `Entities []ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityUnion`

          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.

          - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponse struct{…}`

            Protein binder entity with designed and/or fixed segments.

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type DesignedProtein`

              - `const DesignedProteinDesignedProtein DesignedProtein = "designed_protein"`

            - `Value string`

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

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponse struct{…}`

            A fixed protein entity whose sequence is not redesigned.

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

          - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

        - `Modality ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality`

          - `const ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityPeptide ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "peptide"`

          - `const ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityAntibody ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "antibody"`

          - `const ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityNanobody ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "nanobody"`

          - `const ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityCustomProtein ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "custom_protein"`

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseBond`

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

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

            - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2Union`

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

            - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Rules ProteinDesignStartResponseInputBinderSpecificationNoTemplateBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

      - `type ProteinDesignStartResponseInputBinderSpecificationBoltzCuratedBinderSpecResponse struct{…}`

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

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

          - `const ProteinDesignStartResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinderBoltzNanobody ProteinDesignStartResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinder = "boltz_nanobody"`

          - `const ProteinDesignStartResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinderBoltzAntibody ProteinDesignStartResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinder = "boltz_antibody"`

        - `Type BoltzCurated`

          - `const BoltzCuratedBoltzCurated BoltzCurated = "boltz_curated"`

        - `Rules ProteinDesignStartResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

    - `NumProteins int64`

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

    - `Target ProteinDesignStartResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinDesignStartResponseInputTargetStructureTemplateTargetResponse struct{…}`

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

        - `ChainSelection map[string, ProteinDesignStartResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

          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.

          - `type ProteinDesignStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinDesignStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

              - `type ProteinDesignStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64`

                0-indexed residue indices to keep

              - `type All string`

                - `const AllAll All = "all"`

            - `EpitopeResidues []int64`

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

            - `FlexibleResidues []int64`

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

          - `type ProteinDesignStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec struct{…}`

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

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Structure ProteinDesignStartResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponse struct{…}`

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

        - `Entities []ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityUnion`

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

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationUnion`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationUnion`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationUnion`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBond`

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

          - `Atom1 ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

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

            - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

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

            - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Constraints []ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintUnion`

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

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse struct{…}`

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

            - `BinderChainID string`

              Chain ID of the binder molecule

            - `ContactResidues map[string, []int64]`

              Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

            - `MaxDistanceAngstrom float64`

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

            - `Type Pocket`

              - `const PocketPocket Pocket = "pocket"`

            - `Force bool`

              Whether to force the constraint

          - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

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

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

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

                - `AtomName string`

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

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

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

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinDesignStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

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

                - `AtomName string`

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

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Type Contact`

              - `const ContactContact Contact = "contact"`

            - `Force bool`

              Whether to force the constraint

        - `EpitopeLigandChains []string`

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

        - `EpitopeResidues map[string, []int64]`

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

    - `IdempotencyKey string`

      Client-provided key to prevent duplicate submissions on retries

    - `WorkspaceID string`

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

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinDesignStartResponseProgress`

    - `NumProteinsGenerated int64`

      Number of protein binders generated so far

    - `TotalProteinsToGenerate int64`

      Total number of protein binders requested

    - `LatestResultID string`

      ID of the most recently generated result

  - `StartedAt Time`

  - `Status ProteinDesignStartResponseStatus`

    - `const ProteinDesignStartResponseStatusPending ProteinDesignStartResponseStatus = "pending"`

    - `const ProteinDesignStartResponseStatusRunning ProteinDesignStartResponseStatus = "running"`

    - `const ProteinDesignStartResponseStatusSucceeded ProteinDesignStartResponseStatus = "succeeded"`

    - `const ProteinDesignStartResponseStatusFailed ProteinDesignStartResponseStatus = "failed"`

    - `const ProteinDesignStartResponseStatusStopped ProteinDesignStartResponseStatus = "stopped"`

  - `StoppedAt Time`

  - `WorkspaceID string`

    Workspace ID

  - `IdempotencyKey string`

    Client-provided idempotency key

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Protein.Design.Start(context.TODO(), boltzapi.ProteinDesignStartParams{
    BinderSpecification: boltzapi.ProteinDesignStartParamsBinderSpecificationUnion{
      OfProteinDesignStartsBinderSpecificationStructureTemplateBinderSpec: &boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpec{
        ChainSelection: map[string]boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionUnion{
        "B": boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionUnion{
          OfProteinDesignStartsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec: &boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec{
            CropResidues: boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
            },
          },
        },
        },
        Modality: boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecModalityPeptide,
        Structure: boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecStructureUnion{
          OfProteinDesignStartsBinderSpecificationStructureTemplateBinderSpecStructureURLSource: &boltzapi.ProteinDesignStartParamsBinderSpecificationStructureTemplateBinderSpecStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
    NumProteins: 10,
    Target: boltzapi.ProteinDesignStartParamsTargetUnion{
      OfProteinDesignStartsTargetStructureTemplateTarget: &boltzapi.ProteinDesignStartParamsTargetStructureTemplateTarget{
        ChainSelection: map[string]boltzapi.ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionUnion{
        "A": boltzapi.ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionUnion{
          OfProteinDesignStartsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: &boltzapi.ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec{
            CropResidues: boltzapi.ProteinDesignStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},
            },
          },
        },
        },
        Structure: boltzapi.ProteinDesignStartParamsTargetStructureTemplateTargetStructureUnion{
          OfProteinDesignStartsTargetStructureTemplateTargetStructureURLSource: &boltzapi.ProteinDesignStartParamsTargetStructureTemplateTargetStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## List

`client.Protein.Design.List(ctx, query) (*CursorPage[ProteinDesignListResponse], error)`

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

List protein design runs, optionally filtered by workspace

### Parameters

- `query ProteinDesignListParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max items to return. Defaults to 100.

  - `WorkspaceID param.Field[string]`

    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

- `type ProteinDesignListResponse struct{…}`

  Summary of a protein design engine run (excludes input)

  - `ID string`

    Unique ProteinDesignRunSummary identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

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

  - `Engine BoltzProteinDesign`

    Engine used for protein design

    - `const BoltzProteinDesignBoltzProteinDesign BoltzProteinDesign = "boltz-protein-design"`

  - `EngineVersion string`

    Engine version used for protein design

  - `Error ProteinDesignListResponseError`

    - `Code string`

      Machine-readable error code

    - `Message string`

      Human-readable error message

    - `Details any`

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

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinDesignListResponseProgress`

    - `NumProteinsGenerated int64`

      Number of protein binders generated so far

    - `TotalProteinsToGenerate int64`

      Total number of protein binders requested

    - `LatestResultID string`

      ID of the most recently generated result

  - `StartedAt Time`

  - `Status ProteinDesignListResponseStatus`

    - `const ProteinDesignListResponseStatusPending ProteinDesignListResponseStatus = "pending"`

    - `const ProteinDesignListResponseStatusRunning ProteinDesignListResponseStatus = "running"`

    - `const ProteinDesignListResponseStatusSucceeded ProteinDesignListResponseStatus = "succeeded"`

    - `const ProteinDesignListResponseStatusFailed ProteinDesignListResponseStatus = "failed"`

    - `const ProteinDesignListResponseStatusStopped ProteinDesignListResponseStatus = "stopped"`

  - `StoppedAt Time`

  - `WorkspaceID string`

    Workspace ID

  - `IdempotencyKey string`

    Client-provided idempotency key

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Protein.Design.List(context.TODO(), boltzapi.ProteinDesignListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Retrieve

`client.Protein.Design.Get(ctx, id, query) (*ProteinDesignGetResponse, error)`

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

Retrieve a design run by ID, including progress and status

### Parameters

- `id string`

- `query ProteinDesignGetParams`

  - `WorkspaceID param.Field[string]`

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

### Returns

- `type ProteinDesignGetResponse struct{…}`

  A protein design engine run that generates novel protein binders

  - `ID string`

    Unique ProteinDesignRun identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

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

  - `Engine BoltzProteinDesign`

    Engine used for protein design

    - `const BoltzProteinDesignBoltzProteinDesign BoltzProteinDesign = "boltz-protein-design"`

  - `EngineVersion string`

    Engine version used for protein design

  - `Error ProteinDesignGetResponseError`

    - `Code string`

      Machine-readable error code

    - `Message string`

      Human-readable error message

    - `Details any`

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

  - `Input ProteinDesignGetResponseInput`

    Pipeline input (null if data deleted)

    - `BinderSpecification ProteinDesignGetResponseInputBinderSpecificationUnion`

      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.

      - `type ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponse struct{…}`

        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.

        - `ChainSelection map[string, ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionUnion]`

          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.

          - `type ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion`

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

              - `type ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecCropResiduesArray []int64`

              - `type All string`

                - `const AllAll All = "all"`

            - `DesignMotifs []ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifUnion`

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

              - `type ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif struct{…}`

                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.

                - `DesignLengthRange ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `Max int64`

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

                  - `Min int64`

                    Minimum sequence length in residues

                - `EndIndex int64`

                  0-indexed end residue (inclusive)

                - `StartIndex int64`

                  0-indexed start residue (inclusive)

                - `Type Replacement`

                  - `const ReplacementReplacement Replacement = "replacement"`

              - `type ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif struct{…}`

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

                - `AfterResidueIndex int64`

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

                - `DesignLengthRange ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `Max int64`

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

                  - `Min int64`

                    Minimum sequence length in residues

                - `Type Insertion`

                  - `const InsertionInsertion Insertion = "insertion"`

          - `type ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplateLigandChainSpec struct{…}`

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

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Modality ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality`

          - `const ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityPeptide ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "peptide"`

          - `const ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityAntibody ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "antibody"`

          - `const ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityNanobody ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "nanobody"`

          - `const ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityCustomProtein ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "custom_protein"`

        - `Structure ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

        - `Rules ProteinDesignGetResponseInputBinderSpecificationStructureTemplateBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

      - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponse struct{…}`

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

        - `Entities []ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityUnion`

          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.

          - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponse struct{…}`

            Protein binder entity with designed and/or fixed segments.

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type DesignedProtein`

              - `const DesignedProteinDesignedProtein DesignedProtein = "designed_protein"`

            - `Value string`

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

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponse struct{…}`

            A fixed protein entity whose sequence is not redesigned.

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

          - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

        - `Modality ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality`

          - `const ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityPeptide ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "peptide"`

          - `const ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityAntibody ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "antibody"`

          - `const ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityNanobody ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "nanobody"`

          - `const ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityCustomProtein ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "custom_protein"`

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseBond`

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

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

            - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2Union`

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

            - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Rules ProteinDesignGetResponseInputBinderSpecificationNoTemplateBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

      - `type ProteinDesignGetResponseInputBinderSpecificationBoltzCuratedBinderSpecResponse struct{…}`

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

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

          - `const ProteinDesignGetResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinderBoltzNanobody ProteinDesignGetResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinder = "boltz_nanobody"`

          - `const ProteinDesignGetResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinderBoltzAntibody ProteinDesignGetResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinder = "boltz_antibody"`

        - `Type BoltzCurated`

          - `const BoltzCuratedBoltzCurated BoltzCurated = "boltz_curated"`

        - `Rules ProteinDesignGetResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

    - `NumProteins int64`

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

    - `Target ProteinDesignGetResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinDesignGetResponseInputTargetStructureTemplateTargetResponse struct{…}`

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

        - `ChainSelection map[string, ProteinDesignGetResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

          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.

          - `type ProteinDesignGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinDesignGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

              - `type ProteinDesignGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64`

                0-indexed residue indices to keep

              - `type All string`

                - `const AllAll All = "all"`

            - `EpitopeResidues []int64`

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

            - `FlexibleResidues []int64`

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

          - `type ProteinDesignGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec struct{…}`

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

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Structure ProteinDesignGetResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponse struct{…}`

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

        - `Entities []ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityUnion`

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

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationUnion`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationUnion`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationUnion`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBond`

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

          - `Atom1 ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

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

            - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

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

            - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Constraints []ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintUnion`

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

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse struct{…}`

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

            - `BinderChainID string`

              Chain ID of the binder molecule

            - `ContactResidues map[string, []int64]`

              Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

            - `MaxDistanceAngstrom float64`

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

            - `Type Pocket`

              - `const PocketPocket Pocket = "pocket"`

            - `Force bool`

              Whether to force the constraint

          - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

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

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

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

                - `AtomName string`

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

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

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

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinDesignGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

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

                - `AtomName string`

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

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Type Contact`

              - `const ContactContact Contact = "contact"`

            - `Force bool`

              Whether to force the constraint

        - `EpitopeLigandChains []string`

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

        - `EpitopeResidues map[string, []int64]`

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

    - `IdempotencyKey string`

      Client-provided key to prevent duplicate submissions on retries

    - `WorkspaceID string`

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

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinDesignGetResponseProgress`

    - `NumProteinsGenerated int64`

      Number of protein binders generated so far

    - `TotalProteinsToGenerate int64`

      Total number of protein binders requested

    - `LatestResultID string`

      ID of the most recently generated result

  - `StartedAt Time`

  - `Status ProteinDesignGetResponseStatus`

    - `const ProteinDesignGetResponseStatusPending ProteinDesignGetResponseStatus = "pending"`

    - `const ProteinDesignGetResponseStatusRunning ProteinDesignGetResponseStatus = "running"`

    - `const ProteinDesignGetResponseStatusSucceeded ProteinDesignGetResponseStatus = "succeeded"`

    - `const ProteinDesignGetResponseStatusFailed ProteinDesignGetResponseStatus = "failed"`

    - `const ProteinDesignGetResponseStatusStopped ProteinDesignGetResponseStatus = "stopped"`

  - `StoppedAt Time`

  - `WorkspaceID string`

    Workspace ID

  - `IdempotencyKey string`

    Client-provided idempotency key

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  design, err := client.Protein.Design.Get(
    context.TODO(),
    "id",
    boltzapi.ProteinDesignGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", design.ID)
}
```

## List Results

`client.Protein.Design.ListResults(ctx, id, query) (*CursorPage[ProteinDesignListResultsResponse], error)`

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

Retrieve paginated results from a protein design run

### Parameters

- `id string`

- `query ProteinDesignListResultsParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max results to return. Defaults to 100.

  - `WorkspaceID param.Field[string]`

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

### Returns

- `type ProteinDesignListResultsResponse struct{…}`

  A single generated protein design

  - `ID string`

    Unique result ID

  - `Artifacts ProteinDesignListResultsResponseArtifacts`

    - `Archive ProteinDesignListResultsResponseArtifactsArchive`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Structure ProteinDesignListResultsResponseArtifactsStructure`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

  - `CreatedAt Time`

  - `Entities []ProteinDesignListResultsResponseEntityUnion`

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

    - `type ProteinDesignListResultsResponseEntityProteinEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this entity

      - `Type Protein`

        - `const ProteinProtein Protein = "protein"`

      - `Value string`

        Amino acid sequence (one-letter codes)

      - `Cyclic bool`

        Whether the sequence is cyclic

      - `Modifications []ProteinDesignListResultsResponseEntityProteinEntityModificationUnion`

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

        - `type ProteinDesignListResultsResponseEntityProteinEntityModificationCcdModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Ccd`

            - `const CcdCcd Ccd = "ccd"`

          - `Value string`

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

        - `type ProteinDesignListResultsResponseEntityProteinEntityModificationSmilesModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Smiles`

            - `const SmilesSmiles Smiles = "smiles"`

          - `Value string`

            SMILES string for the modification

    - `type ProteinDesignListResultsResponseEntityRnaEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this entity

      - `Type Rna`

        - `const RnaRna Rna = "rna"`

      - `Value string`

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

      - `Cyclic bool`

        Whether the sequence is cyclic

      - `Modifications []ProteinDesignListResultsResponseEntityRnaEntityModificationUnion`

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

        - `type ProteinDesignListResultsResponseEntityRnaEntityModificationCcdModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Ccd`

            - `const CcdCcd Ccd = "ccd"`

          - `Value string`

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

        - `type ProteinDesignListResultsResponseEntityRnaEntityModificationSmilesModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Smiles`

            - `const SmilesSmiles Smiles = "smiles"`

          - `Value string`

            SMILES string for the modification

    - `type ProteinDesignListResultsResponseEntityDnaEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this entity

      - `Type Dna`

        - `const DnaDna Dna = "dna"`

      - `Value string`

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

      - `Cyclic bool`

        Whether the sequence is cyclic

      - `Modifications []ProteinDesignListResultsResponseEntityDnaEntityModificationUnion`

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

        - `type ProteinDesignListResultsResponseEntityDnaEntityModificationCcdModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Ccd`

            - `const CcdCcd Ccd = "ccd"`

          - `Value string`

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

        - `type ProteinDesignListResultsResponseEntityDnaEntityModificationSmilesModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Smiles`

            - `const SmilesSmiles Smiles = "smiles"`

          - `Value string`

            SMILES string for the modification

    - `type ProteinDesignListResultsResponseEntityLigandCcdEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this ligand

      - `Type LigandCcd`

        - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

      - `Value string`

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

    - `type ProteinDesignListResultsResponseEntityLigandSmilesEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this ligand

      - `Type LigandSmiles`

        - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

      - `Value string`

        SMILES string representing the ligand

  - `Metrics ProteinDesignListResultsResponseMetrics`

    Structural and binding quality metrics for a designed protein binder

    - `BindingConfidence float64`

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

    - `HelixFraction float64`

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

    - `Iptm float64`

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

    - `LoopFraction float64`

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

    - `MinInteractionPae float64`

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

    - `SheetFraction float64`

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

    - `StructureConfidence float64`

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

  - `Warnings []ProteinDesignListResultsResponseWarning`

    Warnings about potential quality issues with this result.

    - `Code string`

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

    - `Message string`

      Human-readable description of the warning

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Protein.Design.ListResults(
    context.TODO(),
    "id",
    boltzapi.ProteinDesignListResultsParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Stop

`client.Protein.Design.Stop(ctx, id) (*ProteinDesignStopResponse, error)`

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

Stop an in-progress protein design run early

### Parameters

- `id string`

### Returns

- `type ProteinDesignStopResponse struct{…}`

  A protein design engine run that generates novel protein binders

  - `ID string`

    Unique ProteinDesignRun identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

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

  - `Engine BoltzProteinDesign`

    Engine used for protein design

    - `const BoltzProteinDesignBoltzProteinDesign BoltzProteinDesign = "boltz-protein-design"`

  - `EngineVersion string`

    Engine version used for protein design

  - `Error ProteinDesignStopResponseError`

    - `Code string`

      Machine-readable error code

    - `Message string`

      Human-readable error message

    - `Details any`

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

  - `Input ProteinDesignStopResponseInput`

    Pipeline input (null if data deleted)

    - `BinderSpecification ProteinDesignStopResponseInputBinderSpecificationUnion`

      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.

      - `type ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponse struct{…}`

        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.

        - `ChainSelection map[string, ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionUnion]`

          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.

          - `type ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion`

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

              - `type ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecCropResiduesArray []int64`

              - `type All string`

                - `const AllAll All = "all"`

            - `DesignMotifs []ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifUnion`

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

              - `type ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif struct{…}`

                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.

                - `DesignLengthRange ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `Max int64`

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

                  - `Min int64`

                    Minimum sequence length in residues

                - `EndIndex int64`

                  0-indexed end residue (inclusive)

                - `StartIndex int64`

                  0-indexed start residue (inclusive)

                - `Type Replacement`

                  - `const ReplacementReplacement Replacement = "replacement"`

              - `type ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif struct{…}`

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

                - `AfterResidueIndex int64`

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

                - `DesignLengthRange ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                  Allowed sequence length range for designed regions

                  - `Max int64`

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

                  - `Min int64`

                    Minimum sequence length in residues

                - `Type Insertion`

                  - `const InsertionInsertion Insertion = "insertion"`

          - `type ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseChainSelectionStructureTemplateLigandChainSpec struct{…}`

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

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Modality ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality`

          - `const ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityPeptide ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "peptide"`

          - `const ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityAntibody ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "antibody"`

          - `const ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityNanobody ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "nanobody"`

          - `const ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModalityCustomProtein ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseModality = "custom_protein"`

        - `Structure ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

        - `Rules ProteinDesignStopResponseInputBinderSpecificationStructureTemplateBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

      - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponse struct{…}`

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

        - `Entities []ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityUnion`

          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.

          - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponse struct{…}`

            Protein binder entity with designed and/or fixed segments.

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type DesignedProtein`

              - `const DesignedProteinDesignedProtein DesignedProtein = "designed_protein"`

            - `Value string`

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

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityDesignedProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponse struct{…}`

            A fixed protein entity whose sequence is not redesigned.

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationUnion`

              Optional polymer modifications. Defaults to [] when omitted.

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

          - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseEntityFixedLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs to assign to this entity

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

        - `Modality ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality`

          - `const ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityPeptide ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "peptide"`

          - `const ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityAntibody ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "antibody"`

          - `const ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityNanobody ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "nanobody"`

          - `const ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModalityCustomProtein ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseModality = "custom_protein"`

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseBond`

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

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

            - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2Union`

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

            - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Rules ProteinDesignStopResponseInputBinderSpecificationNoTemplateBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

      - `type ProteinDesignStopResponseInputBinderSpecificationBoltzCuratedBinderSpecResponse struct{…}`

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

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

          - `const ProteinDesignStopResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinderBoltzNanobody ProteinDesignStopResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinder = "boltz_nanobody"`

          - `const ProteinDesignStopResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinderBoltzAntibody ProteinDesignStopResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseBinder = "boltz_antibody"`

        - `Type BoltzCurated`

          - `const BoltzCuratedBoltzCurated BoltzCurated = "boltz_curated"`

        - `Rules ProteinDesignStopResponseInputBinderSpecificationBoltzCuratedBinderSpecResponseRules`

          Constraints applied during sequence design

          - `ExcludedAminoAcids []string`

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

          - `ExcludedSequenceMotifs []string`

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

          - `MaxHydrophobicFraction float64`

            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.

    - `NumProteins int64`

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

    - `Target ProteinDesignStopResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinDesignStopResponseInputTargetStructureTemplateTargetResponse struct{…}`

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

        - `ChainSelection map[string, ProteinDesignStopResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

          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.

          - `type ProteinDesignStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinDesignStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

              - `type ProteinDesignStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64`

                0-indexed residue indices to keep

              - `type All string`

                - `const AllAll All = "all"`

            - `EpitopeResidues []int64`

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

            - `FlexibleResidues []int64`

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

          - `type ProteinDesignStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec struct{…}`

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

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Structure ProteinDesignStopResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponse struct{…}`

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

        - `Entities []ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityUnion`

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

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationUnion`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationUnion`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

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

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationUnion`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBond`

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

          - `Atom1 ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

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

            - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

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

            - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

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

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Constraints []ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintUnion`

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

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse struct{…}`

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

            - `BinderChainID string`

              Chain ID of the binder molecule

            - `ContactResidues map[string, []int64]`

              Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

            - `MaxDistanceAngstrom float64`

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

            - `Type Pocket`

              - `const PocketPocket Pocket = "pocket"`

            - `Force bool`

              Whether to force the constraint

          - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

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

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

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

                - `AtomName string`

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

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

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

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinDesignStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

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

                - `AtomName string`

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

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Type Contact`

              - `const ContactContact Contact = "contact"`

            - `Force bool`

              Whether to force the constraint

        - `EpitopeLigandChains []string`

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

        - `EpitopeResidues map[string, []int64]`

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

    - `IdempotencyKey string`

      Client-provided key to prevent duplicate submissions on retries

    - `WorkspaceID string`

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

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinDesignStopResponseProgress`

    - `NumProteinsGenerated int64`

      Number of protein binders generated so far

    - `TotalProteinsToGenerate int64`

      Total number of protein binders requested

    - `LatestResultID string`

      ID of the most recently generated result

  - `StartedAt Time`

  - `Status ProteinDesignStopResponseStatus`

    - `const ProteinDesignStopResponseStatusPending ProteinDesignStopResponseStatus = "pending"`

    - `const ProteinDesignStopResponseStatusRunning ProteinDesignStopResponseStatus = "running"`

    - `const ProteinDesignStopResponseStatusSucceeded ProteinDesignStopResponseStatus = "succeeded"`

    - `const ProteinDesignStopResponseStatusFailed ProteinDesignStopResponseStatus = "failed"`

    - `const ProteinDesignStopResponseStatusStopped ProteinDesignStopResponseStatus = "stopped"`

  - `StoppedAt Time`

  - `WorkspaceID string`

    Workspace ID

  - `IdempotencyKey string`

    Client-provided idempotency key

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Protein.Design.Stop(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Delete Data

`client.Protein.Design.DeleteData(ctx, id) (*ProteinDesignDeleteDataResponse, error)`

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

### Returns

- `type ProteinDesignDeleteDataResponse struct{…}`

  - `ID string`

    ID of the resource whose data was deleted

  - `DataDeleted bool`

    - `const ProteinDesignDeleteDataResponseDataDeletedTrue ProteinDesignDeleteDataResponseDataDeleted = true`

  - `DataDeletedAt Time`

    When the data was deleted

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Protein.Design.DeleteData(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Estimate Cost

`client.Protein.Design.EstimateCost(ctx, body) (*ProteinDesignEstimateCostResponse, error)`

**post** `/compute/v1/protein/design/estimate-cost`

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

### Parameters

- `body ProteinDesignEstimateCostParams`

  - `BinderSpecification param.Field[ProteinDesignEstimateCostParamsBinderSpecificationUnion]`

    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.

    - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpec struct{…}`

      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.

      - `ChainSelection map[string, ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionUnion]`

        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.

        - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec struct{…}`

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

          - `ChainType Polymer`

            - `const PolymerPolymer Polymer = "polymer"`

          - `CropResidues ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion`

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

            - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecCropResiduesArray []int64`

            - `type All string`

              - `const AllAll All = "all"`

          - `DesignMotifs []ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifUnion`

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

            - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotif struct{…}`

              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.

              - `DesignLengthRange ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifReplacementMotifDesignLengthRange`

                Allowed sequence length range for designed regions

                - `Max int64`

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

                - `Min int64`

                  Minimum sequence length in residues

              - `EndIndex int64`

                0-indexed end residue (inclusive)

              - `StartIndex int64`

                0-indexed start residue (inclusive)

              - `Type Replacement`

                - `const ReplacementReplacement Replacement = "replacement"`

            - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotif struct{…}`

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

              - `AfterResidueIndex int64`

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

              - `DesignLengthRange ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecDesignMotifInsertionMotifDesignLengthRange`

                Allowed sequence length range for designed regions

                - `Max int64`

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

                - `Min int64`

                  Minimum sequence length in residues

              - `Type Insertion`

                - `const InsertionInsertion Insertion = "insertion"`

        - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplateLigandChainSpec struct{…}`

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

          - `ChainType Ligand`

            - `const LigandLigand Ligand = "ligand"`

      - `Modality ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModality`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModalityPeptide ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModality = "peptide"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModalityAntibody ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModality = "antibody"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModalityNanobody ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModality = "nanobody"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModalityCustomProtein ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModality = "custom_protein"`

      - `Structure ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecStructureUnion`

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

        - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecStructureURLSource struct{…}`

          - `Type URL`

            - `const URLURL URL = "url"`

          - `URL string`

        - `type ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecStructureCifBase64Source struct{…}`

          - `Data string`

            Base64-encoded CIF file contents

          - `MediaType ChemicalXCif`

            Must be chemical/x-cif for CIF files

            - `const ChemicalXCifChemicalXCif ChemicalXCif = "chemical/x-cif"`

          - `Type Base64`

            - `const Base64Base64 Base64 = "base64"`

      - `Type StructureTemplate`

        - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `Rules ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecRules`

        Constraints applied during sequence design

        - `ExcludedAminoAcids []string`

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

        - `ExcludedSequenceMotifs []string`

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

        - `MaxHydrophobicFraction float64`

          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.

    - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpec struct{…}`

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

      - `Entities []ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityUnion`

        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.

        - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntity struct{…}`

          Protein binder entity with designed and/or fixed segments.

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type DesignedProtein`

            - `const DesignedProteinDesignedProtein DesignedProtein = "designed_protein"`

          - `Value string`

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

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityDesignedProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntity struct{…}`

          A fixed protein entity whose sequence is not redesigned.

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type Protein`

            - `const ProteinProtein Protein = "protein"`

          - `Value string`

            Amino acid sequence (one-letter codes)

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type Rna`

            - `const RnaRna Rna = "rna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedRnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type Dna`

            - `const DnaDna Dna = "dna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationUnion`

            Optional polymer modifications. Defaults to [] when omitted.

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedDnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedLigandSmilesEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type LigandSmiles`

            - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

          - `Value string`

            SMILES string representing the ligand

        - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecEntityFixedLigandCcdEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs to assign to this entity

          - `Type LigandCcd`

            - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

          - `Value string`

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

      - `Modality ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModality`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModalityPeptide ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModality = "peptide"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModalityAntibody ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModality = "antibody"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModalityNanobody ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModality = "nanobody"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModalityCustomProtein ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecModality = "custom_protein"`

      - `Type NoTemplate`

        - `const NoTemplateNoTemplate NoTemplate = "no_template"`

      - `Bonds []ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecBond`

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

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

          - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecBondAtom1LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecBondAtom1PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Atom2 ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecBondAtom2Union`

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

          - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecBondAtom2LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecBondAtom2PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

      - `Rules ProteinDesignEstimateCostParamsBinderSpecificationNoTemplateBinderSpecRules`

        Constraints applied during sequence design

        - `ExcludedAminoAcids []string`

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

        - `ExcludedSequenceMotifs []string`

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

        - `MaxHydrophobicFraction float64`

          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.

    - `type ProteinDesignEstimateCostParamsBinderSpecificationBoltzCuratedBinderSpec struct{…}`

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

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

        - `const ProteinDesignEstimateCostParamsBinderSpecificationBoltzCuratedBinderSpecBinderBoltzNanobody ProteinDesignEstimateCostParamsBinderSpecificationBoltzCuratedBinderSpecBinder = "boltz_nanobody"`

        - `const ProteinDesignEstimateCostParamsBinderSpecificationBoltzCuratedBinderSpecBinderBoltzAntibody ProteinDesignEstimateCostParamsBinderSpecificationBoltzCuratedBinderSpecBinder = "boltz_antibody"`

      - `Type BoltzCurated`

        - `const BoltzCuratedBoltzCurated BoltzCurated = "boltz_curated"`

      - `Rules ProteinDesignEstimateCostParamsBinderSpecificationBoltzCuratedBinderSpecRules`

        Constraints applied during sequence design

        - `ExcludedAminoAcids []string`

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

        - `ExcludedSequenceMotifs []string`

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

        - `MaxHydrophobicFraction float64`

          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.

  - `NumProteins param.Field[int64]`

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

  - `Target param.Field[ProteinDesignEstimateCostParamsTargetUnion]`

    Target specification (structure template or template-free)

    - `type ProteinDesignEstimateCostParamsTargetStructureTemplateTarget struct{…}`

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

      - `ChainSelection map[string, ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion]`

        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.

        - `type ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

          - `ChainType Polymer`

            - `const PolymerPolymer Polymer = "polymer"`

          - `CropResidues ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

            - `type ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64`

              0-indexed residue indices to keep

            - `type All string`

              - `const AllAll All = "all"`

          - `EpitopeResidues []int64`

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

          - `FlexibleResidues []int64`

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

        - `type ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetLigandChainSpec struct{…}`

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

          - `ChainType Ligand`

            - `const LigandLigand Ligand = "ligand"`

      - `Structure ProteinDesignEstimateCostParamsTargetStructureTemplateTargetStructureUnion`

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

        - `type ProteinDesignEstimateCostParamsTargetStructureTemplateTargetStructureURLSource struct{…}`

          - `Type URL`

            - `const URLURL URL = "url"`

          - `URL string`

        - `type ProteinDesignEstimateCostParamsTargetStructureTemplateTargetStructureCifBase64Source struct{…}`

          - `Data string`

            Base64-encoded CIF file contents

          - `MediaType ChemicalXCif`

            Must be chemical/x-cif for CIF files

            - `const ChemicalXCifChemicalXCif ChemicalXCif = "chemical/x-cif"`

          - `Type Base64`

            - `const Base64Base64 Base64 = "base64"`

      - `Type StructureTemplate`

        - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

    - `type ProteinDesignEstimateCostParamsTargetNoTemplateTarget struct{…}`

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

      - `Entities []ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityUnion`

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

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityProteinEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this entity

          - `Type Protein`

            - `const ProteinProtein Protein = "protein"`

          - `Value string`

            Amino acid sequence (one-letter codes)

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationUnion`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityRnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this entity

          - `Type Rna`

            - `const RnaRna Rna = "rna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationUnion`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityDnaEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this entity

          - `Type Dna`

            - `const DnaDna Dna = "dna"`

          - `Value string`

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

          - `Cyclic bool`

            Whether the sequence is cyclic

          - `Modifications []ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationUnion`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityLigandCcdEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this ligand

          - `Type LigandCcd`

            - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

          - `Value string`

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

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetEntityLigandSmilesEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this ligand

          - `Type LigandSmiles`

            - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

          - `Value string`

            SMILES string representing the ligand

      - `Type NoTemplate`

        - `const NoTemplateNoTemplate NoTemplate = "no_template"`

      - `Bonds []ProteinDesignEstimateCostParamsTargetNoTemplateTargetBond`

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

        - `Atom1 ProteinDesignEstimateCostParamsTargetNoTemplateTargetBondAtom1Union`

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

          - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetBondAtom1LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetBondAtom1PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Atom2 ProteinDesignEstimateCostParamsTargetNoTemplateTargetBondAtom2Union`

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

          - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetBondAtom2LigandAtom struct{…}`

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

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetBondAtom2PolymerAtom struct{…}`

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB)

            - `ChainID string`

              Chain ID containing the atom

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerAtom`

              - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

      - `Constraints []ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintUnion`

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

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintPocketConstraint struct{…}`

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

          - `BinderChainID string`

            Chain ID of the binder molecule

          - `ContactResidues map[string, []int64]`

            Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

          - `MaxDistanceAngstrom float64`

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

          - `Type Pocket`

            - `const PocketPocket Pocket = "pocket"`

          - `Force bool`

            Whether to force the constraint

        - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraint struct{…}`

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

          - `MaxDistanceAngstrom float64`

            Maximum distance in Angstroms

          - `Token1 ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1Union`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1LigandContactToken struct{…}`

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

              - `AtomName string`

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

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Token2 ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken2Union`

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

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinDesignEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken2LigandContactToken struct{…}`

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

              - `AtomName string`

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

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Type Contact`

            - `const ContactContact Contact = "contact"`

          - `Force bool`

            Whether to force the constraint

      - `EpitopeLigandChains []string`

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

      - `EpitopeResidues map[string, []int64]`

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

  - `IdempotencyKey param.Field[string]`

    Client-provided key to prevent duplicate submissions on retries

  - `WorkspaceID param.Field[string]`

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

### Returns

- `type ProteinDesignEstimateCostResponse struct{…}`

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

  - `Breakdown ProteinDesignEstimateCostResponseBreakdown`

    Cost breakdown for the billed application.

    - `Application ProteinDesignEstimateCostResponseBreakdownApplication`

      - `const ProteinDesignEstimateCostResponseBreakdownApplicationStructureAndBinding ProteinDesignEstimateCostResponseBreakdownApplication = "structure_and_binding"`

      - `const ProteinDesignEstimateCostResponseBreakdownApplicationSmallMoleculeDesign ProteinDesignEstimateCostResponseBreakdownApplication = "small_molecule_design"`

      - `const ProteinDesignEstimateCostResponseBreakdownApplicationSmallMoleculeLibraryScreen ProteinDesignEstimateCostResponseBreakdownApplication = "small_molecule_library_screen"`

      - `const ProteinDesignEstimateCostResponseBreakdownApplicationProteinDesign ProteinDesignEstimateCostResponseBreakdownApplication = "protein_design"`

      - `const ProteinDesignEstimateCostResponseBreakdownApplicationProteinLibraryScreen ProteinDesignEstimateCostResponseBreakdownApplication = "protein_library_screen"`

      - `const ProteinDesignEstimateCostResponseBreakdownApplicationAdme ProteinDesignEstimateCostResponseBreakdownApplication = "adme"`

    - `CostPerUnitUsd string`

      Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal places. This may include token-size multipliers or generation overhead; estimated_cost_usd is the authoritative total.

    - `NumUnits int64`

      Number of units shown for the estimate. For structure-and-binding, this is the requested number of samples. For protein and small-molecule design/screen endpoints, this is the requested number of proteins or molecules.

  - `Disclaimer string`

  - `EstimatedCostUsd string`

    Estimated total cost as a decimal string

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Protein.Design.EstimateCost(context.TODO(), boltzapi.ProteinDesignEstimateCostParams{
    BinderSpecification: boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationUnion{
      OfProteinDesignEstimateCostsBinderSpecificationStructureTemplateBinderSpec: &boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpec{
        ChainSelection: map[string]boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionUnion{
        "B": boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionUnion{
          OfProteinDesignEstimateCostsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec: &boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpec{
            CropResidues: boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecChainSelectionStructureTemplatePolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
            },
          },
        },
        },
        Modality: boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecModalityPeptide,
        Structure: boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecStructureUnion{
          OfProteinDesignEstimateCostsBinderSpecificationStructureTemplateBinderSpecStructureURLSource: &boltzapi.ProteinDesignEstimateCostParamsBinderSpecificationStructureTemplateBinderSpecStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
    NumProteins: 10,
    Target: boltzapi.ProteinDesignEstimateCostParamsTargetUnion{
      OfProteinDesignEstimateCostsTargetStructureTemplateTarget: &boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTarget{
        ChainSelection: map[string]boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion{
        "A": boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion{
          OfProteinDesignEstimateCostsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: &boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec{
            CropResidues: boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},
            },
          },
        },
        },
        Structure: boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTargetStructureUnion{
          OfProteinDesignEstimateCostsTargetStructureTemplateTargetStructureURLSource: &boltzapi.ProteinDesignEstimateCostParamsTargetStructureTemplateTargetStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Breakdown)
}
```
