Skip to content
Go to Boltz API

Library 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
protein.library_screen.start(LibraryScreenStartParams**kwargs) -> LibraryScreenStartResponse
POST/compute/v1/protein/library-screen
List protein library screens
protein.library_screen.list(LibraryScreenListParams**kwargs) -> SyncCursorPage[LibraryScreenListResponse]
GET/compute/v1/protein/library-screen
Get protein library screen status
protein.library_screen.retrieve(strid, LibraryScreenRetrieveParams**kwargs) -> LibraryScreenRetrieveResponse
GET/compute/v1/protein/library-screen/{id}
Get screened protein candidates
protein.library_screen.list_results(strid, LibraryScreenListResultsParams**kwargs) -> SyncCursorPage[LibraryScreenListResultsResponse]
GET/compute/v1/protein/library-screen/{id}/results
Stop a running protein library screen
protein.library_screen.stop(strid) -> LibraryScreenStopResponse
POST/compute/v1/protein/library-screen/{id}/stop
Delete protein library screen data
protein.library_screen.delete_data(strid) -> LibraryScreenDeleteDataResponse
POST/compute/v1/protein/library-screen/{id}/delete-data
Estimate cost for a protein library screen
protein.library_screen.estimate_cost(LibraryScreenEstimateCostParams**kwargs) -> LibraryScreenEstimateCostResponse
POST/compute/v1/protein/library-screen/estimate-cost
ModelsExpand Collapse
class LibraryScreenStartResponse:

A protein library screening pipeline run

id: str

Unique ProteinLibraryScreen identifier

completed_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_deleted_at: Optional[datetime]

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

formatdate-time
Deprecatedengine: Literal["boltzprot"]
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: Literal["1.0"]
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Optional[Error]
code: str

Machine-readable error code

message: str

Human-readable error message

details: Optional[object]

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

input: Optional[Input]

Pipeline input (null if data deleted)

proteins: InputProteins
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
target: InputTarget

Target specification (structure template or template-free)

One of the following:
class InputTargetStructureTemplateTargetResponse:

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

chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]

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:
class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec:

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

chain_type: Literal["polymer"]
crop_residues: Union[List[int], Literal["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:
List[int]

0-indexed residue indices to keep

Literal["all"]
epitope_residues: Optional[List[int]]

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: Optional[List[int]]

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: Optional[List[int]]

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

class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec:

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

chain_type: Literal["ligand"]
structure: InputTargetStructureTemplateTargetResponseStructure
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
type: Literal["structure_template"]
class InputTargetNoTemplateTargetResponse:

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

entities: List[InputTargetNoTemplateTargetResponseEntity]

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

One of the following:
class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["protein"]
value: str

Amino acid sequence (one-letter codes)

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["rna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["dna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_ccd"]
value: str

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

class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_smiles"]
value: str

SMILES string representing the ligand

type: Literal["no_template"]
bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]

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

atom1: InputTargetNoTemplateTargetResponseBondAtom1

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

One of the following:
class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
atom2: InputTargetNoTemplateTargetResponseBondAtom2

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

One of the following:
class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse:

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

binder_chain_id: str

Chain ID of the binder molecule

contact_residues: Dict[str, List[int]]

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: float

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

type: Literal["pocket"]
force: Optional[bool]

Whether to force the constraint

class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse:

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

max_distance_angstrom: float

Maximum distance in Angstroms

token1: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse:

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

atom_name: str

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

chain_id: str

Chain ID

type: Literal["ligand_contact"]
token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse:

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

atom_name: str

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

chain_id: str

Chain ID

type: Literal["ligand_contact"]
type: Literal["contact"]
force: Optional[bool]

Whether to force the constraint

epitope_ligand_chains: Optional[List[str]]

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: Optional[Dict[str, List[int]]]

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: Optional[Dict[str, List[int]]]

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

Whether this resource was created with a live API key.

pipeline: Literal["boltzprot"]

Pipeline used for protein library screen

pipeline_version: Literal["1.0"]

Pipeline version used for protein library screen

progress: Optional[Progress]
num_proteins_failed: int

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: int

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: int

Total number of proteins accepted into the screening run.

minimum1
latest_result_id: Optional[str]

ID of the latest result

started_at: Optional[datetime]
formatdate-time
status: Literal["pending", "running", "succeeded", 2 more]
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: Optional[datetime]
formatdate-time
workspace_id: str

Workspace ID

idempotency_key: Optional[str]

Client-provided idempotency key

class LibraryScreenListResponse:

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

id: str

Unique ProteinLibraryScreenSummary identifier

completed_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_deleted_at: Optional[datetime]

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

formatdate-time
Deprecatedengine: Literal["boltzprot"]
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: Literal["1.0"]
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Optional[Error]
code: str

Machine-readable error code

message: str

Human-readable error message

details: Optional[object]

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

livemode: bool

Whether this resource was created with a live API key.

pipeline: Literal["boltzprot"]

Pipeline used for protein library screen

pipeline_version: Literal["1.0"]

Pipeline version used for protein library screen

progress: Optional[Progress]
num_proteins_failed: int

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: int

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: int

Total number of proteins accepted into the screening run.

minimum1
latest_result_id: Optional[str]

ID of the latest result

started_at: Optional[datetime]
formatdate-time
status: Literal["pending", "running", "succeeded", 2 more]
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: Optional[datetime]
formatdate-time
workspace_id: str

Workspace ID

idempotency_key: Optional[str]

Client-provided idempotency key

class LibraryScreenRetrieveResponse:

A protein library screening pipeline run

id: str

Unique ProteinLibraryScreen identifier

completed_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_deleted_at: Optional[datetime]

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

formatdate-time
Deprecatedengine: Literal["boltzprot"]
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: Literal["1.0"]
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Optional[Error]
code: str

Machine-readable error code

message: str

Human-readable error message

details: Optional[object]

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

input: Optional[Input]

Pipeline input (null if data deleted)

proteins: InputProteins
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
target: InputTarget

Target specification (structure template or template-free)

One of the following:
class InputTargetStructureTemplateTargetResponse:

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

chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]

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:
class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec:

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

chain_type: Literal["polymer"]
crop_residues: Union[List[int], Literal["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:
List[int]

0-indexed residue indices to keep

Literal["all"]
epitope_residues: Optional[List[int]]

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: Optional[List[int]]

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: Optional[List[int]]

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

class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec:

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

chain_type: Literal["ligand"]
structure: InputTargetStructureTemplateTargetResponseStructure
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
type: Literal["structure_template"]
class InputTargetNoTemplateTargetResponse:

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

entities: List[InputTargetNoTemplateTargetResponseEntity]

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

One of the following:
class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["protein"]
value: str

Amino acid sequence (one-letter codes)

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["rna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["dna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_ccd"]
value: str

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

class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_smiles"]
value: str

SMILES string representing the ligand

type: Literal["no_template"]
bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]

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

atom1: InputTargetNoTemplateTargetResponseBondAtom1

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

One of the following:
class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
atom2: InputTargetNoTemplateTargetResponseBondAtom2

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

One of the following:
class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse:

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

binder_chain_id: str

Chain ID of the binder molecule

contact_residues: Dict[str, List[int]]

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: float

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

type: Literal["pocket"]
force: Optional[bool]

Whether to force the constraint

class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse:

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

max_distance_angstrom: float

Maximum distance in Angstroms

token1: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse:

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

atom_name: str

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

chain_id: str

Chain ID

type: Literal["ligand_contact"]
token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse:

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

atom_name: str

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

chain_id: str

Chain ID

type: Literal["ligand_contact"]
type: Literal["contact"]
force: Optional[bool]

Whether to force the constraint

epitope_ligand_chains: Optional[List[str]]

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: Optional[Dict[str, List[int]]]

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: Optional[Dict[str, List[int]]]

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

Whether this resource was created with a live API key.

pipeline: Literal["boltzprot"]

Pipeline used for protein library screen

pipeline_version: Literal["1.0"]

Pipeline version used for protein library screen

progress: Optional[Progress]
num_proteins_failed: int

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: int

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: int

Total number of proteins accepted into the screening run.

minimum1
latest_result_id: Optional[str]

ID of the latest result

started_at: Optional[datetime]
formatdate-time
status: Literal["pending", "running", "succeeded", 2 more]
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: Optional[datetime]
formatdate-time
workspace_id: str

Workspace ID

idempotency_key: Optional[str]

Client-provided idempotency key

class LibraryScreenListResultsResponse:

Result for a single screened protein

id: str

Unique result ID

artifacts: Artifacts
archive: ArtifactsArchive
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
structure: ArtifactsStructure
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
created_at: datetime
formatdate-time
entities: List[Entity]

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

One of the following:
class EntityProteinEntity:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["protein"]
value: str

Amino acid sequence (one-letter codes)

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[EntityProteinEntityModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class EntityRnaEntity:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["rna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[EntityRnaEntityModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class EntityDnaEntity:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["dna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[EntityDnaEntityModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class EntityLigandCcdEntity:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_ccd"]
value: str

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

class EntityLigandSmilesEntity:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_smiles"]
value: str

SMILES string representing the ligand

metrics: Metrics

Structural and binding quality metrics for a screened protein

binding_confidence: float

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

helix_fraction: float

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

iptm: float

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

loop_fraction: float

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

min_interaction_pae: float

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

sheet_fraction: float

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

structure_confidence: float

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

external_id: Optional[str]

Client-provided identifier for this protein, if provided

warnings: Optional[List[Warning]]

Warnings about potential quality issues with this result.

code: str

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

message: str

Human-readable description of the warning

class LibraryScreenStopResponse:

A protein library screening pipeline run

id: str

Unique ProteinLibraryScreen identifier

completed_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_deleted_at: Optional[datetime]

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

formatdate-time
Deprecatedengine: Literal["boltzprot"]
Use pipeline instead.

Deprecated. Use pipeline instead.

Deprecatedengine_version: Literal["1.0"]
Use pipeline_version instead.

Deprecated. Use pipeline_version instead.

error: Optional[Error]
code: str

Machine-readable error code

message: str

Human-readable error message

details: Optional[object]

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

input: Optional[Input]

Pipeline input (null if data deleted)

proteins: InputProteins
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
target: InputTarget

Target specification (structure template or template-free)

One of the following:
class InputTargetStructureTemplateTargetResponse:

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

chain_selection: Dict[str, InputTargetStructureTemplateTargetResponseChainSelection]

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:
class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec:

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

chain_type: Literal["polymer"]
crop_residues: Union[List[int], Literal["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:
List[int]

0-indexed residue indices to keep

Literal["all"]
epitope_residues: Optional[List[int]]

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: Optional[List[int]]

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: Optional[List[int]]

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

class InputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec:

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

chain_type: Literal["ligand"]
structure: InputTargetStructureTemplateTargetResponseStructure
url: str

URL to download the file

formaturi
url_expires_at: datetime

When the presigned URL expires

formatdate-time
type: Literal["structure_template"]
class InputTargetNoTemplateTargetResponse:

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

entities: List[InputTargetNoTemplateTargetResponseEntity]

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

One of the following:
class InputTargetNoTemplateTargetResponseEntityProteinEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["protein"]
value: str

Amino acid sequence (one-letter codes)

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityRnaEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["rna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityDnaEntityResponse:
chain_ids: List[str]

Chain IDs for this entity

type: Literal["dna"]
value: str

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

cyclic: Optional[bool]

Whether the sequence is cyclic

modifications: Optional[List[InputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification]]

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

residue_index: int

0-based index of the residue to modify

minimum0
type: Literal["ccd"]

Modification format. Only CCD polymer modifications are supported.

value: str

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

class InputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_ccd"]
value: str

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

class InputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse:
chain_ids: List[str]

Chain IDs for this ligand

type: Literal["ligand_smiles"]
value: str

SMILES string representing the ligand

type: Literal["no_template"]
bonds: Optional[List[InputTargetNoTemplateTargetResponseBond]]

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

atom1: InputTargetNoTemplateTargetResponseBondAtom1

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

One of the following:
class InputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class InputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
atom2: InputTargetNoTemplateTargetResponseBondAtom2

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

One of the following:
class InputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse:

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

atom_name: str

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: str

Chain ID containing the atom

type: Literal["ligand_atom"]
class InputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse:
atom_name: str

Standardized atom name (verifiable in CIF file on RCSB)

chain_id: str

Chain ID containing the atom

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_atom"]
constraints: Optional[List[InputTargetNoTemplateTargetResponseConstraint]]

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse:

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

binder_chain_id: str

Chain ID of the binder molecule

contact_residues: Dict[str, List[int]]

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: float

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

type: Literal["pocket"]
force: Optional[bool]

Whether to force the constraint

class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponse:

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

max_distance_angstrom: float

Maximum distance in Angstroms

token1: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse:

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

atom_name: str

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

chain_id: str

Chain ID

type: Literal["ligand_contact"]
token2: InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2

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

One of the following:
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse:
chain_id: str

Chain ID

residue_index: int

0-based residue index

minimum0
type: Literal["polymer_contact"]
class InputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse:

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

atom_name: str

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

chain_id: str

Chain ID

type: Literal["ligand_contact"]
type: Literal["contact"]
force: Optional[bool]

Whether to force the constraint

epitope_ligand_chains: Optional[List[str]]

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: Optional[Dict[str, List[int]]]

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: Optional[Dict[str, List[int]]]

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

Whether this resource was created with a live API key.

pipeline: Literal["boltzprot"]

Pipeline used for protein library screen

pipeline_version: Literal["1.0"]

Pipeline version used for protein library screen

progress: Optional[Progress]
num_proteins_failed: int

Number of accepted proteins that reached terminal failure during screening.

minimum0
num_proteins_screened: int

Number of accepted proteins that produced usable screening results.

minimum0
total_proteins_to_screen: int

Total number of proteins accepted into the screening run.

minimum1
latest_result_id: Optional[str]

ID of the latest result

started_at: Optional[datetime]
formatdate-time
status: Literal["pending", "running", "succeeded", 2 more]
One of the following:
"pending"
"running"
"succeeded"
"failed"
"stopped"
stopped_at: Optional[datetime]
formatdate-time
workspace_id: str

Workspace ID

idempotency_key: Optional[str]

Client-provided idempotency key

class LibraryScreenDeleteDataResponse:
id: str

ID of the resource whose data was deleted

data_deleted: Literal[true]
data_deleted_at: datetime

When the data was deleted

formatdate-time
class LibraryScreenEstimateCostResponse:

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

breakdown: Breakdown

Cost breakdown for the billed application.

application: Literal["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: str

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: int

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: str
estimated_cost_usd: str

Estimated total cost as a decimal string

Run
client.protein.library_screen.run(*, proteins: Iterable[protein_library_screen_start_params.Protein], target: protein_library_screen_start_params.Target, root_dir: str | PathLike[str], name: str | None, workspace_id: str | Omit, download_mode: DownloadMode | str | None, quiet: bool, poll_interval_seconds: float) -> Path
FunctionSDK workflow