Skip to main content
Deleting a workspace moves it, with everything in it, to the trash for 30 days. It requires deleteWorkspace (internal admins) and nothing else: the workspace does not need to be empty. MCP: workspace_delete. CLI: rip workspace delete <workspace-id>. Auth: Authorization: Bearer tr_... (an account API key). {id} is the workspace UUID.

DELETE /v0/workspaces/{id}

The body carries why (required on an agent call; see Why on every write). Returns 200:
purgeAt is deletedAt + 30 days. Deleting a workspace that is already in the trash returns its original dates. The change feed records workspace.deleted.

While it is in the trash

  • The workspace leaves List, and its artifacts leave every listing and search.
  • Every route on the workspace or its content (get, load, changes, artifact reads and writes, tasks, table rows) answers 410 WORKSPACE_DELETED to its members. The body carries type: "workspace", id, title, deletedAt and purgeAt; internal admins also get restorable and deletedBy. Anyone else gets their usual refusal.
  • Its slug stays held: creating another workspace with it answers 409 WORKSPACE_SLUG_TAKEN with details: { inTrash: true, purgeAt }.
  • A team that owns it cannot be deleted (TEAM_OWNS_WORKSPACES).

Restore

An internal admin brings the workspace back, exactly as it was, with Restore:
MCP: trash_restore. CLI: rip trash restore workspace <workspace-id>. The change feed records workspace.restored. From purgeAt the workspace can no longer be restored, and the daily purge removes it and everything in it for good. Agents cannot purge a workspace early; a person can choose Delete forever in the dashboard.

Errors