---
title: "Update a Studio"
method: PUT
path: "/studios/{sessionId}"
tags: ["studios"]
---

# Update a Studio

`PUT /studios/{sessionId}`

Updates the given Studio session ID. Can only update non-running Studios. The compute environment can be changed by setting `computeEnvId` to a CE compatible with the Studio's current one; see `GET /studios/{sessionId}/compatible-ce`.

## Path parameters

- `sessionId` string, required

## Query parameters

- `workspaceId` integer

## Request body

- DataStudioUpdateRequest
  - `computeEnvId` string, nullable
  - `configuration` DataStudioConfiguration
    - `condaEnvironment` string
    - `cpu` integer
    - `environment` object, nullable
    - `gpu` integer
    - `lifespanHours` integer
    - `memory` integer
    - `mountData` string[], nullable
    - `mountDataV2` MountData[], nullable
      - `dataLinkId` string
      - `path` string, nullable
    - `sshEnabled` boolean, nullable
  - `description` string, nullable
  - `labelIds` integer[], nullable
  - `name` string, nullable

## Response `200`

OK

- DataStudioDto
  - `activeConnections` ActiveConnection[]
    - `avatar` string
    - `email` string
    - `id` integer
    - `userName` string
    - `lastActive` string, date-time
  - `allowedUsers` UserInfo[], nullable
    - `avatar` string
    - `email` string
    - `id` integer
    - `userName` string
  - `baseImage` string
  - `computeEnv` DataStudioComputeEnvDto
    - `id` string
    - `name` string
    - `platform` string
    - `region` string
    - `credentialsId` string
    - `workDir` string
  - `configuration` DataStudioConfiguration
    - `condaEnvironment` string
    - `cpu` integer
    - `environment` object, nullable
    - `gpu` integer
    - `lifespanHours` integer
    - `memory` integer
    - `mountData` string[], nullable
    - `mountDataV2` MountData[], nullable
      - `dataLinkId` string
      - `path` string, nullable
    - `sshEnabled` boolean, nullable
  - `customImage` boolean
  - `dateCreated` string, date-time
  - `description` string
  - `effectiveLifespanHours` integer
  - `isPrivate` boolean
  - `labels` LabelDbDto[], nullable
    - `dateCreated` string, date-time
    - `id` integer
    - `isDefault` boolean
    - `isDynamic` boolean
    - `isInterpolated` boolean
    - `name` string
    - `resource` boolean
    - `value` string
  - `lastStarted` string, date-time
  - `lastUpdated` string, date-time
  - `mountedDataLinks` DataLinkDto[]
    - `credentials` DataLinkCredentials[]
      - `id` string, required
      - `name` string, required
      - `provider` 'aws' | 'google' | 'azure' | 'azure_entra' | 'azure-cloud' | 'seqeracompute' | 's3', required
    - `description` string
    - `hidden` boolean
    - `id` string
    - `message` string
    - `name` string
    - `provider` 'aws' | 'google' | 'azure' | 'azure_entra' | 'azure-cloud' | 'seqeracompute' | 's3'
    - `publicAccessible` boolean
    - `region` string
    - `resourceRef` string
    - `status` 'VALID' | 'INVALID'
    - `type` 'bucket'
  - `name` string
  - `parentCheckpoint` DataStudioDtoParentCheckpoint
    - `checkpointId` integer
    - `checkpointName` string
    - `sessionId` string
    - `studioName` string
  - `progress` DataStudioProgressStep[]
    - `message` string
    - `status` 'pending' | 'in-progress' | 'succeeded' | 'errored'
    - `warnings` string[]
  - `remoteConfig` StudioRemoteConfiguration
    - `commitId` string, nullable
    - `repository` string, required
    - `revision` string, nullable
  - `sessionId` string
  - `sshDetails` StudioSshDetailsDto — SSH connection details for a Studio session
    - `command` string, required — The full SSH command to execute
    - `host` string, required — The hostname to connect to
    - `port` integer, required — The SSH port number
    - `user` string, required — The user in the format 'username@sessionId'
  - `statusInfo` DataStudioStatusInfo
    - `lastUpdate` string, date-time
    - `message` string
    - `status` 'starting' | 'running' | 'stopping' | 'stopped' | 'errored' | 'building' | 'buildFailed'
    - `stopReason` 'CREDITS_RUN_OUT' | 'LIFESPAN_EXPIRED' | 'SPOT_RECLAMATION' | 'NO_STATS_AVAIL'
  - `studioUrl` string
  - `template` DataStudioTemplate
    - `icon` string
    - `repository` string
    - `status` 'recommended' | 'deprecated' | 'experimental' | 'unsupported'
    - `tool` string
  - `user` UserInfo
    - `avatar` string
    - `email` string
    - `id` integer
    - `userName` string
  - `waveBuildUrl` string
  - `workspaceId` integer

## Other responses

- `400` — BadRequest
- `403` — Operation not allowed.
- `404` — NotFound, when the Studio is not found or when the API is disabled for the workspace.
- `409` — Conflict - duplicated name

---

[API](https://skmtc.net/seqeralabs/apis/seqera-api.md) · [All operations](https://skmtc.net/seqeralabs/apis/seqera-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/seqeralabs/seqera-api/versions/13316c9fe5ff/schema)
