# Structure And Binding

## Start

`client.Predictions.StructureAndBinding.Start(ctx, body) (*PredictionStructureAndBindingStartResponse, error)`

**post** `/compute/v1/predictions/structure-and-binding`

Submit a prediction job that produces 3D structure coordinates and confidence scores for the input molecular complex, with optional binding metrics.

### Parameters

- `body PredictionStructureAndBindingStartParams`

  - `Input param.Field[PredictionStructureAndBindingStartParamsInput]`

    - `Entities []PredictionStructureAndBindingStartParamsInputEntityUnion`

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

      - `type PredictionStructureAndBindingStartParamsInputEntityProteinEntity 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 []PredictionStructureAndBindingStartParamsInputEntityProteinEntityModificationUnion`

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

          - `type PredictionStructureAndBindingStartParamsInputEntityProteinEntityModificationCcdModification 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 PredictionStructureAndBindingStartParamsInputEntityProteinEntityModificationSmilesModification 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 PredictionStructureAndBindingStartParamsInputEntityRnaEntity 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 []PredictionStructureAndBindingStartParamsInputEntityRnaEntityModificationUnion`

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

          - `type PredictionStructureAndBindingStartParamsInputEntityRnaEntityModificationCcdModification 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 PredictionStructureAndBindingStartParamsInputEntityRnaEntityModificationSmilesModification 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 PredictionStructureAndBindingStartParamsInputEntityDnaEntity 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 []PredictionStructureAndBindingStartParamsInputEntityDnaEntityModificationUnion`

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

          - `type PredictionStructureAndBindingStartParamsInputEntityDnaEntityModificationCcdModification 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 PredictionStructureAndBindingStartParamsInputEntityDnaEntityModificationSmilesModification 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 PredictionStructureAndBindingStartParamsInputEntityLigandCcdEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandCcd`

          - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

        - `Value string`

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

      - `type PredictionStructureAndBindingStartParamsInputEntityLigandSmilesEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandSmiles`

          - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

        - `Value string`

          SMILES string representing the ligand

    - `Binding PredictionStructureAndBindingStartParamsInputBindingUnion`

      - `type PredictionStructureAndBindingStartParamsInputBindingLigandProteinBinding struct{…}`

        - `BinderChainID string`

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

        - `Type LigandProteinBinding`

          - `const LigandProteinBindingLigandProteinBinding LigandProteinBinding = "ligand_protein_binding"`

      - `type PredictionStructureAndBindingStartParamsInputBindingProteinProteinBinding struct{…}`

        - `BinderChainIDs []string`

          Chain IDs of the protein binders

        - `Type ProteinProteinBinding`

          - `const ProteinProteinBindingProteinProteinBinding ProteinProteinBinding = "protein_protein_binding"`

    - `Bonds []PredictionStructureAndBindingStartParamsInputBond`

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

      - `Atom1 PredictionStructureAndBindingStartParamsInputBondAtom1Union`

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

        - `type PredictionStructureAndBindingStartParamsInputBondAtom1LigandAtom 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 PredictionStructureAndBindingStartParamsInputBondAtom1PolymerAtom 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 PredictionStructureAndBindingStartParamsInputBondAtom2Union`

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

        - `type PredictionStructureAndBindingStartParamsInputBondAtom2LigandAtom 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 PredictionStructureAndBindingStartParamsInputBondAtom2PolymerAtom 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 []PredictionStructureAndBindingStartParamsInputConstraintUnion`

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

      - `type PredictionStructureAndBindingStartParamsInputConstraintPocketConstraint 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 PredictionStructureAndBindingStartParamsInputConstraintContactConstraint 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 PredictionStructureAndBindingStartParamsInputConstraintContactConstraintToken1Union`

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

          - `type PredictionStructureAndBindingStartParamsInputConstraintContactConstraintToken1PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type PredictionStructureAndBindingStartParamsInputConstraintContactConstraintToken1LigandContactToken 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 PredictionStructureAndBindingStartParamsInputConstraintContactConstraintToken2Union`

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

          - `type PredictionStructureAndBindingStartParamsInputConstraintContactConstraintToken2PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

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

    - `ModelOptions PredictionStructureAndBindingStartParamsInputModelOptions`

      - `RecyclingSteps int64`

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

      - `SamplingSteps int64`

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

      - `StepScale float64`

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

    - `NumSamples int64`

      Number of structure samples to generate

  - `Model param.Field[Boltz2_1]`

    Model to use for prediction

    - `const Boltz2_1Boltz2_1 Boltz2_1 = "boltz-2.1"`

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

  - `ID string`

    Unique prediction identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

    When the input/output data was deleted, or null if still available

  - `Error PredictionStructureAndBindingStartResponseError`

    Error details when failed

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

  - `ExpiresAt Time`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `Input PredictionStructureAndBindingStartResponseInput`

    Prediction input (null if data deleted)

    - `Entities []PredictionStructureAndBindingStartResponseInputEntityUnion`

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

      - `type PredictionStructureAndBindingStartResponseInputEntityProteinEntityResponse 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 []PredictionStructureAndBindingStartResponseInputEntityProteinEntityResponseModificationUnion`

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

          - `type PredictionStructureAndBindingStartResponseInputEntityProteinEntityResponseModificationCcdModificationResponse 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 PredictionStructureAndBindingStartResponseInputEntityProteinEntityResponseModificationSmilesModificationResponse 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 PredictionStructureAndBindingStartResponseInputEntityRnaEntityResponse 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 []PredictionStructureAndBindingStartResponseInputEntityRnaEntityResponseModificationUnion`

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

          - `type PredictionStructureAndBindingStartResponseInputEntityRnaEntityResponseModificationCcdModificationResponse 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 PredictionStructureAndBindingStartResponseInputEntityRnaEntityResponseModificationSmilesModificationResponse 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 PredictionStructureAndBindingStartResponseInputEntityDnaEntityResponse 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 []PredictionStructureAndBindingStartResponseInputEntityDnaEntityResponseModificationUnion`

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

          - `type PredictionStructureAndBindingStartResponseInputEntityDnaEntityResponseModificationCcdModificationResponse 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 PredictionStructureAndBindingStartResponseInputEntityDnaEntityResponseModificationSmilesModificationResponse 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 PredictionStructureAndBindingStartResponseInputEntityLigandCcdEntityResponse struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandCcd`

          - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

        - `Value string`

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

      - `type PredictionStructureAndBindingStartResponseInputEntityLigandSmilesEntityResponse struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandSmiles`

          - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

        - `Value string`

          SMILES string representing the ligand

    - `Binding PredictionStructureAndBindingStartResponseInputBindingUnion`

      - `type PredictionStructureAndBindingStartResponseInputBindingLigandProteinBindingResponse struct{…}`

        - `BinderChainID string`

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

        - `Type LigandProteinBinding`

          - `const LigandProteinBindingLigandProteinBinding LigandProteinBinding = "ligand_protein_binding"`

      - `type PredictionStructureAndBindingStartResponseInputBindingProteinProteinBindingResponse struct{…}`

        - `BinderChainIDs []string`

          Chain IDs of the protein binders

        - `Type ProteinProteinBinding`

          - `const ProteinProteinBindingProteinProteinBinding ProteinProteinBinding = "protein_protein_binding"`

    - `Bonds []PredictionStructureAndBindingStartResponseInputBond`

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

      - `Atom1 PredictionStructureAndBindingStartResponseInputBondAtom1Union`

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

        - `type PredictionStructureAndBindingStartResponseInputBondAtom1LigandAtomResponse 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 PredictionStructureAndBindingStartResponseInputBondAtom1PolymerAtomResponse 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 PredictionStructureAndBindingStartResponseInputBondAtom2Union`

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

        - `type PredictionStructureAndBindingStartResponseInputBondAtom2LigandAtomResponse 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 PredictionStructureAndBindingStartResponseInputBondAtom2PolymerAtomResponse 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 []PredictionStructureAndBindingStartResponseInputConstraintUnion`

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

      - `type PredictionStructureAndBindingStartResponseInputConstraintPocketConstraintResponse 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 PredictionStructureAndBindingStartResponseInputConstraintContactConstraintResponse 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 PredictionStructureAndBindingStartResponseInputConstraintContactConstraintResponseToken1Union`

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

          - `type PredictionStructureAndBindingStartResponseInputConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type PredictionStructureAndBindingStartResponseInputConstraintContactConstraintResponseToken1LigandContactTokenResponse 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 PredictionStructureAndBindingStartResponseInputConstraintContactConstraintResponseToken2Union`

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

          - `type PredictionStructureAndBindingStartResponseInputConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

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

    - `ModelOptions PredictionStructureAndBindingStartResponseInputModelOptions`

      - `RecyclingSteps int64`

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

      - `SamplingSteps int64`

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

      - `StepScale float64`

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

    - `NumSamples int64`

      Number of structure samples to generate

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Model Boltz2_1`

    Model used for prediction

    - `const Boltz2_1Boltz2_1 Boltz2_1 = "boltz-2.1"`

  - `Output PredictionStructureAndBindingStartResponseOutput`

    Prediction output when succeeded

    - `AllSampleResults []PredictionStructureAndBindingStartResponseOutputAllSampleResult`

      Per-sample structure results

      - `Metrics PredictionStructureAndBindingStartResponseOutputAllSampleResultMetrics`

        - `ComplexIpde float64`

          Complex interface predicted distance error. Lower is better.

        - `ComplexIplddt float64`

          Complex interface pLDDT (0-1 float). Confidence at inter-chain interfaces.

        - `ComplexPde float64`

          Complex predicted distance error. Lower is better.

        - `ComplexPlddt float64`

          Complex pLDDT (0-1 float). Per-residue confidence averaged over the complex.

        - `Iptm float64`

          Interface predicted TM score (0-1). Confidence in domain interfaces.

        - `LigandIptm float64`

          Ligand interface pTM (0-1). Only present when ligands are included.

        - `ProteinIptm float64`

          Protein-protein interface pTM (0-1). Only present for multi-protein complexes.

        - `Ptm float64`

          Predicted TM score (0-1). Global structure quality.

        - `StructureConfidence float64`

          Overall structure confidence (0-1).

      - `Structure PredictionStructureAndBindingStartResponseOutputAllSampleResultStructure`

        - `URL string`

          URL to download the file

        - `URLExpiresAt Time`

          When the presigned URL expires

    - `BestSample PredictionStructureAndBindingStartResponseOutputBestSample`

      - `Metrics PredictionStructureAndBindingStartResponseOutputBestSampleMetrics`

        - `ComplexIpde float64`

          Complex interface predicted distance error. Lower is better.

        - `ComplexIplddt float64`

          Complex interface pLDDT (0-1 float). Confidence at inter-chain interfaces.

        - `ComplexPde float64`

          Complex predicted distance error. Lower is better.

        - `ComplexPlddt float64`

          Complex pLDDT (0-1 float). Per-residue confidence averaged over the complex.

        - `Iptm float64`

          Interface predicted TM score (0-1). Confidence in domain interfaces.

        - `LigandIptm float64`

          Ligand interface pTM (0-1). Only present when ligands are included.

        - `ProteinIptm float64`

          Protein-protein interface pTM (0-1). Only present for multi-protein complexes.

        - `Ptm float64`

          Predicted TM score (0-1). Global structure quality.

        - `StructureConfidence float64`

          Overall structure confidence (0-1).

      - `Structure PredictionStructureAndBindingStartResponseOutputBestSampleStructure`

        - `URL string`

          URL to download the file

        - `URLExpiresAt Time`

          When the presigned URL expires

    - `Archive PredictionStructureAndBindingStartResponseOutputArchive`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `BindingMetrics PredictionStructureAndBindingStartResponseOutputBindingMetricsUnion`

      - `type PredictionStructureAndBindingStartResponseOutputBindingMetricsLigandProteinBindingMetrics struct{…}`

        - `BindingConfidence float64`

          Confidence that binding occurs (0-1). Primary metric for hit discovery.

        - `OptimizationScore float64`

          Binding strength ranking score for lead optimization. Higher values indicate stronger predicted binding.

        - `Type LigandProteinBindingMetrics`

          - `const LigandProteinBindingMetricsLigandProteinBindingMetrics LigandProteinBindingMetrics = "ligand_protein_binding_metrics"`

      - `type PredictionStructureAndBindingStartResponseOutputBindingMetricsProteinProteinBindingMetrics struct{…}`

        - `BindingConfidence float64`

          Confidence that binding occurs (0-1). Primary metric for hit discovery.

        - `Type ProteinProteinBindingMetrics`

          - `const ProteinProteinBindingMetricsProteinProteinBindingMetrics ProteinProteinBindingMetrics = "protein_protein_binding_metrics"`

  - `StartedAt Time`

  - `Status PredictionStructureAndBindingStartResponseStatus`

    - `const PredictionStructureAndBindingStartResponseStatusPending PredictionStructureAndBindingStartResponseStatus = "pending"`

    - `const PredictionStructureAndBindingStartResponseStatusRunning PredictionStructureAndBindingStartResponseStatus = "running"`

    - `const PredictionStructureAndBindingStartResponseStatusSucceeded PredictionStructureAndBindingStartResponseStatus = "succeeded"`

    - `const PredictionStructureAndBindingStartResponseStatusFailed PredictionStructureAndBindingStartResponseStatus = "failed"`

  - `Version string`

    Model version used for prediction

  - `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.Predictions.StructureAndBinding.Start(context.TODO(), boltzapi.PredictionStructureAndBindingStartParams{
    Input: boltzapi.PredictionStructureAndBindingStartParamsInput{
      Entities: []boltzapi.PredictionStructureAndBindingStartParamsInputEntityUnion{boltzapi.PredictionStructureAndBindingStartParamsInputEntityUnion{
        OfPredictionStructureAndBindingStartsInputEntityProteinEntity: &boltzapi.PredictionStructureAndBindingStartParamsInputEntityProteinEntity{
          ChainIDs: []string{"string"},
          Value: "value",
        },
      }},
    },
    Model: "boltz-2.1",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## List

`client.Predictions.StructureAndBinding.List(ctx, query) (*CursorPage[PredictionStructureAndBindingListResponse], error)`

**get** `/compute/v1/predictions/structure-and-binding`

List structure and binding predictions, optionally filtered by workspace

### Parameters

- `query PredictionStructureAndBindingListParams`

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

  - `ID string`

    Unique prediction identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

    When the input/output data was deleted, or null if still available

  - `Error PredictionStructureAndBindingListResponseError`

    Error details when failed

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

  - `ExpiresAt Time`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Model Boltz2_1`

    Model used for prediction

    - `const Boltz2_1Boltz2_1 Boltz2_1 = "boltz-2.1"`

  - `StartedAt Time`

  - `Status PredictionStructureAndBindingListResponseStatus`

    - `const PredictionStructureAndBindingListResponseStatusPending PredictionStructureAndBindingListResponseStatus = "pending"`

    - `const PredictionStructureAndBindingListResponseStatusRunning PredictionStructureAndBindingListResponseStatus = "running"`

    - `const PredictionStructureAndBindingListResponseStatusSucceeded PredictionStructureAndBindingListResponseStatus = "succeeded"`

    - `const PredictionStructureAndBindingListResponseStatusFailed PredictionStructureAndBindingListResponseStatus = "failed"`

  - `Version string`

    Model version used for prediction

  - `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.Predictions.StructureAndBinding.List(context.TODO(), boltzapi.PredictionStructureAndBindingListParams{

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

## Retrieve

`client.Predictions.StructureAndBinding.Get(ctx, id, query) (*PredictionStructureAndBindingGetResponse, error)`

**get** `/compute/v1/predictions/structure-and-binding/{id}`

Retrieve a prediction by ID, including its status and results.

### Parameters

- `id string`

- `query PredictionStructureAndBindingGetParams`

  - `WorkspaceID param.Field[string]`

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

### Returns

- `type PredictionStructureAndBindingGetResponse struct{…}`

  - `ID string`

    Unique prediction identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

    When the input/output data was deleted, or null if still available

  - `Error PredictionStructureAndBindingGetResponseError`

    Error details when failed

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

  - `ExpiresAt Time`

    When this resource and its associated data will be permanently deleted. Null while still in progress.

  - `Input PredictionStructureAndBindingGetResponseInput`

    Prediction input (null if data deleted)

    - `Entities []PredictionStructureAndBindingGetResponseInputEntityUnion`

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

      - `type PredictionStructureAndBindingGetResponseInputEntityProteinEntityResponse 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 []PredictionStructureAndBindingGetResponseInputEntityProteinEntityResponseModificationUnion`

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

          - `type PredictionStructureAndBindingGetResponseInputEntityProteinEntityResponseModificationCcdModificationResponse 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 PredictionStructureAndBindingGetResponseInputEntityProteinEntityResponseModificationSmilesModificationResponse 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 PredictionStructureAndBindingGetResponseInputEntityRnaEntityResponse 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 []PredictionStructureAndBindingGetResponseInputEntityRnaEntityResponseModificationUnion`

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

          - `type PredictionStructureAndBindingGetResponseInputEntityRnaEntityResponseModificationCcdModificationResponse 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 PredictionStructureAndBindingGetResponseInputEntityRnaEntityResponseModificationSmilesModificationResponse 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 PredictionStructureAndBindingGetResponseInputEntityDnaEntityResponse 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 []PredictionStructureAndBindingGetResponseInputEntityDnaEntityResponseModificationUnion`

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

          - `type PredictionStructureAndBindingGetResponseInputEntityDnaEntityResponseModificationCcdModificationResponse 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 PredictionStructureAndBindingGetResponseInputEntityDnaEntityResponseModificationSmilesModificationResponse 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 PredictionStructureAndBindingGetResponseInputEntityLigandCcdEntityResponse struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandCcd`

          - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

        - `Value string`

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

      - `type PredictionStructureAndBindingGetResponseInputEntityLigandSmilesEntityResponse struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandSmiles`

          - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

        - `Value string`

          SMILES string representing the ligand

    - `Binding PredictionStructureAndBindingGetResponseInputBindingUnion`

      - `type PredictionStructureAndBindingGetResponseInputBindingLigandProteinBindingResponse struct{…}`

        - `BinderChainID string`

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

        - `Type LigandProteinBinding`

          - `const LigandProteinBindingLigandProteinBinding LigandProteinBinding = "ligand_protein_binding"`

      - `type PredictionStructureAndBindingGetResponseInputBindingProteinProteinBindingResponse struct{…}`

        - `BinderChainIDs []string`

          Chain IDs of the protein binders

        - `Type ProteinProteinBinding`

          - `const ProteinProteinBindingProteinProteinBinding ProteinProteinBinding = "protein_protein_binding"`

    - `Bonds []PredictionStructureAndBindingGetResponseInputBond`

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

      - `Atom1 PredictionStructureAndBindingGetResponseInputBondAtom1Union`

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

        - `type PredictionStructureAndBindingGetResponseInputBondAtom1LigandAtomResponse 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 PredictionStructureAndBindingGetResponseInputBondAtom1PolymerAtomResponse 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 PredictionStructureAndBindingGetResponseInputBondAtom2Union`

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

        - `type PredictionStructureAndBindingGetResponseInputBondAtom2LigandAtomResponse 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 PredictionStructureAndBindingGetResponseInputBondAtom2PolymerAtomResponse 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 []PredictionStructureAndBindingGetResponseInputConstraintUnion`

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

      - `type PredictionStructureAndBindingGetResponseInputConstraintPocketConstraintResponse 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 PredictionStructureAndBindingGetResponseInputConstraintContactConstraintResponse 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 PredictionStructureAndBindingGetResponseInputConstraintContactConstraintResponseToken1Union`

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

          - `type PredictionStructureAndBindingGetResponseInputConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type PredictionStructureAndBindingGetResponseInputConstraintContactConstraintResponseToken1LigandContactTokenResponse 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 PredictionStructureAndBindingGetResponseInputConstraintContactConstraintResponseToken2Union`

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

          - `type PredictionStructureAndBindingGetResponseInputConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

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

    - `ModelOptions PredictionStructureAndBindingGetResponseInputModelOptions`

      - `RecyclingSteps int64`

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

      - `SamplingSteps int64`

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

      - `StepScale float64`

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

    - `NumSamples int64`

      Number of structure samples to generate

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Model Boltz2_1`

    Model used for prediction

    - `const Boltz2_1Boltz2_1 Boltz2_1 = "boltz-2.1"`

  - `Output PredictionStructureAndBindingGetResponseOutput`

    Prediction output when succeeded

    - `AllSampleResults []PredictionStructureAndBindingGetResponseOutputAllSampleResult`

      Per-sample structure results

      - `Metrics PredictionStructureAndBindingGetResponseOutputAllSampleResultMetrics`

        - `ComplexIpde float64`

          Complex interface predicted distance error. Lower is better.

        - `ComplexIplddt float64`

          Complex interface pLDDT (0-1 float). Confidence at inter-chain interfaces.

        - `ComplexPde float64`

          Complex predicted distance error. Lower is better.

        - `ComplexPlddt float64`

          Complex pLDDT (0-1 float). Per-residue confidence averaged over the complex.

        - `Iptm float64`

          Interface predicted TM score (0-1). Confidence in domain interfaces.

        - `LigandIptm float64`

          Ligand interface pTM (0-1). Only present when ligands are included.

        - `ProteinIptm float64`

          Protein-protein interface pTM (0-1). Only present for multi-protein complexes.

        - `Ptm float64`

          Predicted TM score (0-1). Global structure quality.

        - `StructureConfidence float64`

          Overall structure confidence (0-1).

      - `Structure PredictionStructureAndBindingGetResponseOutputAllSampleResultStructure`

        - `URL string`

          URL to download the file

        - `URLExpiresAt Time`

          When the presigned URL expires

    - `BestSample PredictionStructureAndBindingGetResponseOutputBestSample`

      - `Metrics PredictionStructureAndBindingGetResponseOutputBestSampleMetrics`

        - `ComplexIpde float64`

          Complex interface predicted distance error. Lower is better.

        - `ComplexIplddt float64`

          Complex interface pLDDT (0-1 float). Confidence at inter-chain interfaces.

        - `ComplexPde float64`

          Complex predicted distance error. Lower is better.

        - `ComplexPlddt float64`

          Complex pLDDT (0-1 float). Per-residue confidence averaged over the complex.

        - `Iptm float64`

          Interface predicted TM score (0-1). Confidence in domain interfaces.

        - `LigandIptm float64`

          Ligand interface pTM (0-1). Only present when ligands are included.

        - `ProteinIptm float64`

          Protein-protein interface pTM (0-1). Only present for multi-protein complexes.

        - `Ptm float64`

          Predicted TM score (0-1). Global structure quality.

        - `StructureConfidence float64`

          Overall structure confidence (0-1).

      - `Structure PredictionStructureAndBindingGetResponseOutputBestSampleStructure`

        - `URL string`

          URL to download the file

        - `URLExpiresAt Time`

          When the presigned URL expires

    - `Archive PredictionStructureAndBindingGetResponseOutputArchive`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `BindingMetrics PredictionStructureAndBindingGetResponseOutputBindingMetricsUnion`

      - `type PredictionStructureAndBindingGetResponseOutputBindingMetricsLigandProteinBindingMetrics struct{…}`

        - `BindingConfidence float64`

          Confidence that binding occurs (0-1). Primary metric for hit discovery.

        - `OptimizationScore float64`

          Binding strength ranking score for lead optimization. Higher values indicate stronger predicted binding.

        - `Type LigandProteinBindingMetrics`

          - `const LigandProteinBindingMetricsLigandProteinBindingMetrics LigandProteinBindingMetrics = "ligand_protein_binding_metrics"`

      - `type PredictionStructureAndBindingGetResponseOutputBindingMetricsProteinProteinBindingMetrics struct{…}`

        - `BindingConfidence float64`

          Confidence that binding occurs (0-1). Primary metric for hit discovery.

        - `Type ProteinProteinBindingMetrics`

          - `const ProteinProteinBindingMetricsProteinProteinBindingMetrics ProteinProteinBindingMetrics = "protein_protein_binding_metrics"`

  - `StartedAt Time`

  - `Status PredictionStructureAndBindingGetResponseStatus`

    - `const PredictionStructureAndBindingGetResponseStatusPending PredictionStructureAndBindingGetResponseStatus = "pending"`

    - `const PredictionStructureAndBindingGetResponseStatusRunning PredictionStructureAndBindingGetResponseStatus = "running"`

    - `const PredictionStructureAndBindingGetResponseStatusSucceeded PredictionStructureAndBindingGetResponseStatus = "succeeded"`

    - `const PredictionStructureAndBindingGetResponseStatusFailed PredictionStructureAndBindingGetResponseStatus = "failed"`

  - `Version string`

    Model version used for prediction

  - `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"),
  )
  structureAndBinding, err := client.Predictions.StructureAndBinding.Get(
    context.TODO(),
    "sab_pred_2X7Ab9Cd3Ef6Gh1JkLmN",
    boltzapi.PredictionStructureAndBindingGetParams{

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

## Delete Data

`client.Predictions.StructureAndBinding.DeleteData(ctx, id) (*PredictionStructureAndBindingDeleteDataResponse, error)`

**post** `/compute/v1/predictions/structure-and-binding/{id}/delete-data`

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

### Parameters

- `id string`

### Returns

- `type PredictionStructureAndBindingDeleteDataResponse struct{…}`

  - `ID string`

    ID of the resource whose data was deleted

  - `DataDeleted bool`

    - `const PredictionStructureAndBindingDeleteDataResponseDataDeletedTrue PredictionStructureAndBindingDeleteDataResponseDataDeleted = 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.Predictions.StructureAndBinding.DeleteData(context.TODO(), "sab_pred_2X7Ab9Cd3Ef6Gh1JkLmN")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Estimate Cost

`client.Predictions.StructureAndBinding.EstimateCost(ctx, body) (*PredictionStructureAndBindingEstimateCostResponse, error)`

**post** `/compute/v1/predictions/structure-and-binding/estimate-cost`

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

### Parameters

- `body PredictionStructureAndBindingEstimateCostParams`

  - `Input param.Field[PredictionStructureAndBindingEstimateCostParamsInput]`

    - `Entities []PredictionStructureAndBindingEstimateCostParamsInputEntityUnion`

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

      - `type PredictionStructureAndBindingEstimateCostParamsInputEntityProteinEntity 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 []PredictionStructureAndBindingEstimateCostParamsInputEntityProteinEntityModificationUnion`

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

          - `type PredictionStructureAndBindingEstimateCostParamsInputEntityProteinEntityModificationCcdModification 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 PredictionStructureAndBindingEstimateCostParamsInputEntityProteinEntityModificationSmilesModification 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 PredictionStructureAndBindingEstimateCostParamsInputEntityRnaEntity 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 []PredictionStructureAndBindingEstimateCostParamsInputEntityRnaEntityModificationUnion`

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

          - `type PredictionStructureAndBindingEstimateCostParamsInputEntityRnaEntityModificationCcdModification 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 PredictionStructureAndBindingEstimateCostParamsInputEntityRnaEntityModificationSmilesModification 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 PredictionStructureAndBindingEstimateCostParamsInputEntityDnaEntity 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 []PredictionStructureAndBindingEstimateCostParamsInputEntityDnaEntityModificationUnion`

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

          - `type PredictionStructureAndBindingEstimateCostParamsInputEntityDnaEntityModificationCcdModification 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 PredictionStructureAndBindingEstimateCostParamsInputEntityDnaEntityModificationSmilesModification 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 PredictionStructureAndBindingEstimateCostParamsInputEntityLigandCcdEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandCcd`

          - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

        - `Value string`

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

      - `type PredictionStructureAndBindingEstimateCostParamsInputEntityLigandSmilesEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandSmiles`

          - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

        - `Value string`

          SMILES string representing the ligand

    - `Binding PredictionStructureAndBindingEstimateCostParamsInputBindingUnion`

      - `type PredictionStructureAndBindingEstimateCostParamsInputBindingLigandProteinBinding struct{…}`

        - `BinderChainID string`

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

        - `Type LigandProteinBinding`

          - `const LigandProteinBindingLigandProteinBinding LigandProteinBinding = "ligand_protein_binding"`

      - `type PredictionStructureAndBindingEstimateCostParamsInputBindingProteinProteinBinding struct{…}`

        - `BinderChainIDs []string`

          Chain IDs of the protein binders

        - `Type ProteinProteinBinding`

          - `const ProteinProteinBindingProteinProteinBinding ProteinProteinBinding = "protein_protein_binding"`

    - `Bonds []PredictionStructureAndBindingEstimateCostParamsInputBond`

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

      - `Atom1 PredictionStructureAndBindingEstimateCostParamsInputBondAtom1Union`

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

        - `type PredictionStructureAndBindingEstimateCostParamsInputBondAtom1LigandAtom struct{…}`

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

          - `AtomName string`

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

          - `ChainID string`

            Chain ID containing the atom

          - `Type LigandAtom`

            - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

        - `type PredictionStructureAndBindingEstimateCostParamsInputBondAtom1PolymerAtom struct{…}`

          - `AtomName string`

            Standardized atom name (verifiable in CIF file on RCSB)

          - `ChainID string`

            Chain ID containing the atom

          - `ResidueIndex int64`

            0-based residue index

          - `Type PolymerAtom`

            - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

      - `Atom2 PredictionStructureAndBindingEstimateCostParamsInputBondAtom2Union`

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

        - `type PredictionStructureAndBindingEstimateCostParamsInputBondAtom2LigandAtom struct{…}`

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

          - `AtomName string`

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

          - `ChainID string`

            Chain ID containing the atom

          - `Type LigandAtom`

            - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

        - `type PredictionStructureAndBindingEstimateCostParamsInputBondAtom2PolymerAtom struct{…}`

          - `AtomName string`

            Standardized atom name (verifiable in CIF file on RCSB)

          - `ChainID string`

            Chain ID containing the atom

          - `ResidueIndex int64`

            0-based residue index

          - `Type PolymerAtom`

            - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

    - `Constraints []PredictionStructureAndBindingEstimateCostParamsInputConstraintUnion`

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

      - `type PredictionStructureAndBindingEstimateCostParamsInputConstraintPocketConstraint struct{…}`

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

        - `BinderChainID string`

          Chain ID of the binder molecule

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

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

        - `MaxDistanceAngstrom float64`

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

        - `Type Pocket`

          - `const PocketPocket Pocket = "pocket"`

        - `Force bool`

          Whether to force the constraint

      - `type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraint struct{…}`

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

        - `MaxDistanceAngstrom float64`

          Maximum distance in Angstroms

        - `Token1 PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken1Union`

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

          - `type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken1PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken1LigandContactToken struct{…}`

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

            - `AtomName string`

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

            - `ChainID string`

              Chain ID

            - `Type LigandContact`

              - `const LigandContactLigandContact LigandContact = "ligand_contact"`

        - `Token2 PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken2Union`

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

          - `type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken2PolymerContactToken struct{…}`

            - `ChainID string`

              Chain ID

            - `ResidueIndex int64`

              0-based residue index

            - `Type PolymerContact`

              - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

          - `type PredictionStructureAndBindingEstimateCostParamsInputConstraintContactConstraintToken2LigandContactToken struct{…}`

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

            - `AtomName string`

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

            - `ChainID string`

              Chain ID

            - `Type LigandContact`

              - `const LigandContactLigandContact LigandContact = "ligand_contact"`

        - `Type Contact`

          - `const ContactContact Contact = "contact"`

        - `Force bool`

          Whether to force the constraint

    - `ModelOptions PredictionStructureAndBindingEstimateCostParamsInputModelOptions`

      - `RecyclingSteps int64`

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

      - `SamplingSteps int64`

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

      - `StepScale float64`

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

    - `NumSamples int64`

      Number of structure samples to generate

  - `Model param.Field[Boltz2_1]`

    Model to use for prediction

    - `const Boltz2_1Boltz2_1 Boltz2_1 = "boltz-2.1"`

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

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

  - `Breakdown PredictionStructureAndBindingEstimateCostResponseBreakdown`

    Cost breakdown for the billed application.

    - `Application PredictionStructureAndBindingEstimateCostResponseBreakdownApplication`

      - `const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationStructureAndBinding PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "structure_and_binding"`

      - `const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationSmallMoleculeDesign PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "small_molecule_design"`

      - `const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationSmallMoleculeLibraryScreen PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "small_molecule_library_screen"`

      - `const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationProteinDesign PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "protein_design"`

      - `const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationProteinLibraryScreen PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "protein_library_screen"`

      - `const PredictionStructureAndBindingEstimateCostResponseBreakdownApplicationAdme PredictionStructureAndBindingEstimateCostResponseBreakdownApplication = "adme"`

    - `CostPerUnitUsd string`

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

    - `NumUnits int64`

      Number of 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.Predictions.StructureAndBinding.EstimateCost(context.TODO(), boltzapi.PredictionStructureAndBindingEstimateCostParams{
    Input: boltzapi.PredictionStructureAndBindingEstimateCostParamsInput{
      Entities: []boltzapi.PredictionStructureAndBindingEstimateCostParamsInputEntityUnion{boltzapi.PredictionStructureAndBindingEstimateCostParamsInputEntityUnion{
        OfPredictionStructureAndBindingEstimateCostsInputEntityProteinEntity: &boltzapi.PredictionStructureAndBindingEstimateCostParamsInputEntityProteinEntity{
          ChainIDs: []string{"string"},
          Value: "value",
        },
      }},
    },
    Model: "boltz-2.1",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Breakdown)
}
```
