Skip to content
Go to Boltz API

Protein

Protein Pipeline — design novel protein binders and screen protein libraries against targets. Includes de novo protein design and library screening.

ProteinDesign

Generate novel protein binders optimized for binding to a target structure. Binder specifications can be provided directly, uploaded as structure templates, or selected from Boltz-managed curated nanobody and antibody defaults. Results are scored by binding confidence (likelihood of protein-protein interaction) and structure confidence.

Start a protein de novo design run
client.protein.design.start(DesignStartParams { binder_specification, num_proteins, target, 2 more } body, RequestOptionsoptions?): DesignStartResponse { id, completed_at, created_at, 14 more }
POST/compute/v1/protein/design
List protein design runs
client.protein.design.list(DesignListParams { after_id, before_id, limit, workspace_id } query?, RequestOptionsoptions?): CursorPage<DesignListResponse { id, completed_at, created_at, 13 more } >
GET/compute/v1/protein/design
Get protein design run status
client.protein.design.retrieve(stringid, DesignRetrieveParams { workspace_id } query?, RequestOptionsoptions?): DesignRetrieveResponse { id, completed_at, created_at, 14 more }
GET/compute/v1/protein/design/{id}
Get generated protein designs
client.protein.design.listResults(stringid, DesignListResultsParams { after_id, before_id, limit, workspace_id } query?, RequestOptionsoptions?): CursorPage<DesignListResultsResponse { id, artifacts, created_at, 3 more } >
GET/compute/v1/protein/design/{id}/results
Stop a running protein design run
client.protein.design.stop(stringid, RequestOptionsoptions?): DesignStopResponse { id, completed_at, created_at, 14 more }
POST/compute/v1/protein/design/{id}/stop
Delete protein design run data
client.protein.design.deleteData(stringid, RequestOptionsoptions?): DesignDeleteDataResponse { id, data_deleted, data_deleted_at }
POST/compute/v1/protein/design/{id}/delete-data
Estimate cost for a protein design run
client.protein.design.estimateCost(DesignEstimateCostParams { binder_specification, num_proteins, target, 2 more } body, RequestOptionsoptions?): DesignEstimateCostResponse { breakdown, disclaimer, estimated_cost_usd }
POST/compute/v1/protein/design/estimate-cost
ModelsExpand Collapse
DesignStartResponse { id, completed_at, created_at, 14 more }

A protein design pipeline run that generates novel protein binders

id: string

Unique ProteinDesignRun identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

input: Input | null

Pipeline input (null if data deleted)

binder_specification: StructureTemplateBinderSpecResponse { chain_selection, modality, structure, 2 more } | NoTemplateBinderSpecResponse { entities, modality, type, 2 more } | BoltzCuratedBinderSpecResponse { binder, type, rules }

Binder specification for protein design. Use no_template for sequence-defined binders, structure_template for uploaded binder structures, or boltz_curated for Boltz-managed nanobody and antibody defaults.

One of the following:
StructureTemplateBinderSpecResponse { chain_selection, modality, structure, 2 more }

Binder specification starting from an existing 3D structure. Upload a CIF/PDB file and select which chains to include, which residues to keep, and which regions to redesign. Only chains included in chain_selection are part of the pipeline run.

chain_selection: Record<string, StructureTemplatePolymerChainSpec { chain_type, crop_residues, design_motifs } | StructureTemplateLigandChainSpec { chain_type } >

Chains selected from the uploaded binder structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep (crop_residues). Omit design_motifs to include the chain as fixed scaffold context.

One of the following:
StructureTemplatePolymerChainSpec { chain_type, crop_residues, design_motifs }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
design_motifs?: Array<ReplacementMotif { design_length_range, end_index, start_index, type } | InsertionMotif { after_residue_index, design_length_range, type } >

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

One of the following:
ReplacementMotif { design_length_range, end_index, start_index, type }

Replace a contiguous region of the sequence with a designed segment. Residues from start_index to end_index (inclusive) are replaced with a new sequence of the specified length.

design_length_range: DesignLengthRange { max, min }

Allowed sequence length range for designed regions

max: number

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

minimum0
min: number

Minimum sequence length in residues

minimum0
end_index: number

0-indexed end residue (inclusive)

minimum0
start_index: number

0-indexed start residue (inclusive)

minimum0
type: "replacement"
InsertionMotif { after_residue_index, design_length_range, type }

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

after_residue_index: number

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

minimum-1
design_length_range: DesignLengthRange { max, min }

Allowed sequence length range for designed regions

max: number

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

minimum0
min: number

Minimum sequence length in residues

minimum0
type: "insertion"
StructureTemplateLigandChainSpec { chain_type }

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

chain_type: "ligand"
modality: "peptide" | "antibody" | "nanobody" | "custom_protein"
One of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
NoTemplateBinderSpecResponse { entities, modality, type, 2 more }

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

entities: Array<DesignedProteinEntityResponse { chain_ids, type, value, 2 more } | FixedProteinEntityResponse { chain_ids, type, value, 2 more } | FixedRnaEntityResponse { chain_ids, type, value, 2 more } | 3 more>

Binder entities composing the design. At least one must be a designed_protein entity. Additional fixed entities (RNA, DNA, ligands) can be included as part of the complex.

One of the following:
DesignedProteinEntityResponse { chain_ids, type, value, 2 more }

Protein binder entity with designed and/or fixed segments.

chain_ids: Array<string>

Chain IDs to assign to this entity

type: "designed_protein"
value: string

Binder sequence specification. Fixed amino acids are written as literal single-letter codes. Designed regions are written as a length (fixed) or a length range (min..max). Example: “MKTAYI5..10VKSHFSRQ” means fixed MKTAYI, then 5-10 designed residues, then fixed VKSHFSRQ. “20” means 20 fully designed residues. “ACDE8GHI” means fixed ACDE, then 8 designed residues, then fixed GHI.

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedProteinEntityResponse { chain_ids, type, value, 2 more }

A fixed protein entity whose sequence is not redesigned.

chain_ids: Array<string>

Chain IDs to assign to this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedRnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedDnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedLigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "ligand_smiles"
value: string

SMILES string representing the ligand

FixedLigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "ligand_ccd"
value: string

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

modality: "peptide" | "antibody" | "nanobody" | "custom_protein"
One of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
type: "no_template"
bonds?: Array<Bond>

Covalent bond constraints between atoms in the binder complex. If defining bonds where an atom is part of a designed protein chain, assume residue indices count designed regions as the minimum length. Example: designed protein “1..3C1..2”, “C” is residue 1 (0-indexed) of the designed protein.

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
BoltzCuratedBinderSpecResponse { binder, type, rules }

Boltz-managed curated binder specification. Choose a curated nanobody or antibody family and Boltz will select from maintained template lists during design. The curated lists are managed by Boltz and may be updated over time to improve quality and coverage.

binder: "boltz_nanobody" | "boltz_antibody"

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

One of the following:
"boltz_nanobody"
"boltz_antibody"
type: "boltz_curated"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
num_proteins: number

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

minimum10
maximum1000000
target: StructureTemplateTargetResponse { chain_selection, structure, type } | NoTemplateTargetResponse { entities, type, bonds, 4 more }

Target specification (structure template or template-free)

One of the following:
StructureTemplateTargetResponse { chain_selection, structure, type }

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

chain_selection: Record<string, StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more } | StructureTemplateTargetLigandChainSpec { chain_type } >

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

One of the following:
StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
epitope_residues?: Array<number>

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

flexible_residues?: Array<number>

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

non_binding_residues?: Array<number>

0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

StructureTemplateTargetLigandChainSpec { chain_type }

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

chain_type: "ligand"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
NoTemplateTargetResponse { entities, type, bonds, 4 more }

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

entities: Array<ProteinEntityResponse { chain_ids, type, value, 2 more } | RnaEntityResponse { chain_ids, type, value, 2 more } | DnaEntityResponse { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

type: "no_template"
bonds?: Array<Bond>

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

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
constraints?: Array<PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more } | ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more } >

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

One of the following:
PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more }

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

binder_chain_id: string

Chain ID of the binder molecule

contact_residues: Record<string, Array<number>>

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

max_distance_angstrom: number

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

type: "pocket"
force?: boolean

Whether to force the constraint

ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more }

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

max_distance_angstrom: number

Maximum distance in Angstroms

token1: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
token2: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
type: "contact"
force?: boolean

Whether to force the constraint

epitope_ligand_chains?: Array<string>

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

epitope_residues?: Record<string, Array<number>>

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

non_binding_residues?: Record<string, Array<number>>

Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

idempotency_key?: string

Client-provided key to prevent duplicate submissions on retries

maxLength255
workspace_id?: string

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

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein design

pipeline_version: "1.0"

Pipeline version used for protein design

progress: Progress | null
num_proteins_generated: number

Number of protein binders generated so far

minimum0
total_proteins_to_generate: number

Total number of protein binders requested

minimum1
latest_result_id?: string

ID of the most recently generated result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

DesignListResponse { id, completed_at, created_at, 13 more }

Summary of a protein design pipeline run (excludes input)

id: string

Unique ProteinDesignRunSummary identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein design

pipeline_version: "1.0"

Pipeline version used for protein design

progress: Progress | null
num_proteins_generated: number

Number of protein binders generated so far

minimum0
total_proteins_to_generate: number

Total number of protein binders requested

minimum1
latest_result_id?: string

ID of the most recently generated result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

DesignRetrieveResponse { id, completed_at, created_at, 14 more }

A protein design pipeline run that generates novel protein binders

id: string

Unique ProteinDesignRun identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

input: Input | null

Pipeline input (null if data deleted)

binder_specification: StructureTemplateBinderSpecResponse { chain_selection, modality, structure, 2 more } | NoTemplateBinderSpecResponse { entities, modality, type, 2 more } | BoltzCuratedBinderSpecResponse { binder, type, rules }

Binder specification for protein design. Use no_template for sequence-defined binders, structure_template for uploaded binder structures, or boltz_curated for Boltz-managed nanobody and antibody defaults.

One of the following:
StructureTemplateBinderSpecResponse { chain_selection, modality, structure, 2 more }

Binder specification starting from an existing 3D structure. Upload a CIF/PDB file and select which chains to include, which residues to keep, and which regions to redesign. Only chains included in chain_selection are part of the pipeline run.

chain_selection: Record<string, StructureTemplatePolymerChainSpec { chain_type, crop_residues, design_motifs } | StructureTemplateLigandChainSpec { chain_type } >

Chains selected from the uploaded binder structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep (crop_residues). Omit design_motifs to include the chain as fixed scaffold context.

One of the following:
StructureTemplatePolymerChainSpec { chain_type, crop_residues, design_motifs }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
design_motifs?: Array<ReplacementMotif { design_length_range, end_index, start_index, type } | InsertionMotif { after_residue_index, design_length_range, type } >

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

One of the following:
ReplacementMotif { design_length_range, end_index, start_index, type }

Replace a contiguous region of the sequence with a designed segment. Residues from start_index to end_index (inclusive) are replaced with a new sequence of the specified length.

design_length_range: DesignLengthRange { max, min }

Allowed sequence length range for designed regions

max: number

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

minimum0
min: number

Minimum sequence length in residues

minimum0
end_index: number

0-indexed end residue (inclusive)

minimum0
start_index: number

0-indexed start residue (inclusive)

minimum0
type: "replacement"
InsertionMotif { after_residue_index, design_length_range, type }

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

after_residue_index: number

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

minimum-1
design_length_range: DesignLengthRange { max, min }

Allowed sequence length range for designed regions

max: number

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

minimum0
min: number

Minimum sequence length in residues

minimum0
type: "insertion"
StructureTemplateLigandChainSpec { chain_type }

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

chain_type: "ligand"
modality: "peptide" | "antibody" | "nanobody" | "custom_protein"
One of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
NoTemplateBinderSpecResponse { entities, modality, type, 2 more }

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

entities: Array<DesignedProteinEntityResponse { chain_ids, type, value, 2 more } | FixedProteinEntityResponse { chain_ids, type, value, 2 more } | FixedRnaEntityResponse { chain_ids, type, value, 2 more } | 3 more>

Binder entities composing the design. At least one must be a designed_protein entity. Additional fixed entities (RNA, DNA, ligands) can be included as part of the complex.

One of the following:
DesignedProteinEntityResponse { chain_ids, type, value, 2 more }

Protein binder entity with designed and/or fixed segments.

chain_ids: Array<string>

Chain IDs to assign to this entity

type: "designed_protein"
value: string

Binder sequence specification. Fixed amino acids are written as literal single-letter codes. Designed regions are written as a length (fixed) or a length range (min..max). Example: “MKTAYI5..10VKSHFSRQ” means fixed MKTAYI, then 5-10 designed residues, then fixed VKSHFSRQ. “20” means 20 fully designed residues. “ACDE8GHI” means fixed ACDE, then 8 designed residues, then fixed GHI.

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedProteinEntityResponse { chain_ids, type, value, 2 more }

A fixed protein entity whose sequence is not redesigned.

chain_ids: Array<string>

Chain IDs to assign to this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedRnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedDnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedLigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "ligand_smiles"
value: string

SMILES string representing the ligand

FixedLigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "ligand_ccd"
value: string

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

modality: "peptide" | "antibody" | "nanobody" | "custom_protein"
One of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
type: "no_template"
bonds?: Array<Bond>

Covalent bond constraints between atoms in the binder complex. If defining bonds where an atom is part of a designed protein chain, assume residue indices count designed regions as the minimum length. Example: designed protein “1..3C1..2”, “C” is residue 1 (0-indexed) of the designed protein.

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
BoltzCuratedBinderSpecResponse { binder, type, rules }

Boltz-managed curated binder specification. Choose a curated nanobody or antibody family and Boltz will select from maintained template lists during design. The curated lists are managed by Boltz and may be updated over time to improve quality and coverage.

binder: "boltz_nanobody" | "boltz_antibody"

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

One of the following:
"boltz_nanobody"
"boltz_antibody"
type: "boltz_curated"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
num_proteins: number

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

minimum10
maximum1000000
target: StructureTemplateTargetResponse { chain_selection, structure, type } | NoTemplateTargetResponse { entities, type, bonds, 4 more }

Target specification (structure template or template-free)

One of the following:
StructureTemplateTargetResponse { chain_selection, structure, type }

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

chain_selection: Record<string, StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more } | StructureTemplateTargetLigandChainSpec { chain_type } >

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

One of the following:
StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
epitope_residues?: Array<number>

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

flexible_residues?: Array<number>

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

non_binding_residues?: Array<number>

0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

StructureTemplateTargetLigandChainSpec { chain_type }

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

chain_type: "ligand"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
NoTemplateTargetResponse { entities, type, bonds, 4 more }

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

entities: Array<ProteinEntityResponse { chain_ids, type, value, 2 more } | RnaEntityResponse { chain_ids, type, value, 2 more } | DnaEntityResponse { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

type: "no_template"
bonds?: Array<Bond>

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

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
constraints?: Array<PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more } | ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more } >

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

One of the following:
PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more }

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

binder_chain_id: string

Chain ID of the binder molecule

contact_residues: Record<string, Array<number>>

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

max_distance_angstrom: number

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

type: "pocket"
force?: boolean

Whether to force the constraint

ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more }

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

max_distance_angstrom: number

Maximum distance in Angstroms

token1: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
token2: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
type: "contact"
force?: boolean

Whether to force the constraint

epitope_ligand_chains?: Array<string>

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

epitope_residues?: Record<string, Array<number>>

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

non_binding_residues?: Record<string, Array<number>>

Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

idempotency_key?: string

Client-provided key to prevent duplicate submissions on retries

maxLength255
workspace_id?: string

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

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein design

pipeline_version: "1.0"

Pipeline version used for protein design

progress: Progress | null
num_proteins_generated: number

Number of protein binders generated so far

minimum0
total_proteins_to_generate: number

Total number of protein binders requested

minimum1
latest_result_id?: string

ID of the most recently generated result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

DesignListResultsResponse { id, artifacts, created_at, 3 more }

A single generated protein design

id: string

Unique result ID

artifacts: Artifacts { archive, structure }
archive: Archive { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
structure?: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
created_at: string
formatdate-time
entities: Array<ProteinEntity { chain_ids, type, value, 2 more } | RnaEntity { chain_ids, type, value, 2 more } | DnaEntity { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntity { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntity { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntity { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntity { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntity { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

metrics: Metrics { binding_confidence, helix_fraction, iptm, 4 more }

Structural and binding quality metrics for a designed protein binder

binding_confidence: number

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

helix_fraction: number

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

minimum0
maximum1
iptm: number

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

loop_fraction: number

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

minimum0
maximum1
min_interaction_pae: number

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

sheet_fraction: number

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

minimum0
maximum1
structure_confidence: number

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

warnings?: Array<Warning>

Warnings about potential quality issues with this result.

code: string

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

message: string

Human-readable description of the warning

DesignStopResponse { id, completed_at, created_at, 14 more }

A protein design pipeline run that generates novel protein binders

id: string

Unique ProteinDesignRun identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

input: Input | null

Pipeline input (null if data deleted)

binder_specification: StructureTemplateBinderSpecResponse { chain_selection, modality, structure, 2 more } | NoTemplateBinderSpecResponse { entities, modality, type, 2 more } | BoltzCuratedBinderSpecResponse { binder, type, rules }

Binder specification for protein design. Use no_template for sequence-defined binders, structure_template for uploaded binder structures, or boltz_curated for Boltz-managed nanobody and antibody defaults.

One of the following:
StructureTemplateBinderSpecResponse { chain_selection, modality, structure, 2 more }

Binder specification starting from an existing 3D structure. Upload a CIF/PDB file and select which chains to include, which residues to keep, and which regions to redesign. Only chains included in chain_selection are part of the pipeline run.

chain_selection: Record<string, StructureTemplatePolymerChainSpec { chain_type, crop_residues, design_motifs } | StructureTemplateLigandChainSpec { chain_type } >

Chains selected from the uploaded binder structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep (crop_residues). Omit design_motifs to include the chain as fixed scaffold context.

One of the following:
StructureTemplatePolymerChainSpec { chain_type, crop_residues, design_motifs }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
design_motifs?: Array<ReplacementMotif { design_length_range, end_index, start_index, type } | InsertionMotif { after_residue_index, design_length_range, type } >

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

One of the following:
ReplacementMotif { design_length_range, end_index, start_index, type }

Replace a contiguous region of the sequence with a designed segment. Residues from start_index to end_index (inclusive) are replaced with a new sequence of the specified length.

design_length_range: DesignLengthRange { max, min }

Allowed sequence length range for designed regions

max: number

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

minimum0
min: number

Minimum sequence length in residues

minimum0
end_index: number

0-indexed end residue (inclusive)

minimum0
start_index: number

0-indexed start residue (inclusive)

minimum0
type: "replacement"
InsertionMotif { after_residue_index, design_length_range, type }

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

after_residue_index: number

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

minimum-1
design_length_range: DesignLengthRange { max, min }

Allowed sequence length range for designed regions

max: number

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

minimum0
min: number

Minimum sequence length in residues

minimum0
type: "insertion"
StructureTemplateLigandChainSpec { chain_type }

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

chain_type: "ligand"
modality: "peptide" | "antibody" | "nanobody" | "custom_protein"
One of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
NoTemplateBinderSpecResponse { entities, modality, type, 2 more }

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

entities: Array<DesignedProteinEntityResponse { chain_ids, type, value, 2 more } | FixedProteinEntityResponse { chain_ids, type, value, 2 more } | FixedRnaEntityResponse { chain_ids, type, value, 2 more } | 3 more>

Binder entities composing the design. At least one must be a designed_protein entity. Additional fixed entities (RNA, DNA, ligands) can be included as part of the complex.

One of the following:
DesignedProteinEntityResponse { chain_ids, type, value, 2 more }

Protein binder entity with designed and/or fixed segments.

chain_ids: Array<string>

Chain IDs to assign to this entity

type: "designed_protein"
value: string

Binder sequence specification. Fixed amino acids are written as literal single-letter codes. Designed regions are written as a length (fixed) or a length range (min..max). Example: “MKTAYI5..10VKSHFSRQ” means fixed MKTAYI, then 5-10 designed residues, then fixed VKSHFSRQ. “20” means 20 fully designed residues. “ACDE8GHI” means fixed ACDE, then 8 designed residues, then fixed GHI.

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedProteinEntityResponse { chain_ids, type, value, 2 more }

A fixed protein entity whose sequence is not redesigned.

chain_ids: Array<string>

Chain IDs to assign to this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedRnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedDnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

Optional CCD polymer modifications. Defaults to [] when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

FixedLigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "ligand_smiles"
value: string

SMILES string representing the ligand

FixedLigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs to assign to this entity

type: "ligand_ccd"
value: string

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

modality: "peptide" | "antibody" | "nanobody" | "custom_protein"
One of the following:
"peptide"
"antibody"
"nanobody"
"custom_protein"
type: "no_template"
bonds?: Array<Bond>

Covalent bond constraints between atoms in the binder complex. If defining bonds where an atom is part of a designed protein chain, assume residue indices count designed regions as the minimum length. Example: designed protein “1..3C1..2”, “C” is residue 1 (0-indexed) of the designed protein.

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
BoltzCuratedBinderSpecResponse { binder, type, rules }

Boltz-managed curated binder specification. Choose a curated nanobody or antibody family and Boltz will select from maintained template lists during design. The curated lists are managed by Boltz and may be updated over time to improve quality and coverage.

binder: "boltz_nanobody" | "boltz_antibody"

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

One of the following:
"boltz_nanobody"
"boltz_antibody"
type: "boltz_curated"
rules?: Rules { excluded_amino_acids, excluded_sequence_motifs, max_hydrophobic_fraction }

Constraints applied during sequence design

excluded_amino_acids?: Array<string>

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

excluded_sequence_motifs?: Array<string>

Sequence motifs to exclude from designed regions. Designs containing any of these motifs are filtered out before scoring. Use X as a single-residue wildcard (e.g. “NGS”, “NXS”).

max_hydrophobic_fraction?: number

Maximum allowed fraction of hydrophobic residues (I, L, V, M, F, W, Y) in designed regions. Designs exceeding this threshold are filtered out before scoring. Leave empty to disable.

minimum0
maximum1
num_proteins: number

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

minimum10
maximum1000000
target: StructureTemplateTargetResponse { chain_selection, structure, type } | NoTemplateTargetResponse { entities, type, bonds, 4 more }

Target specification (structure template or template-free)

One of the following:
StructureTemplateTargetResponse { chain_selection, structure, type }

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

chain_selection: Record<string, StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more } | StructureTemplateTargetLigandChainSpec { chain_type } >

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

One of the following:
StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
epitope_residues?: Array<number>

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

flexible_residues?: Array<number>

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

non_binding_residues?: Array<number>

0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

StructureTemplateTargetLigandChainSpec { chain_type }

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

chain_type: "ligand"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
NoTemplateTargetResponse { entities, type, bonds, 4 more }

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

entities: Array<ProteinEntityResponse { chain_ids, type, value, 2 more } | RnaEntityResponse { chain_ids, type, value, 2 more } | DnaEntityResponse { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

type: "no_template"
bonds?: Array<Bond>

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

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
constraints?: Array<PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more } | ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more } >

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

One of the following:
PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more }

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

binder_chain_id: string

Chain ID of the binder molecule

contact_residues: Record<string, Array<number>>

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

max_distance_angstrom: number

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

type: "pocket"
force?: boolean

Whether to force the constraint

ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more }

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

max_distance_angstrom: number

Maximum distance in Angstroms

token1: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
token2: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
type: "contact"
force?: boolean

Whether to force the constraint

epitope_ligand_chains?: Array<string>

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

epitope_residues?: Record<string, Array<number>>

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

non_binding_residues?: Record<string, Array<number>>

Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

idempotency_key?: string

Client-provided key to prevent duplicate submissions on retries

maxLength255
workspace_id?: string

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

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein design

pipeline_version: "1.0"

Pipeline version used for protein design

progress: Progress | null
num_proteins_generated: number

Number of protein binders generated so far

minimum0
total_proteins_to_generate: number

Total number of protein binders requested

minimum1
latest_result_id?: string

ID of the most recently generated result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

DesignDeleteDataResponse { id, data_deleted, data_deleted_at }
id: string

ID of the resource whose data was deleted

data_deleted: true
data_deleted_at: string

When the data was deleted

formatdate-time
DesignEstimateCostResponse { breakdown, disclaimer, estimated_cost_usd }

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

breakdown: Breakdown { application, cost_per_unit_usd, num_units }

Cost breakdown for the billed application.

application: "structure_and_binding" | "small_molecule_design" | "small_molecule_library_screen" | 4 more
One of the following:
"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

ProteinLibrary Screen

Screen an existing library of proteins against a target structure. Results are scored by binding confidence (likelihood of protein-protein interaction) and structure confidence.

Start a protein library screen
client.protein.libraryScreen.start(LibraryScreenStartParams { proteins, target, idempotency_key, workspace_id } body, RequestOptionsoptions?): LibraryScreenStartResponse { id, completed_at, created_at, 14 more }
POST/compute/v1/protein/library-screen
List protein library screens
client.protein.libraryScreen.list(LibraryScreenListParams { after_id, before_id, limit, workspace_id } query?, RequestOptionsoptions?): CursorPage<LibraryScreenListResponse { id, completed_at, created_at, 13 more } >
GET/compute/v1/protein/library-screen
Get protein library screen status
client.protein.libraryScreen.retrieve(stringid, LibraryScreenRetrieveParams { workspace_id } query?, RequestOptionsoptions?): LibraryScreenRetrieveResponse { id, completed_at, created_at, 14 more }
GET/compute/v1/protein/library-screen/{id}
Get screened protein candidates
client.protein.libraryScreen.listResults(stringid, LibraryScreenListResultsParams { after_id, before_id, limit, workspace_id } query?, RequestOptionsoptions?): CursorPage<LibraryScreenListResultsResponse { id, artifacts, created_at, 4 more } >
GET/compute/v1/protein/library-screen/{id}/results
Stop a running protein library screen
client.protein.libraryScreen.stop(stringid, RequestOptionsoptions?): LibraryScreenStopResponse { id, completed_at, created_at, 14 more }
POST/compute/v1/protein/library-screen/{id}/stop
Delete protein library screen data
client.protein.libraryScreen.deleteData(stringid, RequestOptionsoptions?): LibraryScreenDeleteDataResponse { id, data_deleted, data_deleted_at }
POST/compute/v1/protein/library-screen/{id}/delete-data
Estimate cost for a protein library screen
client.protein.libraryScreen.estimateCost(LibraryScreenEstimateCostParams { proteins, target, idempotency_key, workspace_id } body, RequestOptionsoptions?): LibraryScreenEstimateCostResponse { breakdown, disclaimer, estimated_cost_usd }
POST/compute/v1/protein/library-screen/estimate-cost
ModelsExpand Collapse
LibraryScreenStartResponse { id, completed_at, created_at, 14 more }

A protein library screening pipeline run

id: string

Unique ProteinLibraryScreen identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

input: Input | null

Pipeline input (null if data deleted)

proteins: Proteins { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
target: StructureTemplateTargetResponse { chain_selection, structure, type } | NoTemplateTargetResponse { entities, type, bonds, 4 more }

Target specification (structure template or template-free)

One of the following:
StructureTemplateTargetResponse { chain_selection, structure, type }

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

chain_selection: Record<string, StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more } | StructureTemplateTargetLigandChainSpec { chain_type } >

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

One of the following:
StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
epitope_residues?: Array<number>

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

flexible_residues?: Array<number>

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

non_binding_residues?: Array<number>

0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

StructureTemplateTargetLigandChainSpec { chain_type }

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

chain_type: "ligand"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
NoTemplateTargetResponse { entities, type, bonds, 4 more }

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

entities: Array<ProteinEntityResponse { chain_ids, type, value, 2 more } | RnaEntityResponse { chain_ids, type, value, 2 more } | DnaEntityResponse { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

type: "no_template"
bonds?: Array<Bond>

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

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
constraints?: Array<PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more } | ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more } >

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

One of the following:
PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more }

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

binder_chain_id: string

Chain ID of the binder molecule

contact_residues: Record<string, Array<number>>

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

max_distance_angstrom: number

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

type: "pocket"
force?: boolean

Whether to force the constraint

ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more }

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

max_distance_angstrom: number

Maximum distance in Angstroms

token1: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
token2: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
type: "contact"
force?: boolean

Whether to force the constraint

epitope_ligand_chains?: Array<string>

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

epitope_residues?: Record<string, Array<number>>

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

non_binding_residues?: Record<string, Array<number>>

Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein library screen

pipeline_version: "1.0"

Pipeline version used for protein library screen

progress: Progress | null
num_proteins_failed: number

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: number

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: number

Total number of proteins accepted into the screening run.

minimum1
latest_result_id?: string

ID of the latest result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

LibraryScreenListResponse { id, completed_at, created_at, 13 more }

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

id: string

Unique ProteinLibraryScreenSummary identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein library screen

pipeline_version: "1.0"

Pipeline version used for protein library screen

progress: Progress | null
num_proteins_failed: number

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: number

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: number

Total number of proteins accepted into the screening run.

minimum1
latest_result_id?: string

ID of the latest result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

LibraryScreenRetrieveResponse { id, completed_at, created_at, 14 more }

A protein library screening pipeline run

id: string

Unique ProteinLibraryScreen identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

input: Input | null

Pipeline input (null if data deleted)

proteins: Proteins { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
target: StructureTemplateTargetResponse { chain_selection, structure, type } | NoTemplateTargetResponse { entities, type, bonds, 4 more }

Target specification (structure template or template-free)

One of the following:
StructureTemplateTargetResponse { chain_selection, structure, type }

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

chain_selection: Record<string, StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more } | StructureTemplateTargetLigandChainSpec { chain_type } >

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

One of the following:
StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
epitope_residues?: Array<number>

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

flexible_residues?: Array<number>

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

non_binding_residues?: Array<number>

0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

StructureTemplateTargetLigandChainSpec { chain_type }

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

chain_type: "ligand"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
NoTemplateTargetResponse { entities, type, bonds, 4 more }

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

entities: Array<ProteinEntityResponse { chain_ids, type, value, 2 more } | RnaEntityResponse { chain_ids, type, value, 2 more } | DnaEntityResponse { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

type: "no_template"
bonds?: Array<Bond>

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

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
constraints?: Array<PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more } | ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more } >

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

One of the following:
PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more }

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

binder_chain_id: string

Chain ID of the binder molecule

contact_residues: Record<string, Array<number>>

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

max_distance_angstrom: number

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

type: "pocket"
force?: boolean

Whether to force the constraint

ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more }

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

max_distance_angstrom: number

Maximum distance in Angstroms

token1: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
token2: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
type: "contact"
force?: boolean

Whether to force the constraint

epitope_ligand_chains?: Array<string>

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

epitope_residues?: Record<string, Array<number>>

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

non_binding_residues?: Record<string, Array<number>>

Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein library screen

pipeline_version: "1.0"

Pipeline version used for protein library screen

progress: Progress | null
num_proteins_failed: number

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: number

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: number

Total number of proteins accepted into the screening run.

minimum1
latest_result_id?: string

ID of the latest result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

LibraryScreenListResultsResponse { id, artifacts, created_at, 4 more }

Result for a single screened protein

id: string

Unique result ID

artifacts: Artifacts { archive, structure }
archive: Archive { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
created_at: string
formatdate-time
entities: Array<ProteinEntity { chain_ids, type, value, 2 more } | RnaEntity { chain_ids, type, value, 2 more } | DnaEntity { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntity { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntity { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntity { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntity { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntity { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

metrics: Metrics { binding_confidence, helix_fraction, iptm, 4 more }

Structural and binding quality metrics for a screened protein

binding_confidence: number

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

helix_fraction: number

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

iptm: number

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

loop_fraction: number

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

min_interaction_pae: number

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

sheet_fraction: number

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

structure_confidence: number

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

external_id?: string

Client-provided identifier for this protein, if provided

warnings?: Array<Warning>

Warnings about potential quality issues with this result.

code: string

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

message: string

Human-readable description of the warning

LibraryScreenStopResponse { id, completed_at, created_at, 14 more }

A protein library screening pipeline run

id: string

Unique ProteinLibraryScreen identifier

completed_at: string | null
formatdate-time
created_at: string
formatdate-time
data_deleted_at: string | null

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

formatdate-time
Deprecatedengine: "boltzprot"
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: "1.0"
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Error | null
code: string

Machine-readable error code

message: string

Human-readable error message

details?: unknown

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

input: Input | null

Pipeline input (null if data deleted)

proteins: Proteins { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
target: StructureTemplateTargetResponse { chain_selection, structure, type } | NoTemplateTargetResponse { entities, type, bonds, 4 more }

Target specification (structure template or template-free)

One of the following:
StructureTemplateTargetResponse { chain_selection, structure, type }

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

chain_selection: Record<string, StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more } | StructureTemplateTargetLigandChainSpec { chain_type } >

Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

One of the following:
StructureTemplateTargetPolymerChainSpec { chain_type, crop_residues, epitope_residues, 2 more }

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

chain_type: "polymer"
crop_residues: Array<number> | "all"

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

One of the following:
Array<number>
"all"
"all"
epitope_residues?: Array<number>

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

flexible_residues?: Array<number>

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

non_binding_residues?: Array<number>

0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

StructureTemplateTargetLigandChainSpec { chain_type }

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

chain_type: "ligand"
structure: Structure { url, url_expires_at }
url: string

URL to download the file

formaturi
url_expires_at: string

When the presigned URL expires

formatdate-time
type: "structure_template"
NoTemplateTargetResponse { entities, type, bonds, 4 more }

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

entities: Array<ProteinEntityResponse { chain_ids, type, value, 2 more } | RnaEntityResponse { chain_ids, type, value, 2 more } | DnaEntityResponse { chain_ids, type, value, 2 more } | 2 more>

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

One of the following:
ProteinEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "protein"
value: string

Amino acid sequence (one-letter codes)

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

RnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "rna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

DnaEntityResponse { chain_ids, type, value, 2 more }
chain_ids: Array<string>

Chain IDs for this entity

type: "dna"
value: string

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

cyclic?: boolean

Whether the sequence is cyclic

modifications?: Array<Modification>

CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

residue_index: number

0-based index of the residue to modify

minimum0
type: "ccd"

Modification format. Only CCD polymer modifications are supported.

value: string

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

LigandCcdEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_ccd"
value: string

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

LigandSmilesEntityResponse { chain_ids, type, value }
chain_ids: Array<string>

Chain IDs for this ligand

type: "ligand_smiles"
value: string

SMILES string representing the ligand

type: "no_template"
bonds?: Array<Bond>

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

atom1: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
atom2: LigandAtomResponse { atom_name, chain_id, type } | PolymerAtomResponse { atom_name, chain_id, residue_index, type }

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

One of the following:
LigandAtomResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID containing the atom

type: "ligand_atom"
PolymerAtomResponse { atom_name, chain_id, residue_index, type }
atom_name: string

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: string

Chain ID containing the atom

residue_index: number

0-based residue index

minimum0
type: "polymer_atom"
constraints?: Array<PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more } | ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more } >

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

One of the following:
PocketConstraintResponse { binder_chain_id, contact_residues, max_distance_angstrom, 2 more }

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

binder_chain_id: string

Chain ID of the binder molecule

contact_residues: Record<string, Array<number>>

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

max_distance_angstrom: number

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

type: "pocket"
force?: boolean

Whether to force the constraint

ContactConstraintResponse { max_distance_angstrom, token1, token2, 2 more }

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

max_distance_angstrom: number

Maximum distance in Angstroms

token1: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
token2: PolymerContactTokenResponse { chain_id, residue_index, type } | LigandContactTokenResponse { atom_name, chain_id, type }

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

One of the following:
PolymerContactTokenResponse { chain_id, residue_index, type }
chain_id: string

Chain ID

residue_index: number

0-based residue index

minimum0
type: "polymer_contact"
LigandContactTokenResponse { atom_name, chain_id, type }

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

atom_name: string

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

chain_id: string

Chain ID

type: "ligand_contact"
type: "contact"
force?: boolean

Whether to force the constraint

epitope_ligand_chains?: Array<string>

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

epitope_residues?: Record<string, Array<number>>

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

non_binding_residues?: Record<string, Array<number>>

Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

livemode: boolean

Whether this resource was created with a live API key.

pipeline: "boltzprot"

Pipeline used for protein library screen

pipeline_version: "1.0"

Pipeline version used for protein library screen

progress: Progress | null
num_proteins_failed: number

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: number

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: number

Total number of proteins accepted into the screening run.

minimum1
latest_result_id?: string

ID of the latest result

started_at: string | null
formatdate-time
status: "pending" | "running" | "succeeded" | 2 more
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: string | null
formatdate-time
workspace_id: string

Workspace ID

idempotency_key?: string

Client-provided idempotency key

LibraryScreenDeleteDataResponse { id, data_deleted, data_deleted_at }
id: string

ID of the resource whose data was deleted

data_deleted: true
data_deleted_at: string

When the data was deleted

formatdate-time
LibraryScreenEstimateCostResponse { breakdown, disclaimer, estimated_cost_usd }

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

breakdown: Breakdown { application, cost_per_unit_usd, num_units }

Cost breakdown for the billed application.

application: "structure_and_binding" | "small_molecule_design" | "small_molecule_library_screen" | 4 more
One of the following:
"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