## Start a protein sequence redesign run

`protein.sequence_redesign.start(SequenceRedesignStartParams**kwargs)  -> SequenceRedesignStartResponse`

**post** `/compute/v1/protein/sequence-redesign`

Create a protein sequence redesign run from selected residues in a fixed input structure

### Parameters

- `entities: Iterable[BinderProteinSequenceRedesignRunInputEntity]`

  Every chain in the input CIF, assigned exactly once as target or binder.

  - `class BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignTargetEntity: …`

    A fixed target chain from the input CIF.

    - `chain_id: str`

    - `role: Literal["target"]`

      - `"target"`

    - `type: Literal["from_template"]`

      - `"from_template"`

  - `class BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignBinderEntity: …`

    - `chain_id: str`

    - `role: Literal["binder"]`

      - `"binder"`

    - `type: Literal["from_template"]`

      - `"from_template"`

    - `design_motifs: Optional[Iterable[BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignBinderEntityDesignMotif]]`

      Residues to redesign. Omit this field to keep the binder chain fixed.

      - `filters: Iterable[BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignBinderEntityDesignMotifFilter]`

        Filters applied to this motif in addition to global_design_filters.

        - `class BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignBinderEntityDesignMotifFilterExcludedAminoAcidsDesignFilter: …`

          - `amino_acids: Sequence[str]`

            Single-letter amino-acid codes that must not occur in the filtered designed region.

          - `type: Literal["excluded_amino_acids"]`

            - `"excluded_amino_acids"`

        - `class BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignBinderEntityDesignMotifFilterMaxHydrophobicFractionDesignFilter: …`

          - `max_fraction: float`

          - `type: Literal["max_hydrophobic_fraction"]`

            - `"max_hydrophobic_fraction"`

        - `class BinderProteinSequenceRedesignRunInputEntityBinderSequenceRedesignBinderEntityDesignMotifFilterExcludedSequenceMotifsDesignFilter: …`

          - `motifs: Sequence[str]`

            Sequence motifs that must not occur. X matches any single residue.

          - `type: Literal["excluded_sequence_motifs"]`

            - `"excluded_sequence_motifs"`

      - `residues: Iterable[int]`

        0-indexed residues to redesign on this chain.

      - `type: Literal["residues"]`

        - `"residues"`

- `num_proteins: int`

  Number of unique filter-passing redesigned proteins to generate.

- `structure: BinderProteinSequenceRedesignRunInputStructure`

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

  - `class BinderProteinSequenceRedesignRunInputStructureURLSource: …`

    - `type: Literal["url"]`

      - `"url"`

    - `url: str`

  - `class BinderProteinSequenceRedesignRunInputStructureCifBase64Source: …`

    - `data: str`

      Base64-encoded CIF file contents

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

      Must be chemical/x-cif for CIF files

      - `"chemical/x-cif"`

    - `type: Literal["base64"]`

      - `"base64"`

- `type: Literal["binder"]`

  - `"binder"`

- `global_design_filters: Optional[Iterable[BinderProteinSequenceRedesignRunInputGlobalDesignFilter]]`

  Filters applied to every redesigned region. When omitted, cysteine is excluded. Pass [] to disable global filters.

  - `class BinderProteinSequenceRedesignRunInputGlobalDesignFilterExcludedAminoAcidsDesignFilter: …`

    - `amino_acids: Sequence[str]`

      Single-letter amino-acid codes that must not occur in the filtered designed region.

    - `type: Literal["excluded_amino_acids"]`

      - `"excluded_amino_acids"`

  - `class BinderProteinSequenceRedesignRunInputGlobalDesignFilterMaxHydrophobicFractionDesignFilter: …`

    - `max_fraction: float`

    - `type: Literal["max_hydrophobic_fraction"]`

      - `"max_hydrophobic_fraction"`

  - `class BinderProteinSequenceRedesignRunInputGlobalDesignFilterExcludedSequenceMotifsDesignFilter: …`

    - `motifs: Sequence[str]`

      Sequence motifs that must not occur. X matches any single residue.

    - `type: Literal["excluded_sequence_motifs"]`

      - `"excluded_sequence_motifs"`

- `idempotency_key: Optional[str]`

- `workspace_id: Optional[str]`

  Workspace to run this redesign in.

### Returns

- `class SequenceRedesignStartResponse: …`

  A fixed-structure protein sequence redesign run.

  - `id: str`

    Unique ProteinSequenceRedesignRun identifier

  - `completed_at: Optional[datetime]`

  - `created_at: datetime`

  - `data_deleted_at: Optional[datetime]`

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

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

    Deprecated. Use pipeline instead.

    - `"boltz-protein-redesign"`

  - `engine_version: Literal["v2026-07-14"]`

    Deprecated. Use pipeline_version instead.

    - `"v2026-07-14"`

  - `error: Optional[Error]`

    - `code: str`

      Machine-readable error code

    - `message: str`

      Human-readable error message

    - `details: Optional[object]`

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

  - `input: Optional[Input]`

    Pipeline input (null if data deleted)

    - `class InputBinderProteinSequenceRedesignRunInputResponse: …`

      - `entities: List[InputBinderProteinSequenceRedesignRunInputResponseEntity]`

        Every chain in the input CIF, assigned exactly once as target or binder.

        - `class InputBinderProteinSequenceRedesignRunInputResponseEntityBinderSequenceRedesignTargetEntityResponse: …`

          A fixed target chain from the input CIF.

          - `chain_id: str`

          - `role: Literal["target"]`

            - `"target"`

          - `type: Literal["from_template"]`

            - `"from_template"`

        - `class InputBinderProteinSequenceRedesignRunInputResponseEntityBinderSequenceRedesignBinderEntityResponse: …`

          - `chain_id: str`

          - `role: Literal["binder"]`

            - `"binder"`

          - `type: Literal["from_template"]`

            - `"from_template"`

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

            Residues to redesign. Omit this field to keep the binder chain fixed.

            - `filters: List[InputBinderProteinSequenceRedesignRunInputResponseEntityBinderSequenceRedesignBinderEntityResponseDesignMotifFilter]`

              Filters applied to this motif in addition to global_design_filters.

              - `class InputBinderProteinSequenceRedesignRunInputResponseEntityBinderSequenceRedesignBinderEntityResponseDesignMotifFilterExcludedAminoAcidsDesignFilterResponse: …`

                - `amino_acids: List[str]`

                  Single-letter amino-acid codes that must not occur in the filtered designed region.

                - `type: Literal["excluded_amino_acids"]`

                  - `"excluded_amino_acids"`

              - `class InputBinderProteinSequenceRedesignRunInputResponseEntityBinderSequenceRedesignBinderEntityResponseDesignMotifFilterMaxHydrophobicFractionDesignFilterResponse: …`

                - `max_fraction: float`

                - `type: Literal["max_hydrophobic_fraction"]`

                  - `"max_hydrophobic_fraction"`

              - `class InputBinderProteinSequenceRedesignRunInputResponseEntityBinderSequenceRedesignBinderEntityResponseDesignMotifFilterExcludedSequenceMotifsDesignFilterResponse: …`

                - `motifs: List[str]`

                  Sequence motifs that must not occur. X matches any single residue.

                - `type: Literal["excluded_sequence_motifs"]`

                  - `"excluded_sequence_motifs"`

            - `residues: List[int]`

              0-indexed residues to redesign on this chain.

            - `type: Literal["residues"]`

              - `"residues"`

      - `num_proteins: int`

        Number of unique filter-passing redesigned proteins to generate.

      - `structure: InputBinderProteinSequenceRedesignRunInputResponseStructure`

        - `url: str`

          URL to download the file

        - `url_expires_at: datetime`

          When the presigned URL expires

      - `type: Literal["binder"]`

        - `"binder"`

      - `global_design_filters: Optional[List[InputBinderProteinSequenceRedesignRunInputResponseGlobalDesignFilter]]`

        Filters applied to every redesigned region. When omitted, cysteine is excluded. Pass [] to disable global filters.

        - `class InputBinderProteinSequenceRedesignRunInputResponseGlobalDesignFilterExcludedAminoAcidsDesignFilterResponse: …`

          - `amino_acids: List[str]`

            Single-letter amino-acid codes that must not occur in the filtered designed region.

          - `type: Literal["excluded_amino_acids"]`

            - `"excluded_amino_acids"`

        - `class InputBinderProteinSequenceRedesignRunInputResponseGlobalDesignFilterMaxHydrophobicFractionDesignFilterResponse: …`

          - `max_fraction: float`

          - `type: Literal["max_hydrophobic_fraction"]`

            - `"max_hydrophobic_fraction"`

        - `class InputBinderProteinSequenceRedesignRunInputResponseGlobalDesignFilterExcludedSequenceMotifsDesignFilterResponse: …`

          - `motifs: List[str]`

            Sequence motifs that must not occur. X matches any single residue.

          - `type: Literal["excluded_sequence_motifs"]`

            - `"excluded_sequence_motifs"`

      - `idempotency_key: Optional[str]`

      - `workspace_id: Optional[str]`

        Workspace to run this redesign in.

    - `class InputGenericProteinSequenceRedesignRunInputResponse: …`

      - `entities: List[InputGenericProteinSequenceRedesignRunInputResponseEntity]`

        Every chain in the input CIF, assigned exactly once.

        - `chain_id: str`

        - `type: Literal["from_template"]`

          - `"from_template"`

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

          Residues to redesign. Omit this field to keep the chain fixed.

          - `filters: List[InputGenericProteinSequenceRedesignRunInputResponseEntityDesignMotifFilter]`

            Filters applied to this motif in addition to global_design_filters.

            - `class InputGenericProteinSequenceRedesignRunInputResponseEntityDesignMotifFilterExcludedAminoAcidsDesignFilterResponse: …`

              - `amino_acids: List[str]`

                Single-letter amino-acid codes that must not occur in the filtered designed region.

              - `type: Literal["excluded_amino_acids"]`

                - `"excluded_amino_acids"`

            - `class InputGenericProteinSequenceRedesignRunInputResponseEntityDesignMotifFilterMaxHydrophobicFractionDesignFilterResponse: …`

              - `max_fraction: float`

              - `type: Literal["max_hydrophobic_fraction"]`

                - `"max_hydrophobic_fraction"`

            - `class InputGenericProteinSequenceRedesignRunInputResponseEntityDesignMotifFilterExcludedSequenceMotifsDesignFilterResponse: …`

              - `motifs: List[str]`

                Sequence motifs that must not occur. X matches any single residue.

              - `type: Literal["excluded_sequence_motifs"]`

                - `"excluded_sequence_motifs"`

          - `residues: List[int]`

            0-indexed residues to redesign on this chain.

          - `type: Literal["residues"]`

            - `"residues"`

      - `num_proteins: int`

        Number of unique filter-passing redesigned proteins to generate.

      - `structure: InputGenericProteinSequenceRedesignRunInputResponseStructure`

        - `url: str`

          URL to download the file

        - `url_expires_at: datetime`

          When the presigned URL expires

      - `type: Literal["generic"]`

        - `"generic"`

      - `global_design_filters: Optional[List[InputGenericProteinSequenceRedesignRunInputResponseGlobalDesignFilter]]`

        Filters applied to every redesigned region. When omitted, cysteine is excluded. Pass [] to disable global filters.

        - `class InputGenericProteinSequenceRedesignRunInputResponseGlobalDesignFilterExcludedAminoAcidsDesignFilterResponse: …`

          - `amino_acids: List[str]`

            Single-letter amino-acid codes that must not occur in the filtered designed region.

          - `type: Literal["excluded_amino_acids"]`

            - `"excluded_amino_acids"`

        - `class InputGenericProteinSequenceRedesignRunInputResponseGlobalDesignFilterMaxHydrophobicFractionDesignFilterResponse: …`

          - `max_fraction: float`

          - `type: Literal["max_hydrophobic_fraction"]`

            - `"max_hydrophobic_fraction"`

        - `class InputGenericProteinSequenceRedesignRunInputResponseGlobalDesignFilterExcludedSequenceMotifsDesignFilterResponse: …`

          - `motifs: List[str]`

            Sequence motifs that must not occur. X matches any single residue.

          - `type: Literal["excluded_sequence_motifs"]`

            - `"excluded_sequence_motifs"`

      - `idempotency_key: Optional[str]`

      - `workspace_id: Optional[str]`

        Workspace to run this redesign in.

  - `livemode: bool`

    Whether this resource was created with a live API key.

  - `pipeline: Literal["boltz-protein-redesign"]`

    - `"boltz-protein-redesign"`

  - `pipeline_version: Literal["v2026-07-14"]`

    - `"v2026-07-14"`

  - `progress: Optional[Progress]`

    - `num_proteins_generated: int`

      Number of protein binders generated so far

    - `total_proteins_to_generate: int`

      Total number of protein binders requested

    - `latest_result_id: Optional[str]`

      ID of the most recently generated result

  - `started_at: Optional[datetime]`

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

    - `"pending"`

    - `"running"`

    - `"succeeded"`

    - `"failed"`

    - `"stopped"`

  - `stopped_at: Optional[datetime]`

  - `workspace_id: str`

    Workspace ID

  - `idempotency_key: Optional[str]`

    Client-provided idempotency key

### Example

```python
import os
from boltz_api import Boltz

client = Boltz(
    api_key=os.environ.get("BOLTZ_API_KEY"),  # This is the default and can be omitted
)
response = client.protein.sequence_redesign.start(
    entities=[{
        "chain_id": "x",
        "role": "target",
        "type": "from_template",
    }, {
        "chain_id": "x",
        "role": "target",
        "type": "from_template",
    }],
    num_proteins=1,
    structure={
        "type": "url",
        "url": "https://example.com",
    },
    type="binder",
)
print(response.id)
```

#### Response

```json
{
  "id": "id",
  "completed_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "data_deleted_at": "2019-12-27T18:11:19.117Z",
  "engine": "boltz-protein-redesign",
  "engine_version": "v2026-07-14",
  "error": {
    "code": "code",
    "message": "message",
    "details": {}
  },
  "input": {
    "entities": [
      {
        "chain_id": "x",
        "role": "target",
        "type": "from_template"
      },
      {
        "chain_id": "x",
        "role": "target",
        "type": "from_template"
      }
    ],
    "num_proteins": 1,
    "structure": {
      "url": "https://example.com",
      "url_expires_at": "2019-12-27T18:11:19.117Z"
    },
    "type": "binder",
    "global_design_filters": [
      {
        "amino_acids": [
          "x"
        ],
        "type": "excluded_amino_acids"
      }
    ],
    "idempotency_key": "idempotency_key",
    "workspace_id": "workspace_id"
  },
  "livemode": true,
  "pipeline": "boltz-protein-redesign",
  "pipeline_version": "v2026-07-14",
  "progress": {
    "num_proteins_generated": 0,
    "total_proteins_to_generate": 1,
    "latest_result_id": "latest_result_id"
  },
  "started_at": "2019-12-27T18:11:19.117Z",
  "status": "pending",
  "stopped_at": "2019-12-27T18:11:19.117Z",
  "workspace_id": "workspace_id",
  "idempotency_key": "idempotency_key"
}
```
