---
title: "Update a workspace"
method: PATCH
path: "/v1/workspaces"
tags: ["workspaces"]
---

# Update a workspace

`PATCH /v1/workspaces`

Update the editable details of an existing workspace: company name, display name, notifications level, and the user and device limits. The workspace is identified by the workspace header. This is a full update: fields that are omitted are reset to their defaults, and omitting both maxProtectedUsers and maxDevicesLimit makes the workspace unlimited. The maxDevicesLimit cannot exceed 3x the effective user limit, and maxProtectedUsers cannot be lowered below the number of users currently protected in the workspace.

## Headers

- `Workspace` string, required

## Request body

- UpdateWorkspaceRequest
  - `companyName` string — The name of the company for which the workspace is provisioned.
  - `displayName` string — The name displayed for the workspace from the user interface.
  - `notificationsLevel` 'none' | 'parent' | 'localAdmins' | 'all' — The workspace admin portal users who receive notifications.
  - `enableLimits` boolean — Flag indicating whether to enable limits on the number of protected users and devices. If true, maxProtectedUsers and maxDevicesLimit must be provided. If false, the workspace will be unlimited.
  - `maxProtectedUsers` integer — The maximum number of protected users allowed in the workspace. Omit (together with maxDevicesLimit) to make the workspace unlimited. The new limit cannot be lower than the number of users currently protected in the workspace.
  - `overCapacityAllowance` number — The percentage by which Coro can exceed the maximum allowed users (e.g., 10 = 10%).
  - `maxDevicesLimit` integer — The maximum number of protected devices allowed in the workspace. Cannot exceed 3x the effective user limit (maxProtectedUsers + overCapacityAllowance%).
  - `valid` boolean

## Response `200`

Success

- WorkspaceResponse
  - `id` string, required — The unique identifier of the workspace.
  - `companyName` string, required — The name of the company.
  - `displayName` string, required — The name displayed for the workspace from the user interface.
  - `type` 'regular' | 'channel' | 'child', required — The type of workspace.
  - `domain` string, required — The workspace domain.
  - `maxProtectedUsers` integer — The maximum number of protected users allowed in the workspace.
  - `overCapacityAllowance` number — The fraction by which Coro can exceed the maximum allowed users (e.g. 0.10 = 10%).
  - `maxDevicesLimit` integer — The maximum number of protected devices allowed in the workspace.
  - `limited` boolean — Whether this workspace enforces user and device limits.
  - `notificationsLevel` 'none' | 'parent' | 'localAdmins' | 'all' — The workspace admin portal users who receive notifications.
  - `parentWorkspaceId` string — The unique identifier of the parent/channel workspace.
  - `protectedDevices` integer — The number of protected devices in the workspace.
  - `children` string[] — A list of any child workspaces provisioned for this workspace.
  - `mainAdminEmail` string — The admin portal user email address provided when the workspace was created.
  - `adminEmails` string[] — The email addresses of all admin portal users associated with the workspace.
  - `pendingAdminEmails` string[] — The email addresses of all pending admins associated with the workspace.
  - `lastAdminLoginTime` integer — The most recent login to the workspace by an admin user, in UNIX format, including milliseconds.
  - `workspaceCreationTime` integer — The date the workspace was created, in UNIX format, including milliseconds.
  - `workspaceCreationType` 'msp' | 'internal' | 'api' | 'direct' | 'distributorPortal' — Defines the method and creator of the workspace.<br> * msp – Workspace created via the MSP portal by a user with the MSP role.<br> * internal – Workspace created via the MSP portal by a user with the Global role.<br> * api – Workspace provisioned through the API.<br> * direct – Workspace created via the self-service sign-up process.

## Other responses

- `400` — Bad request, validation error
- `401` — Unauthorized request
- `403` — Access forbidden
- `429` — Too Many Requests
- `500` — Internal server error

---

[API](https://skmtc.net/coro/apis/coro-cybersecurity-public-api.md) · [All operations](https://skmtc.net/coro/apis/coro-cybersecurity-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coro/coro-cybersecurity-public-api/revisions/b635522b2393/schema)
