## Estimate cost for a protein sequence redesign run

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

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

### Body Parameters

- `body: object { entities, num_proteins, structure, 4 more }  or object { entities, num_proteins, structure, 4 more }`

  - `BinderProteinSequenceRedesignRunInput object { entities, num_proteins, structure, 4 more }`

    - `entities: array of object { chain_id, role, type }  or object { chain_id, role, type, design_motifs }`

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

      - `BinderSequenceRedesignTargetEntity object { chain_id, role, type }`

        A fixed target chain from the input CIF.

        - `chain_id: string`

        - `role: "target"`

          - `"target"`

        - `type: "from_template"`

          - `"from_template"`

      - `BinderSequenceRedesignBinderEntity object { chain_id, role, type, design_motifs }`

        - `chain_id: string`

        - `role: "binder"`

          - `"binder"`

        - `type: "from_template"`

          - `"from_template"`

        - `design_motifs: optional array of object { filters, residues, type }`

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

          - `filters: array of object { amino_acids, type }  or object { max_fraction, type }  or object { motifs, type }`

            Filters applied to this motif in addition to global_design_filters.

            - `ExcludedAminoAcidsDesignFilter object { amino_acids, type }`

              - `amino_acids: array of string`

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

              - `type: "excluded_amino_acids"`

                - `"excluded_amino_acids"`

            - `MaxHydrophobicFractionDesignFilter object { max_fraction, type }`

              - `max_fraction: number`

              - `type: "max_hydrophobic_fraction"`

                - `"max_hydrophobic_fraction"`

            - `ExcludedSequenceMotifsDesignFilter object { motifs, type }`

              - `motifs: array of string`

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

              - `type: "excluded_sequence_motifs"`

                - `"excluded_sequence_motifs"`

          - `residues: array of number`

            0-indexed residues to redesign on this chain.

          - `type: "residues"`

            - `"residues"`

    - `num_proteins: number`

      Number of unique filter-passing redesigned proteins to generate.

    - `structure: object { type, url }  or object { data, media_type, type }`

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

      - `URLSource object { type, url }`

        - `type: "url"`

          - `"url"`

        - `url: string`

      - `CifBase64Source object { data, media_type, type }`

        - `data: string`

          Base64-encoded CIF file contents

        - `media_type: "chemical/x-cif"`

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: "base64"`

          - `"base64"`

    - `type: "binder"`

      - `"binder"`

    - `global_design_filters: optional array of object { amino_acids, type }  or object { max_fraction, type }  or object { motifs, type }`

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

      - `ExcludedAminoAcidsDesignFilter object { amino_acids, type }`

        - `amino_acids: array of string`

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

        - `type: "excluded_amino_acids"`

          - `"excluded_amino_acids"`

      - `MaxHydrophobicFractionDesignFilter object { max_fraction, type }`

        - `max_fraction: number`

        - `type: "max_hydrophobic_fraction"`

          - `"max_hydrophobic_fraction"`

      - `ExcludedSequenceMotifsDesignFilter object { motifs, type }`

        - `motifs: array of string`

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

        - `type: "excluded_sequence_motifs"`

          - `"excluded_sequence_motifs"`

    - `idempotency_key: optional string`

    - `workspace_id: optional string`

      Workspace to run this redesign in.

  - `GenericProteinSequenceRedesignRunInput object { entities, num_proteins, structure, 4 more }`

    - `entities: array of object { chain_id, type, design_motifs }`

      Every chain in the input CIF, assigned exactly once.

      - `chain_id: string`

      - `type: "from_template"`

        - `"from_template"`

      - `design_motifs: optional array of object { filters, residues, type }`

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

        - `filters: array of object { amino_acids, type }  or object { max_fraction, type }  or object { motifs, type }`

          Filters applied to this motif in addition to global_design_filters.

          - `ExcludedAminoAcidsDesignFilter object { amino_acids, type }`

            - `amino_acids: array of string`

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

            - `type: "excluded_amino_acids"`

              - `"excluded_amino_acids"`

          - `MaxHydrophobicFractionDesignFilter object { max_fraction, type }`

            - `max_fraction: number`

            - `type: "max_hydrophobic_fraction"`

              - `"max_hydrophobic_fraction"`

          - `ExcludedSequenceMotifsDesignFilter object { motifs, type }`

            - `motifs: array of string`

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

            - `type: "excluded_sequence_motifs"`

              - `"excluded_sequence_motifs"`

        - `residues: array of number`

          0-indexed residues to redesign on this chain.

        - `type: "residues"`

          - `"residues"`

    - `num_proteins: number`

      Number of unique filter-passing redesigned proteins to generate.

    - `structure: object { type, url }  or object { data, media_type, type }`

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

      - `URLSource object { type, url }`

        - `type: "url"`

          - `"url"`

        - `url: string`

      - `CifBase64Source object { data, media_type, type }`

        - `data: string`

          Base64-encoded CIF file contents

        - `media_type: "chemical/x-cif"`

          Must be chemical/x-cif for CIF files

          - `"chemical/x-cif"`

        - `type: "base64"`

          - `"base64"`

    - `type: "generic"`

      - `"generic"`

    - `global_design_filters: optional array of object { amino_acids, type }  or object { max_fraction, type }  or object { motifs, type }`

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

      - `ExcludedAminoAcidsDesignFilter object { amino_acids, type }`

        - `amino_acids: array of string`

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

        - `type: "excluded_amino_acids"`

          - `"excluded_amino_acids"`

      - `MaxHydrophobicFractionDesignFilter object { max_fraction, type }`

        - `max_fraction: number`

        - `type: "max_hydrophobic_fraction"`

          - `"max_hydrophobic_fraction"`

      - `ExcludedSequenceMotifsDesignFilter object { motifs, type }`

        - `motifs: array of string`

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

        - `type: "excluded_sequence_motifs"`

          - `"excluded_sequence_motifs"`

    - `idempotency_key: optional string`

    - `workspace_id: optional string`

      Workspace to run this redesign in.

### Returns

- `breakdown: object { application, cost_per_unit_usd, num_units }`

  Cost breakdown for the billed application.

  - `application: "structure_and_binding" or "small_molecule_design" or "small_molecule_library_screen" or 4 more`

    - `"structure_and_binding"`

    - `"small_molecule_design"`

    - `"small_molecule_library_screen"`

    - `"protein_design"`

    - `"protein_redesign"`

    - `"protein_library_screen"`

    - `"adme"`

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

  - `num_units: number`

    Number of billable units in the estimate. The unit depends on the endpoint: samples for structure-and-binding, molecules for ADME, and requested proteins or molecules for design/screen endpoints.

- `disclaimer: string`

- `estimated_cost_usd: string`

  Estimated total cost as a decimal string

### Example

```http
curl https://api.boltz.bio/compute/v1/protein/sequence-redesign/estimate-cost \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $BOLTZ_API_KEY" \
    -d '{
          "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"
        }'
```

#### Response

```json
{
  "breakdown": {
    "application": "structure_and_binding",
    "cost_per_unit_usd": "0.0500",
    "num_units": 1
  },
  "disclaimer": "This is an estimate only and may differ from your actual charges. Final billing is based on exact token counts computed at run time. For large library screens, the estimate is extrapolated from a sample and may be less accurate for highly variable inputs.",
  "estimated_cost_usd": "0.0500"
}
```
