Skip to content
Go to Boltz API

Predict structure and binding

Submit a prediction job, poll for completion, and download the results.

Predictions are single-input, single-output operations. They run to completion and cannot be paused or resumed. Use predictions when you have your own design models and want access to Boltz property predictors, or when integrating Boltz predictions into your own platform.

Each prediction application has its own endpoint with application-specific inputs and outputs. Currently available:

  • Structure and binding — Predict 3D structure coordinates, per-residue confidence scores, and binding metrics for a molecular complex.

You can request multiple structure samples by setting num_samples in Scientist and Agent input files, or input.num_samples in the generated SDKs. Each sample produces an independent structure prediction with its own confidence metrics.

run_structure_and_binding() submits the prediction, waits for it to finish, downloads the result archive, and returns the local run directory.

import os
from boltz_api import Boltz
client = Boltz(api_key=os.environ["BOLTZ_API_KEY"])
run_dir = client.experiments.run_structure_and_binding(
entities=[
{"type": "protein", "value": "MKTIIALSYIFCLVFA", "chain_ids": ["A"]},
{
"type": "ligand_smiles",
"value": "CC(=O)OC1=CC=CC=C1C(=O)O",
"chain_ids": ["B"],
},
],
model="boltz-2.1",
binding={
"type": "ligand_protein_binding",
"binder_chain_id": "B",
},
name="structure-and-binding-check",
)
print(run_dir)

Use start_structure_and_binding() when you want to persist the run directory without blocking. wait_and_download() resumes from that local directory or name.

run_dir = client.experiments.start_structure_and_binding(
entities=[
{"type": "protein", "value": "MKTIIALSYIFCLVFA", "chain_ids": ["A"]},
{
"type": "ligand_smiles",
"value": "CC(=O)OC1=CC=CC=C1C(=O)O",
"chain_ids": ["B"],
},
],
model="boltz-2.1",
binding={"type": "ligand_protein_binding", "binder_chain_id": "B"},
num_samples=3,
name="structure-and-binding-check",
)
client.experiments.wait_and_download(name="structure-and-binding-check")

Downloaded files are under the returned run directory.

print(run_dir / "outputs" / "files")
StatusMeaning
pendingThe prediction is queued and has not started yet.
runningThe prediction is currently being computed.
succeededThe prediction completed successfully. Results are available.
failedThe prediction encountered an error. Check the error field.