Skip to content
Go to Boltz API

Admin

Manage workspaces and API keys. Requires an admin API key. Admin keys have full access to all management and compute operations across all workspaces in the organization.

AdminWorkspaces

Workspaces provide isolated environments for organizing predictions and pipeline runs across teams, projects, or customers. Each workspace has independent data retention settings and can be associated with workspace API keys.

Create a workspace
admin.workspaces.create(WorkspaceCreateParams**kwargs) -> WorkspaceCreateResponse
POST/compute/v1/admin/workspaces
List workspaces
admin.workspaces.list(WorkspaceListParams**kwargs) -> SyncCursorPage[WorkspaceListResponse]
GET/compute/v1/admin/workspaces
Get a workspace
admin.workspaces.retrieve(strworkspace_id) -> WorkspaceRetrieveResponse
GET/compute/v1/admin/workspaces/{workspace_id}
Update a workspace
admin.workspaces.update(strworkspace_id, WorkspaceUpdateParams**kwargs) -> WorkspaceUpdateResponse
POST/compute/v1/admin/workspaces/{workspace_id}
Archive a workspace
admin.workspaces.archive(strworkspace_id) -> WorkspaceArchiveResponse
POST/compute/v1/admin/workspaces/{workspace_id}/archive
Get a workspace spending limit
admin.workspaces.retrieve_spending_limit(strworkspace_id) -> WorkspaceRetrieveSpendingLimitResponse
GET/compute/v1/admin/workspaces/{workspace_id}/spending-limit
Set a workspace spending limit
admin.workspaces.set_spending_limit(strworkspace_id, WorkspaceSetSpendingLimitParams**kwargs) -> WorkspaceSetSpendingLimitResponse
PUT/compute/v1/admin/workspaces/{workspace_id}/spending-limit
ModelsExpand Collapse
class WorkspaceCreateResponse:
id: str

Workspace ID

archived_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_retention: DataRetention

How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

unit: Literal["hours", "days"]

Time unit for retention duration

One of the following:
"hours"
"days"
value: int

Duration value. Maximum retention is 14 days (or 336 hours).

minimum1
is_default: bool

Whether this is the default workspace

name: Optional[str]

Workspace name

updated_at: datetime
formatdate-time
class WorkspaceListResponse:
id: str

Workspace ID

archived_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_retention: DataRetention

How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

unit: Literal["hours", "days"]

Time unit for retention duration

One of the following:
"hours"
"days"
value: int

Duration value. Maximum retention is 14 days (or 336 hours).

minimum1
is_default: bool

Whether this is the default workspace

name: Optional[str]

Workspace name

updated_at: datetime
formatdate-time
class WorkspaceRetrieveResponse:
id: str

Workspace ID

archived_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_retention: DataRetention

How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

unit: Literal["hours", "days"]

Time unit for retention duration

One of the following:
"hours"
"days"
value: int

Duration value. Maximum retention is 14 days (or 336 hours).

minimum1
is_default: bool

Whether this is the default workspace

name: Optional[str]

Workspace name

updated_at: datetime
formatdate-time
class WorkspaceUpdateResponse:
id: str

Workspace ID

archived_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_retention: DataRetention

How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

unit: Literal["hours", "days"]

Time unit for retention duration

One of the following:
"hours"
"days"
value: int

Duration value. Maximum retention is 14 days (or 336 hours).

minimum1
is_default: bool

Whether this is the default workspace

name: Optional[str]

Workspace name

updated_at: datetime
formatdate-time
class WorkspaceArchiveResponse:
id: str

Workspace ID

archived_at: Optional[datetime]
formatdate-time
created_at: datetime
formatdate-time
data_retention: DataRetention

How long result data is retained before automatic deletion. Defaults to 7 days if not specified. Maximum retention is 14 days (336 hours).

unit: Literal["hours", "days"]

Time unit for retention duration

One of the following:
"hours"
"days"
value: int

Duration value. Maximum retention is 14 days (or 336 hours).

minimum1
is_default: bool

Whether this is the default workspace

name: Optional[str]

Workspace name

updated_at: datetime
formatdate-time
class WorkspaceRetrieveSpendingLimitResponse:

Configured lifetime workspace spending limit, or null if unset. Unset workspaces have no workspace-level cap and continue to use organization-level billing.

limit: Limit
amount: int

Workspace spending limit amount in milli-USD. Tracking starts when the limit is configured; prior or already-committed unreserved work is not counted in this workspace cap ledger.

minimum0
maximum9007199254740991
currency: Literal["MILLI_USD"]

Workspace spending limits currently support milli-USD only.

type: Literal["lifetime"]
class WorkspaceSetSpendingLimitResponse:

Configured lifetime workspace spending limit, or null if unset. Unset workspaces have no workspace-level cap and continue to use organization-level billing.

limit: Limit
amount: int

Workspace spending limit amount in milli-USD. Tracking starts when the limit is configured; prior or already-committed unreserved work is not counted in this workspace cap ledger.

minimum0
maximum9007199254740991
currency: Literal["MILLI_USD"]

Workspace spending limits currently support milli-USD only.

type: Literal["lifetime"]

AdminAPI Keys

API keys authenticate requests to the Boltz API. There are two key types: admin keys have full access to all management and compute operations across the organization, while workspace keys are scoped to a single workspace and can only perform compute operations (predictions, protein design, small molecule design) within that workspace. Keys can be created in live or test mode. Test keys (prefixed sk_bc_*_test_) create test-mode resources with synthetic data and no GPU cost. Every resource includes a livemode field indicating its mode.

Create a workspace API key
admin.api_keys.create(APIKeyCreateParams**kwargs) -> APIKeyCreateResponse
POST/compute/v1/admin/api-keys
List API keys
admin.api_keys.list(APIKeyListParams**kwargs) -> SyncCursorPage[APIKeyListResponse]
GET/compute/v1/admin/api-keys
Revoke an API key
admin.api_keys.revoke(strapi_key_id) -> APIKeyRevokeResponse
POST/compute/v1/admin/api-keys/{api_key_id}/revoke
ModelsExpand Collapse
class APIKeyCreateResponse:
key: str

The full API key. This is only shown once — store it securely.

key_details: KeyDetails
id: str

API key ID

allowed_ips: List[str]

IP addresses allowed to use this key. An empty array means all IPs are allowed.

created_at: datetime
formatdate-time
expires_at: Optional[datetime]

When the key expires. Null if the key does not expire.

formatdate-time
is_active: bool
key_prefix: str

First 12 characters of the key

key_type: Literal["workspace"]
last_used_at: Optional[datetime]
formatdate-time
livemode: bool

Whether this is a live API key (false for test keys).

name: str

API key name

workspace_id: str

Workspace this key is scoped to

class APIKeyListResponse:
id: str

API key ID

allowed_ips: List[str]

IP addresses allowed to use this key. An empty array means all IPs are allowed.

created_at: datetime
formatdate-time
expires_at: Optional[datetime]

When the key expires. Null if the key does not expire.

formatdate-time
is_active: bool
key_prefix: str

First 12 characters of the key

key_type: Literal["admin", "workspace"]
One of the following:
"admin"
"workspace"
last_used_at: Optional[datetime]
formatdate-time
livemode: bool

Whether this is a live API key (false for test keys).

name: str

API key name

workspace_id: Optional[str]

Workspace ID if workspace-scoped

class APIKeyRevokeResponse:
id: str

API key ID

allowed_ips: List[str]

IP addresses allowed to use this key. An empty array means all IPs are allowed.

created_at: datetime
formatdate-time
expires_at: Optional[datetime]

When the key expires. Null if the key does not expire.

formatdate-time
is_active: bool
key_prefix: str

First 12 characters of the key

key_type: Literal["admin", "workspace"]
One of the following:
"admin"
"workspace"
last_used_at: Optional[datetime]
formatdate-time
livemode: bool

Whether this is a live API key (false for test keys).

name: str

API key name

workspace_id: Optional[str]

Workspace ID if workspace-scoped

AdminUsage

Retrieve aggregated usage data for the organization. Usage can be grouped by workspace and/or application, and filtered by time range, workspace, and application.

Get usage data
admin.usage.list(UsageListParams**kwargs) -> SyncOpaqueCursorPage[UsageListResponse]
GET/compute/v1/admin/usage
ModelsExpand Collapse
class UsageListResponse:
end_time: datetime
formatdate-time
quantity: int

Aggregated billed quantity for this bucket

start_time: datetime
formatdate-time
application: Optional[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"
workspace_id: Optional[str]

Present when grouped by workspace_id