Research workspaces

Create a workspace or standalone instance configuration

Changed on

Saves a unique named configuration without starting compute. Omitted kind creates a saved workspace. kind instance creates standalone SSH compute with local disk only and requires capabilities.standalone_instances. Requires a Bearer API key or console session. Workspace duplicate names are rejected. An instance retry with the exact same account, name and configuration returns the existing record. Different configurations still conflict. Use start to admit a compute session.

post/v1/research-workspaces

Request

  • Base URL
    / (relative, and the document was published on a file host, not at the API’s origin)
  • Auth
    HTTP bearer

Request body

kind'' | 'workspace' | 'instance'

Omission or an empty value preserves a saved workspace. instance creates standalone compute with SSH and local disk only. The kind cannot change after creation. An existing SSH workspace remains a workspace.

namestring required

Unique workspace name within the authenticated account. The names . and .. are not accepted.

environment'pytorch-cuda' | 'pytorch-rocm' | 'pytorch-cpu' | 'custom-cuda' | 'custom-rocm' | 'custom-cpu' required

Qualified software environment for NVIDIA, AMD or CPU compute. Custom environments require a team-visible runtime_id.

runtime_idstring

Optional immutable image identity from capabilities.runtimes. Selects the workspace Linux distribution and software. Must match environment and remain qualified and visible to the team. Omission preserves the existing managed environment. The selected runtime cannot be changed when editing a saved project.

gpustring required

GPU model, not a supplier SKU. Use an empty string for CPU instances. Launch requires an exact qualified configuration and eligible capacity.

gpu_count0 | 1 | 2 | 4 | 8 required

Exact GPU count on one machine. Use zero for CPU instances. These accepted request values do not establish hardware qualification or current availability.

gpu_memory_gbnumber required

Minimum required memory per GPU in GB, not the sum across devices. Positive for GPU instances and zero for CPU instances.

compute_class'accelerator' | 'vm'

Omission retains GPU execution. vm requests a CPU-only workspace and requires capabilities.cpu_instances, a CPU environment, empty gpu, zero gpu_count and zero gpu_memory_gb.

gpu_form_factor'' | 'pcie' | 'sxm' | 'nvl'

Optional required GPU form factor. Omission permits any form factor. Requires direct workspace compute and cannot be set for CPU instances. A selected form factor is enforced during quoting and placement.

vcpusinteger

Minimum vCPUs on a GPU machine. Omission or zero keeps its included resources. CPU instances require exactly 2, 4, 8, 16 or 32 vCPUs.

host_memory_gbnumber

Minimum system RAM in GB, separate from GPU memory. Omission or zero keeps included RAM on GPU machines. CPU instances require a positive value. Custom RAM requires direct workspace compute.

size_gbnumber

Instances require zero and have no saved project storage. For workspaces, omit to use the deployment capacity, or send a positive capacity within capabilities.storage_limit_bytes. With storage_policy_version included-10gb-v1 or r2-standard-10gb-account-v1, send exactly 10 for the 10,000,000,000-byte per-workspace capacity. The account policy shares its free allowance across workspaces. Other deployments use GiB and their displayed capacity limit.

ssh_authorized_keystring

Plain SSH public keys, one per line, up to 20. Private keys, certificates and authorized_keys options are rejected. Machines also admit every SSH key saved by a team member. Instances and SSH-only workspaces on direct compute may omit this field. SSH is then unavailable until a key exists, and a running machine admits newly saved team keys within seconds. Deployments without direct compute still require it and return 400 invalid_ssh_authorized_key when it is missing.

Response

Saved workspace created, with compute stopped

idstring required
namestring required
size_gbnumber required
holder_idstring nullable required
saved_atstring date-time nullable required
expired_atstring date-time nullable

Time the tenant retention policy expired saved workspace state. The namespace remains listed.

cleanup_pendingboolean

Expired workspace objects still require cleanup. An empty namespace can be reused after cleanup settles.

stored_bytesinteger nullable required
last_errorstring required
saving_for_terminationboolean required
billing_status'disabled_no_approved_storage_rate' | 'metered_subject_to_account_limits' | 'included_workspace_storage' | 'account_workspace_storage' | 'ephemeral_instance' required

Storage billing policy for this record. ephemeral_instance has no saved storage or storage charge. Its compute session is billed separately.

configuration_revisionstring required

Saved configuration identity. Send this observed value when editing settings. Independent from the saved-file revision.

storage_revisioninteger required

Current saved-file revision used to guard a stopped-workspace replacement.

storage_policy_versionstring required

Storage policy recorded for this workspace. Transfer endpoints require a compatible versioned storage policy on the workspace and deployment.

state'stopped' | 'creating' | 'ready' | 'running' | 'idle' | 'suspended' | 'resuming' | 'recovering' | 'stopping' | 'failed' | 'freezing' | 'frozen' required

Workspace lifecycle view. stopping includes a pending final save or unconfirmed compute release. Tool access also requires its connections flag.

status_messagestring required

Changes

    • info

      added the optional property ////// to the response with the status

    • breaking

      added subschema #1 to the request body allOf list

    • breaking

      added 'else' subschema to the request body

    • breaking

      added 'if' subschema to the request body

    • breaking

      added 'then' subschema to the request body

    • breaking

      the response property // became optional for the status

    • breaking

      the // response property's min was decreased from 0.00 to 0.00 for the response status

    • breaking

      the // response property's minLength was decreased from 1 to 0 for the response status

    • breaking

      removed the required property // from the response with the status

    • warning

      the request property's min was set to 0.00

    • warning

      removed the request property

    • warning

      removed the request property

    • warning

      removed the request property

    • warning

      removed the request property

    • warning

      removed the request property

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      added the new 0.00 enum value to the // response property for the response status

    • warning

      added the new custom-cpu enum value to the // response property for the response status

    • warning

      added the new custom-cuda enum value to the // response property for the response status

    • warning

      added the new custom-rocm enum value to the // response property for the response status

    • warning

      added the new ephemeral_instance enum value to the //// response property for the response status

    • warning

      added the new pytorch-cpu enum value to the // response property for the response status

    • warning

      added the new pytorch-rocm enum value to the // response property for the response status

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      the request property became optional

    • info

      added the new 0.00 enum value to the request property

    • info

      added the new custom-cpu enum value to the request property

    • info

      added the new custom-cuda enum value to the request property

    • info

      added the new custom-rocm enum value to the request property

    • info

      added the new pytorch-cpu enum value to the request property

    • info

      added the new pytorch-rocm enum value to the request property

    • info

      the request property's min was decreased from 0.00 to 0.00

    • info

      the request property's minLength was decreased from 1 to 0

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added subschema #1 to the / response property allOf list for the response status

    • info

      response property allOf[subschema #2]/session/oneOf[Sandbox]/envelope/outcome/max_cost_usd deprecated

    • info

      added 'else' subschema to the / response property for the status

    • info

      added 'if' subschema to the / response property for the status

    • info

      added 'then' subschema to the / response property for the status